๐ฐ ์ธ์ด (31) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ์๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(3) ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ๋คํ์ฑ 2. ์ถ์ํด๋์ค 3. ์ธํฐํ์ด์ค 4. ๋ด๋ถํด๋์ค 1. ๋คํ์ฑ polymorphism 1-1) ๋คํ์ฑ์ด๋? ํ๋์ ๊ฐ์ฒด๊ฐ ์ฌ๋ฌ ๊ฐ์ง ํ์ ์ ๊ฐ์ง ์ ์๋ ๊ฒ ์๋ฐ์์๋ ์ด๋ฌํ ๋คํ์ฑ์ ๋ถ๋ชจ ํด๋์ค ํ์ ์ ์ฐธ์กฐ ๋ณ์๋ก ์์ ํด๋์ค ํ์ ์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ ์ ์๋๋ก ํ์ฌ ๊ตฌํํ๋ค. ๋คํ์ฑ์ ์์, ์ถ์ํ์ ๋๋ถ์ด ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌ์ฑํ๋ ์ค์ํ ํน์ง ์ค ํ๋์ด๋ค. 1-2) ์ฐธ์กฐ ๋ณ์์ ๋คํ์ฑ ๋ถ๋ชจ ํด๋์ค ํ์ ์ ์ฐธ์กฐ ๋ณ์๋ก ์์ ํด๋์ค ํ์ ์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ ์ ์๋ค. ์ด๋ ์ฐธ์กฐ ๋ณ์๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ฉค๋ฒ์ ๊ฐ์๊ฐ ์ค์ ์ธ์คํด์ค์ ๋ฉค๋ฒ ๊ฐ์๋ณด๋ค ๊ฐ๊ฑฐ๋ ์ ์ด์ผ ์ฐธ์กฐํ ์ ์๋ค. class Parent { ... } class Child extends .. ์๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(2) ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ์์ inheritance 2. ์ค๋ฒ๋ผ์ด๋ฉ overriding 3. package์ import 4. ์ ์ด์ modifier 1. ์์ inheritance ์ฅ์ : ์ฝ๋์ ์ถ๊ฐ, ๋ณ๊ฒฝ์ด ์ฝ๊ณ , ํ๋ก๊ทธ๋จ์ ์์ฐ์ฑ๊ณผ ์ ์ง๋ณด์์ ์ข๋ค. ํน์ง ์์ฑ์์ ์ด๊ธฐํ ๋ธ๋ญ์ ์์ํ ์ ์๊ณ , ๋ฉค๋ฒ(๋ณ์, ๋ฉ์๋)๋ง ์์ ๊ฐ๋ฅํ๋ค. ์ ๊ทผ ์ ์ด์๊ฐ private, default์ธ ๋ฉค๋ฒ์ ์์์ ๊ฐ๋ฅํ์ง๋ง, ์์ํด๋์ค๋ก๋ถํฐ์ ์ ๊ทผ์ ์ ํ๋๋ค. ์๋ฐ์ ๊ฒฝ์ฐ ๋จ์ผ ์์๋ง์ ํ์ฉํ๋ค. ์ฅ์ ๋จ์ ๋ค์ค ์์ ๋ณตํฉ์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ์ง ํด๋์ค๋ฅผ ์ฝ๊ฒ ์์ฑ ๊ฐ๋ฅ ํด๋๊ฐ์ ๊ด๊ณ๊ฐ ๋งค์ฐ ๋ณต์ก ๋จ์ผ ์์(์๋ฐ) ํด๋์ค๊ฐ์ ๊ด๊ณ๊ฐ ๋ณด๋ค ๋ช ํ 2. overriding(=overwrite) 2-1) overr.. ์๋ฐ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(1) ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ํด๋์ค์ ๊ฐ์ฒด 2. ๋ณ์์ ๋ฉ์๋ 3. ์ค๋ฒ๋ก๋ฉ overloading 4. ์์ฑ์ constructor 5. ๋ณ์์ ์ด๊ธฐํ 1. ํด๋์ค์ ๊ฐ์ฒด public class Animal{ //ํด๋์ค Animal cat = new Animal(); //๊ฐ์ฒด } ํด๋์ค : ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๊ธฐ๋ฅ์ ํจ. ๊ฐ์ฒด : newํค์๋๋ฅผ ์ด์ฉํด Animalํด๋์ค์ ์ธ์คํด์ค์ธ cat, ์ฆ Animal์ ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง. ์ธ์คํด์ค : ํน์ ๊ฐ์ฒด(cat)๊ฐ ์ด๋ค ํด๋์ค(Animal)์ ๊ฐ์ฒด์ธ์ง๋ฅผ ๊ด๊ณ์์ฃผ๋ก ์ค๋ช ํ ๋ ์ฌ์ฉ๋จ. 2. ๋ณ์์ ๋ฉ์๋ 2-1) ๋ณ์(์ ์ธ ์์น์ ๋ฐ๋ผ ๋ถ๋ฅ) ํด๋์ค ๋ณ์ (static ๋ณ์, ๊ณต์ ๋ณ์) ์ธ์คํด์ค ๋ณ์๊ฐ ์ธ์คํด์ค ๋ง๋ค ๋ ๋ฆฝ์ ์ธ ์ ์ฅ๊ณต๊ฐ์ ์ง๋๊ฑฐ์ ๋ฌ๋ฆฌ ํด.. switch/case๋ฌธ ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. switch/case๋ฌธ ์คํ ์์ 2. switch๋ฌธ์ ์ ์ฝ์กฐ๊ฑด 3. switch๋ฌธ์ ์ค์ฒฉ 4. break์ continue 1. switch/case๋ฌธ ์คํ ์์ ์กฐ๊ฑด์ ๊ณ์ฐ ์กฐ๊ฑด์ ๊ฒฐ๊ณผ์ ์ผ์นํ๋ case๋ฌธ์ผ๋ก ์ด๋ break๋ switch๋ฌธ์ ๋์ ๋ง๋๋ฉด switch์ ์ฒด๋ฅผ ๋น ์ ธ๋๊ฐ๊ณ , break๋ฌธ์ ๋ง๋์ง ๋ชปํ๋ฉด ๋ค์ case๋ฌธ์ ์คํํ๋ค. switch(์กฐ๊ฑด์) { case ์ ๋ ฅ๊ฐ1: ... break; case ์ ๋ ฅ๊ฐ2: ... break; ... default: ... break; } 2. switch๋ฌธ์ ์ ์ฝ์กฐ๊ฑด Switch๋ฌธ์ ๊ฐ์ ์ ์ ๋๋ ๋ฌธ์(์ด)์ด์ด์ผ ํ๋ค. case๋ฌธ์ ๊ฐ๊ณผ switch๋ฌธ์ ๊ฐ ํ์ ํ์ ๊ฐ์์ผ ํ๋ค. case๋ฌธ์ ๊ฐ์ ์ค๋ณต๋ .. ์ฝ์ ์ ์ถ๋ ฅ ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. InputStream ํด๋์ค ์ด์ฉ - ๊ธฐ๋ณธ์ ์ธ ์ ๋ ฅ๋ฐฉ๋ฒ 1-1) ์คํธ๋ฆผ(Stream)์ด๋? 2. InputStreamReaderํด๋์ค ์ด์ฉ 2-1) BufferedReader 3. Scannerํด๋์ค ์ด์ฉ ์ฝ์ ์ ์ถ๋ ฅ์ ์คํ ํ๊ฒฝ์ ๋ฐ๋ผ ๊ฐ๊ฐ ๋ฌ๋ผ์ง๋ค. Java์ ๊ฒฝ์ฐ ๋ง์ ์ฌ๋๋ค์ด ์ดํด๋ฆฝ์ค๋ ๋์ค๋ฅผ ์ด์ฉํด ๋ง์ด ๊ฐ๋ฐ ํ๊ฒฝ์ ์ค์ ํ๋๋ฐ ์ฌ์ฉ์๊ฐ ์ง์ ์ฝ์์ฐฝ์ ํตํด ์ ๋ ฅ์ ๋ฐ๊ฑฐ๋ ์ถ๋ ฅ์ ๋ฐ๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ค. InputStream - byte InputStreamReader - character BufferedReader - String 1. InputStream ํด๋์ค ์ด์ฉ - ๊ธฐ๋ณธ์ ์ธ ์ ๋ ฅ๋ฐฉ๋ฒ import java.io.InputStream; public cla.. ์๋ฐ์ ๋ํ์ฌ ์ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ์๋ฐ์ธ์ด์ ํน์ง 2. JVM 2-1) JVM๊ตฌ์ฑ 2-2) JVM์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ 3. ์๋ฐํ๋ก๊ทธ๋จ์ ์คํ๊ณผ์ 1. ์๋ฐ์ธ์ด์ ํน์ง ์ด์์ฒด์ ์ ๋ ๋ฆฝ์ ์ด๊ณ , JVM์ ์ข ์์ ์ด๋ค. "write once, run anywhere" ๊ฐ์ฒด์งํฅ์ธ์ด์ด๋ค. Garbage collection์ด ์๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํด์ค๋ค. ๋คํธ์ํฌ์ ๋ถ์ฐ์ฒ๋ฆฌ ์์ : ๋ค์ํ ๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(JavaAPI)๋ฅผ ํตํด ๋น๊ต์ ์งง์ ์๊ฐ์ ๋คํธ์ํฌ ๊ด๋ จ ํ๋ก๊ทธ๋จ์ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๋ค. ๋ฉํฐ์ค๋ ๋ ์ง์ : ์ผ๋ฐ์ ์ธ ๋ฉํฐ์ค๋ ๋ ์ง์์ ์ด์์ฒด์ ์ ๋ฐ๋ผ ๊ตฌํ๋ฐฉ๋ฒ๊ณผ ์ฒ๋ฆฌ๋ฐฉ์์ด ์์ดํ์ง๋ง, ์๋ฐ์ ๋ฉํฐ์ค๋ ๋ ํ๋ก๊ทธ๋จ์ ์์คํ ์ ์๊ด์์ด ๊ตฌํ์ด ๊ฐ๋ฅํ๊ณ , JavaAPI๊ฐ ์ ๊ณต๋์ด ๊ตฌํ์ด ์ฝ๋ค. ๋ ์ฌ.. Ajax ์ฑ ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. Ajax(Asynchronous JavaScript and XML) 2. JSON (JavaScript Object Notation) 3. XMLHttpRequest 1. Ajax(Asynchronous JavaScript and XML) ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ๋น๋๊ธฐ์ (Asynchronous)์ผ๋ก ์๋ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋ ํต์ ๋ฐฉ์ ์๋ฒ๋ก๋ถํฐ ์นํ์ด์ง๊ฐ ๋ฐํ๋๋ฉด ํ๋ฉด ์ ์ฒด๋ฅผ ๊ฐฑ์ ํด์ผ ํ๋๋ฐ ํ์ด์ง ์ผ๋ถ๋ง์ ๊ฐฑ์ ํ๊ณ ๋ ๋์ผํ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์๋๋ก ํ๋ ๊ฒ์ด Ajax์ด๋ค. ํ์ด์ง ์ ์ฒด๋ฅผ ๋ก๋ํ์ฌ ๋ ๋๋งํ ํ์๊ฐ ์๊ณ ๊ฐฑ์ ์ด ํ์ํ ์ผ๋ถ๋ง ๋ก๋ํ์ฌ ๊ฐฑ์ ํ๋ฉด ๋๋ฏ๋ก ๋น ๋ฅธ ํผํฌ๋จผ์ค์ ๋ถ๋๋ฌ์ด ํ๋ฉด ํ์ ํจ๊ณผ๋ฅผ ๊ธฐ๋ํ ์ ์๋ค. 2. JS.. ์ด๋ฒคํธ ์ฑ ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ์ด๋ฒคํธ 2. ์ด๋ฒคํธ ๋ฃจํ(Event Loop)์ ๋์์ฑ(Concurrency) 2-1) ๋ธ๋ผ์ฐ์ ํ๊ฒฝ 2-2) ์ด๋ฒคํธ ์์ 3. ์ด๋ฒคํธ์ ์ข ๋ฅ(์์ฃผ ์ฌ์ฉ๋๋ ์ด๋ฒคํธ) ๋ ๋ค์ํ ์ด๋ฒคํธ๋ฅผ ์๊ณ ์ถ๋ค๋ฉด ์๋์ MDN์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํ๋ค. https://developer.mozilla.org/en-US/docs/Web/Events 1. ์ด๋ฒคํธ ์ด๋ฒคํธ(event)๋ DOM ์์์ ๊ด๋ จ๋ ์ด๋ค ์ฌ๊ฑด์ ์๋ฏธํ๋ค. ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ๋๊ตฐ๊ฐ ์ด๋ฅผ ๊ฐ์งํ ์ ์์ด์ผ ํ๋ฉฐ ๊ทธ์ ๋์ํ๋ ์ฒ๋ฆฌ๋ฅผ ํธ์ถํด ์ฃผ์ด์ผ ํ๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ ์ ์์ผ๋ฉฐ ์ด๋ฒคํธ ๋ฐ์ ์์๋ ํต์งํด ์ค๋ค. ์ด ๊ณผ์ ์ ํตํด ์ฌ์ฉ์์ ์นํ์ด์ง๋ ์ํธ์์ฉ(Interaction)์ด ๊ฐ๋ฅํ๊ฒ ๋๋ค... ๋ธ๋ผ์ฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ(2) - DOM ์์ ์ ๊ทผ, ์กฐ์ ์ฑ ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. DOM ์์์ ์ ๊ทผ 1-1) get๋ฉ์๋๋ฅผ ์ด์ฉ 1-2) DOM์์ ์ฟผ๋ฆฌ 1-3) DOM Traversing(ํ์) 2. DOM ์์ ์กฐ์ 2-1) ํ ์คํธ ๋ ธ๋์์ ์ ๊ทผ/์์ 2-2) ์ดํธ๋ฆฌ๋ทฐํธ ๋ ธ๋์์ ์ ๊ทผ/์์ 2-3) HTML ์ฝํ ์ธ ์กฐ์(Manipulation) 2-4) DOM์ ์ง์ ์กฐ์ โป innerHTML vs. DOM ์กฐ์ ๋ฐฉ์ DOM์ ํตํด ์นํ์ด์ง๋ฅผ ์กฐ์(manipulate)ํ๊ธฐ ์ํด์๋ ํ์๊ณผ ์กฐ์ ๊ณผ์ ์ด ํ์ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ด๊ฒ์ ํ์ํ ์๋จ(API)์ ์ ๊ณตํ๋ค. ์กฐ์ํ๊ณ ์ํ๋ ์์๋ฅผ ์ ํ ๋๋ ํ์ ์ ํ๋ ์์์ ์ฝํ ์ธ ๋๋ ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์กฐ์ 1. DOM ์์์ ์ ๊ทผ DOM์์๋ฅผ ํ์์๋ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ ์ธ๊ฐ์ง๊ฐ ์๋ค.. ๋ธ๋ผ์ฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ(1) - ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ DOM ์ฑ ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฉ์ ๋๋ค. ๋ชฉ์ฐจ 1. ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM, document object model) 2. DOM API(Application Programming Interface) 3. DOM tree 3-1) DOM tree๋ฅผ ๊ตฌ์ฑํ๋ ๋ค์ข ๋ฅ ๋ ธ๋ 1. ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM, document object model) - HTML๋ฌธ์๋ฅผ ์กฐ์ํ๋ ํต์ฌ ํ ์คํธ ํ์ผ๋ก ๋ง๋ค์ด์ ธ ์๋ ์น ๋ฌธ์๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋งํ๋ ค๋ฉด ์น ๋ฌธ์๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋ ๊ตฌ์กฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ผ ํ๋ค. ๋ชจ๋ ์์์ ์์์ ์ดํธ๋ฆฌ๋ทฐํธ, ํ ์คํธ๋ฅผ ๊ฐ๊ฐ์ ๊ฐ์ฒด๋ก ๋ง๋ค๊ณ ์ด๋ค ๊ฐ์ฒด๋ฅผ ๋ถ์ ๊ด๊ณ๋ฅผ ํํํ ์ ์๋ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ ๊ฒ DOM์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ ๋ณ๊ฒฝ๋ DOM์ ๋ ๋.. ์ด์ 1 2 3 4 ๋ค์