-
์์ ์ด๋ณด์๋ฅผ ์ํ ํฌ๊ด์ ์ธ ๊ต์ก ํ๋ก๊ทธ๋จ
ํ๋ก๊ทธ๋๋ฐ์ด ์ฒ์์ด๋ผ๋ฉด ์ด๋์๋ถํฐ ์์ํด์ผ ํ๊ณ ์ผ๋ง๋ ๋ง์ ์ด๋ก ์ ์ง์์ด ํ์ํ์ง์กฐ์ฐจ ๋ชจ๋ฅผ ์ ์์ต๋๋ค. ๊ธธ์ ์์ง ์๋๋ก ํ๊ฒ ์ต๋๋ค! CodeGym ๊ณผ์ ์๋ ์ค์ ์ฌ๋ก์ ํจ๊ป ํ์ดํ ์ธ์ด๋ก ์ค๋ช ๋ ์ ์ ํ ์ด๋ก ์ด ํฌํจ๋์ด ์์ต๋๋ค. Java ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ์ด๋ฅผ ๋จ๊ณ๋ณ๋ก ๋ฐฐ์ฐ๊ณ ์ฃผ๋์ด Java ๊ฐ๋ฐ์๋ก ๋ ๋ฒจ์ ํฉ๋๋ค. -
์ฝ๋ฉ์ ์์ ๊ฐ์ ๊ฐ๊ฒ ํด์ฃผ๋ ์๋ง์ ์ฐ์ต
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ ์ํํ๊ณ ์ฐ๋งํ์ฌ Java ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ์ต์์ ์ฐ์ต์ด ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค. ์ฌ๊ธฐ์์ ์ฆ๊ฐ์ ์ธ ํ์ธ, ์ฝ๋ ๋ถ์, ์์ ์ ๋์์ด ๋๋ ํ๊ณผ ํจ๊ป ๋ค์ํ ๋ณต์ก์ฑ์ ๊ฐ์ง 1200๊ฐ ์ด์์ ์์ ์ ์ป์ ์ ์์ต๋๋ค. ์ฒซ ์์ ๋ถํฐ ์ฝ๋ฉ์ ์ค๋นํ์ธ์. -
๋๊ธฐ ๋ถ์ฌ์ ๋ณด์์ด ์๋ ๊ฒ์ํ๋ ํ์คํธ ๊ฒ์
์ฐ๋ฆฌ๋ ๋น์ ์ ๋ฏธ๋ ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ๋ ฅ์ด ๋๋ด์ด ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๋น์ ์ ํ์ต์ ์ฌ๋ฏธ์์ ์ ์๊ณ ์ฌ๋ฏธ์์ด์ผ ํฉ๋๋ค. ๋ชฉํ ๋ฌ์ฑ์ ๋์์ด ๋๋ ๋๊ธฐ ๋ถ์ฌ์ ๋ณด์์ด ํฌํจ๋ ๊ฒ์ํ๋ ๊ณผ์ ์ ์ค๊ณํ์ต๋๋ค. ์ฝ์ค๋ 4๊ฐ์ ํ์คํธ๋ก ๋๋ฉ๋๋ค. ๊ฐ ํ์คํธ์๋ ํ ์ ํฌ๊ธฐ์ ๊ฐ์์ ์์ญ ๊ฐ์ง ์์ ์ด ํฌํจ๋ 10๊ฐ์ ๋ ๋ฒจ์ด ์์ต๋๋ค. Java ํ์ต์ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅธ๋ค๋ฉด ์ฐ๋ฆฌ ๊ณผ์ ์ ์ถฉ์คํ๋ฉด Java ๊ธฐ๋ณธ ์ฌํญ์ ํจ๊ณผ์ ์ผ๋ก ์๊ฐํ ๊ฒ์ ๋๋ค.ํ์คํธ๋ฅผ ์๋ฃํ๊ณ ๋ฏธ๋์ ์ฐ์ฃผ์ ์ฌ๋ ์บ๋ฆญํฐ์ ๋ ๋ฒจ์ ์ฌ๋ ค์ผ ํ๋ค๊ณ ์์ํด ๋ณด์ธ์. ๊ทธ๋ ๊ฒ ํจ์ผ๋ก์จ ๋ฐฐ์ฐ๊ณ , ์ฝ๋ฉํ๊ณ , ๋ค๋ฅธ ์ฌ์ฉ์์ ์ํตํ๊ณ , ํ์๊ณผ ์๋ จ๋ ๊ฐ๋ฐ์์ ๋์์ ๋ฐ๊ณ , ์๋ฃจ์ , ๋ฉ์ง ํ๋ก์ ํธ ๋ฐ ๊ฒ์์ ์์ฑํฉ๋๋ค... ์, CodeGym์ฒ๋ผ ๋ค๋ฆฝ๋๋ค!
CodeGym์์๋ ์๊ฐ ์ ํ์ด ์์ต๋๋ค. ์ํ ๋๋ง๋ค ๋ฐฐ์ฐ๊ณ ์ฝ๋ฉํ์ธ์. ๊ณผ์ ์ ์๋ฃํ๊ณ 500์๊ฐ ์ด์์ ํ๋ก๊ทธ๋๋ฐ ์ฐ์ต์ ํ๋ ๋ฐ ํ๊ท 6๊ฐ์์์ 12๊ฐ์์ด ๊ฑธ๋ฆฝ๋๋ค. ํ์ง๋ง 3๊ฐ์ ๋ง์ ๋๋ด๋ ํ์๋ค์ด ๋ง์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค.
- ์๋ฐ ๊ตฌ๋ฌธ
- ์๋ฐ ์ฝ์ด
- ์๋ฐ ๋ฉํฐ์ค๋ ๋ฉ
- ์๋ฐ ์ปฌ๋ ์
Java ๊ธฐ์ด ํ์ต ๋ฐ ์ค์ต ๋ก๋๋งต
CodeGym์ ์ฌ์ฉํ๋ฉด Java์ ๊ธฐ์ด์ ๋ํ ๊ท ํ ์กํ ํ์ต์ ์ป์ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ณต์์ ์ด๋ก ์ 20% + ์ค์ต์ 80%์ด๋ฏ๋ก ๊ฐ ๋ ๋ฒจ์์ ๊ฐ์๋ณด๋ค ๋ช ๋ฐฐ ๋ ๋ง์ ์์ ์ ๋ฐ๊ฒ ๋ฉ๋๋ค.ํ์คํธ #1: ์๋ฐ ๊ตฌ๋ฌธ
์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก Java ํ๋ก๊ทธ๋๋ฐ์ ๋ํ ์๊ฐ์ ๋๋ค. ์ด์ ์ ์ฝ๋ฉ์ ๋ํ ๋ฐฐ๊ฒฝ ์ง์์ด ์๋ ์ฌ๋๋ ์ด ํ์คํธ๋ฅผ ๋ง์คํฐํ ์ ์์ต๋๋ค. Java ํ๋ก๊ทธ๋จ์ "๋ฒฝ๋"์ธ ํด๋์ค, ๊ฐ์ฒด, ๋ฉ์๋ ๋ฐ ๋ณ์์ ๊ฐ์ ๊ฐ์ฅ ๊ฐ๋จํ ๊ฐ๋ ๋ถํฐ ์์ํฉ๋๋ค. ๋ค์ํ ๋ฐ์ดํฐ ์ ํ, ๋ฐฐ์ด, ๋ฃจํ ๋ฐ ์กฐ๊ฑด๋ฌธ์ ๋ฐฐ์๋๋ค. ๋ ๋ฒจ 3๋ถํฐ ์ค์ IDE์ธ IntelliJ IDE๋ก ์์ ํ๊ณ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. ๊ฐ ์ฃผ์ ์๋ ์์ผ๋ก ๋์๊ฐ๊ธฐ ์ํด ์๋ฃํด์ผ ํ๋ ์ผ๋ จ์ ์ค์ ์์ ์ด ์์ต๋๋ค. ๋ ๋ฒจ์ด ๋๋๋ฉด ์ปฌ๋ ์ ๋ฐ OOP ๊ธฐ๋ณธ ์ฌํญ์ ๋ํ ๊ฐ๋ตํ ์๊ฐ๊ฐ ์ ๊ณต๋๋ฉฐ ๋ค ๋ฒ์งธ ํ์คํธ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ํ์คํธ์ ์ฃผ์ ๋ชฉ๋ก:- ๊ณผ์ ์๊ฐ
- Java ์๊ฐ: ํ๋ฉด ์ถ๋ ฅ, String ๋ฐ int ์ ํ์ด๋ ๋ฌด์์ ๋๊น?
- Java ์๊ฐ: ๋ณ์, ๋ฉ์๋, ํด๋์ค
- ์ฒซ ๋ฒ์งธ ํ๋ก๊ทธ๋จ: ํค๋ณด๋ ์ ๋ ฅ, IDE์์ ์์
- ๋ถ๊ธฐ ๋ฐ ๋ฃจํ ์๊ฐ
- ํด๋์ค ์๊ฐ: ์์ ๋ง์ ํด๋์ค ์์ฑ, ์์ฑ์
- ๊ฐ์ฒด ์๊ฐ: ์์ ๋ง์ ๊ฐ์ฒด ์์ฑ, ์๋ช , ์ ์ ๋ณ์
- ๋ฐฐ์ด๊ณผ ๋ชฉ๋ก: ๋ฐฐ์ด, ArrayList, ์ ๋ค๋ฆญ ์๊ฐ
- ์ปฌ๋ ์ : LinkedList, HashSet, HashMap. ๋ ์ง.
- ์์ธ ์๊ฐ: try, catch, throws, multi-catch
- ๊ธฐ๋ณธ ์ ํ ๋ณํ: ํ๋ ๋ฐ ์ถ์ ๋ณํ
ํ์คํธ #2 ์๋ฐ ์ฝ์ด
์ด ํ๊ตฌ๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ์ด์ ์ ๋ ํ๋ฉฐ ์คํธ๋ฆผ, ์ง๋ ฌํ ๋ฐ ๋ฉ์๋ ์ค๋ฒ๋ก๋์ ์ต์ํด์ง ๊ฒ์ ๋๋ค. ๋ํ ์ธํฐํ์ด์ค ๋ฐ ๋ค์ค ์์์ ๋ํ ์์ ๋ฐ ํ์ต ์์ค์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด ํ์คํธ๋ฅผ ์๋ฃํ๋ ค๋ฉด Java ๊ตฌ๋ฌธ์ ํต๊ณผํด์ผ ํฉ๋๋ค. Core quest๋ฅผ ๋ง์น๋ฉด ๋ ๋ณต์กํ ์์ ์ ํด๊ฒฐํ๊ณ ๋ฏธ๋ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ค๋น๊ฐ ๋ ๊ฒ์ ๋๋ค. ํ์คํธ์ ์ฃผ์ ๋ชฉ๋ก:- OOP์ ๊ธฐ๋ณธ: ๊ธฐ๋ณธ ์์น, ์์, ์บก์ํ
- OOP์ ๊ธฐ์ด: ์ค๋ฒ๋ก๋ฉ, ๋คํ์ฑ, ์ถ์ํ, ์ธํฐํ์ด์ค
- ์ธํฐํ์ด์ค: ์ถ์ ํด๋์ค์์ ๋น๊ต, ๋ค์ค ์์
- ์ ํ ์บ์คํ , instanceof. ์ธํฐํ์ด์ค์ ๊ด๋ จ๋ ํฐ ์์
- ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ, ์์ฑ์ ํธ์ถ ๊ธฐ๋ฅ
- ์ค๋ ๋ ์๊ฐ: ์ค๋ ๋, ์คํ ๊ฐ๋ฅ, ์์, ์กฐ์ธ, ์ธํฐ๋ฝํธ, ์ ์ ๋ชจ๋
- ์ค๋ ๋ ์๊ฐ: ๋๊ธฐํ, ํ๋ฐ์ฑ, ์์จ
- ์คํธ๋ฆผ ์๊ฐ: InputStream/OutputStream, FileInputStream, FileOutputStream
- ์คํธ๋ฆผ ์๊ฐ: Reader/Writer, FileReader/FileWriter
- ์ง๋ ฌํ
Quest #3 Java๋ฉํฐ์ค๋ ๋ฉm
์ด ํ์คํธ๋ ๊ฐ์ฒด, ๋ฌธ์์ด ๋ฐ ๋ด๋ถ ํด๋์ค์ ๊ตฌ์ฑ์ ์๊ฐํฉ๋๋ค. ๊ฐ์์ ์์ญ ๊ฐ์ ์์ ์ค์ ์ค๋ ๋๋ฅผ ์์ฑํ๊ณ ์ค์งํ๋ ๋ฐฉ๋ฒ, ๊ต์ฐฉ ์ํ๊ฐ ๋ฌด์์ธ์ง, wait, notify ๋ฐ notifyAll ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. jsoup ๋ฐ Swing์ ๋ํ ๊ฒฝํ์ ์๊ณ ์๋ ํจํน์ ๋ํด ๋ฐฐ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก ์ฑํ ์์คํ , ATM ์๋ฎฌ๋ ์ดํฐ, ์น ์คํฌ๋ ์ดํผ์ ๊ฐ์ ์ฒซ ๋ฒ์งธ ํฐ ์์ ์ ์๋ฃํ๊ณ Tetris, Snake, Space Shooter ๋ฐ Arkanoid์ ๊ฐ์ ๋ช ๊ฐ์ง ๊ฒ์์ ์์ฑํ๊ฒ ๋ฉ๋๋ค. ํ์คํธ์ ์ฃผ์ ๋ชฉ๋ก:- ๊ฐ์ฒด ๊ฐ์ฒด ๊ตฌ์ฑ: equals, hashCode, clone, wait, notify, toString()
- ๋ฌธ์์ด: ๊ฐ๋ณ, ๋ถ๋ณ, ํ์, StringTokenizer, StringBuilder, StringBuffer
- ๋ด๋ถ ํด๋์ค, ์: Map.Entry
- ๋ด๋ถ ํด๋์ค, ๊ตฌํ ๊ธฐ๋ฅ
- ์ค๋ ๋ ์์ฑ ๋ฐ ์ค์ง: ์์, ์ธํฐ๋ฝํธ, ์ ์ ๋ชจ๋, ์๋ณด
- ๊ณต์ ๋ฐ์ดํฐ ์ก์ธ์ค: ๋๊ธฐํ, ํ๋ฐ์ฑ
- ์ด์ค ์๋ฌผ์ . ๊ธฐ๋ค๋ฆฌ๋ค, ์๋ฆฌ๋ค, ๋ชจ๋์๊ฒ ์๋ฆฌ๋ค
- TreadGroup, ThreadLocal, Executor, ExecutorService, ํธ์ถ ๊ฐ๋ฅ. jsoup ์์
- Autoboxing, ๊ตฌํ ๊ธฐ๋ฅ
- ์ฐ์ฐ์: ์ซ์, ๋ ผ๋ฆฌ ๋ฐ ์ด์ง์. ์ค์ ์์
ํ์คํธ #4 ์๋ฐ ์ปฌ๋ ์
์ ์์ ์ค๋ฅผ ์ค๋น๋ฅผ ํ์ธ์! ๋ง์ง๋ง ํ์คํธ๋ Java ์ปฌ๋ ์ , ๋์์ธ ํจํด์ ์ ๋ ํ ๊ฒ์ด๋ฉฐ ๋ง์ ์ ์ฉํ ์ฐ์ต์ ์ป๊ฒ ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด JSON, Guava, Apache Commons Collections ๋ฐ JUnit์ผ๋ก ์์ ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ณ Git ๋ฐ JAXB, RMI ๋ฐ DymamicProxy์ ๋ํ ์ค์ต ๊ฒฝํ์ ์ป์ต๋๋ค. ๋ ๋ค๋ฅธ ์ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ JavaScript์ ๋ํด ์กฐ๊ธ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ๋ฌผ๋ก ๋์ค์ ํฌํธํด๋ฆฌ์ค์ ์ถ๊ฐํ ์ ์๋ ๋ ๋ง์ ์ง๋ฌธ๊ณผ ๋ฏธ๋ ํ๋ก์ ํธ๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค. ํ์คํธ์ ์ฃผ์ ๋ชฉ๋ก:- ํ์ผ ๋ฐ ์์นด์ด๋ธ ์์
- RMI ๋ฐ ๋์ ํ๋ก์. ์ค์ ์์
- JSON, ์๋ฐ์คํฌ๋ฆฝํธ. Guava, Apache Commons Collections, JUnit ์์
- ์ฌ๊ท. Java์ ๊ฐ๋น์ง ์์ง ๋ฐ ์ฐธ์กฐ ์ ํ. ๋ฒ์ฑ ๋ฐ์ถ
- ๋ฒ์ ์ ์ด ์์คํ : Git ๋ฐ SVN. ์ ๋ค๋ฆญ
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๊ธฐ ์ํ ๊ธฐ๋ณธ ํจํด. ์ปฌ๋ ์ ์ ๋ํ ์ฌ์ธต ์ฐ๊ตฌ
- ๋์์ธ ํจํด. ์ ํธ๋ฆฌํฐ ํด๋์ค, ์: ๋ฐฐ์ด. ์ปฌ๋ ์
- ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก . Java์ ์ฃผ์. ์์ธ ๊ณ์ธต
- ์ฒซ ๋ฒ์งธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ญ๋๋ค. Tomcat ๋ฐ IDEA ์์
- URI, URL. REST ์๋น์ค. ๋๋ง์ ํด๋ผ์ด์ธํธ-์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
GO TO FULL VERSION