Java ๊ฒฝํ ์์ด ์ค๊ฐ Java ๊ฐ๋ฐ์๋ก ์ทจ์ ํ๋ ๋น๊ฒฐ ๋๋ ๋ฐฉ๋ฒ
๋ชจ๋ Java ํ์ ๋ฐ ์ ๋ฌธ๊ฐ ์ฌ๋ฌ๋ถ๊ป ์ธ์ฌ๋๋ฆฝ๋๋ค. ์๋ง๋ ๋ด ์ด์ผ๊ธฐ๋ ๊ทธ๊ฒ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์๊ฐ ๋ ๊ฒ์ด๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ ๊ทธ๊ฒ์ ํ์ง ์๋ ๋ฐฉ๋ฒ์ ๋ํ ์๊ฐ ๋ ๊ฒ์
๋๋ค. 2021๋
10์ 19์ผ์ธ๋ฐ, ์ค๋ ๋๊ธฐ์
์์ Java ์ค๊ฐ ๊ฐ๋ฐ์๋ก ์์ต๊ธฐ๊ฐ(3๊ฐ์)์ ๋ง์ณค์ต๋๋ค. ๋๋ Java ๊ฐ๋ฐ์ ๋ํ ์ด์ ๊ฒฝํ์ด ์์์ต๋๋ค. 2020๋
6์ 4์ผ๊น์ง ์ ๋ Java์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชฐ๋์ต๋๋ค. ์๋ฐ๋ฆฌ์คํธ๋ก ์
์ฌํ์ ๋, ์์ต๊ธฐ๊ฐ์ ๋๊ธฐ๋ฉด ์ฑ๊ณต์คํ ๋ฆฌ๋ฅผ ์ฐ๊ฒ ๋ค๊ณ ์ฝ์ํ๋ค. ์ด ๊ธ์ ๋
ผ๋ฆฌ์ ์ธ ๋ ๋ถ๋ถ์ผ๋ก ๋๋์ด์ง๋ค: ๊ฒฝ๋ ฅ ๋ฐฐ๊ฒฝ( 1~5์ฅ, ์๋ฐ์๋ ๊ด๋ จ ์์), ๊ทธ๋ฌ๋ ๊ฒฝ๋ ฅ์ ๋ํ ์ง์์ ์ป์ ์ ์์ต๋๋ค). Javaist ๋๊ธฐ(6-9์ฅ - Java ํ์ต, ์ธํฐ๋ทฐ, ์ทจ์
, ์ฒซ ์ค์ ๊ฒฝํ) <h3>1์ฅ. ๊ฒฝ์ ํ์</h3>๋ด๊ฐ JavaRush์ ์ด๋ ์์ค์ ์ง์์ ๊ฐ์ง๊ณ ์๋์ง ์ดํดํ๊ธฐ ์ํด์๋ ๋ ์์ ์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ค๋ช
ํด์ผ ํฉ๋๋ค. 2013๋
11์ ์ค์ 8์. ๋๋ Taganka์ ์ปคํผ์์ ์์ SQL ๋ช
๋ น์ ๋ฐ๋ณตํ๊ณ ์์ต๋๋ค. ํ ์๊ฐ ํ์ ๋๋ ์ํ ๊ธ์ต ๋ถ์์ ์ฃผ์ ๊ฒฝ์ ํ์ ์๋ฆฌ์ ๋ํ ์ธํฐ๋ทฐ๋ฅผ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ์ ๊ฐ ์ด๋๋ฐ์ ์ ์ผํ ์ธํฐ๋ทฐ์ด๊ณ 100% ์ต์ ์ ๋คํด์ผ ํฉ๋๋ค. ๊ทธ๋ฅผ ์ํด ๋๋ ์ํธ ํํ
๋ฅด๋ถ๋ฅดํฌ์์ ๋ ์๊ฐ์ ์ด๋ฏธ ์ ์ ๋์ ์ฐ์ง ์๊ธฐ ์ํด ๋ถ์์์ ์น์ฒ๋ค๊ณผ ํจ๊ป ๋จธ๋ฌผ ๋ ์ต๋๋ค. 30๋ถ์ด ์ง๋๋ฉด ํ๊ณผ ์น์ฆ๋ฅผ ๊ณ๋ค์ธ ํฌ์ผ์ดํฌ๋ฅผ ๋จน์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ์์คํ ๊ฟ์ ํฅํด ๋์๊ฐ์ผ ํ๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๊ฒ์ด ํ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๋ฉด์ ์ ์คํจํ๋ฉด ์ด๋ป๊ฒ ๋๋์? ์์์ด, ๊ทธ๋ ์ง ์์์ด. ์ํ์ ๊ฐ์ ์ถ์
์ฆ์ ๋ฐ๊ณ ํ์์ค์์ ๋ฉด์ ์๋ค์ ๊ธฐ๋ค๋ฆฝ๋๋ค. ์๊ฐ์ด ์์ฃผ ์ค๋ซ๋์ ํ๋ฌ๊ฐ๋๋ค. 35์ธ์ฏค ๋ ๋จ์์ ๋๊ฐ๋ด๊ธฐ ์ฌ์๊ฐ ๋ค์ด์จ๋ค. ๊ทธ๋ค์ ์์ ์ ์๊ฐํ๊ณ ์์ ์ ๋ํด ๋งํด๋ฌ๋ผ๊ณ ์์ฒญํฉ๋๋ค. โ์ ๋ฆฌ์ผ, ๋ฐ๊ฐ์.โ ์ ๋ 21์ธ์ด๊ณ ์ํธํํ
๋ฅด๋ถ๋ฅดํฌ์ ์๋ ๋ํ์์ ํํธํ์์ผ๋ก ๊ณต๋ถํ๊ณ ์์ผ๋ฉฐ ์ํ์์ ์ฐฝ๊ตฌ ์ง์์ผ๋ก 3๊ฐ์๊ฐ ์ผํ์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ๋ด๊ฐ ๊ณต๋ถํ ๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์๊ณ , ์ทจ์
์์ฅ์ ์ดํด๋ณด๊ธฐ ์์ํ๊ณ ๋ชจ์คํฌ๋ฐ ๊ฒฝ์ ํ์๋ค์ด SQL์ ์๊ตฌ ์ฌํญ์ผ๋ก ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ ๊ณต๋ถํ๊ณ ๊ฐ์ข(MS SQL ๊ด๋ฆฌ โ ๊ทธ๊ฒ์ด ๋ด๊ฐ ๊ฐ์ง ๊ฒ๊ณผ ๋ด๊ฐ ์ ํํ ๊ฒ์
๋๋ค)์ ๊ฐ๋๋ฐ ๋น์ ์ด ์ ์๊ฒ ์ ํํ์ต๋๋ค. ๊ทธ๋ค์ ํ์ฌ์ ๋ํด, ๊ทธ๋ค์ด ํ๋ ์ผ(๋๋ถ๋ถ์ ๋จ์ด๋ ์ดํดํ ์ ์์)์ ๋ํด ์ด์ผ๊ธฐํ ๋ค์ ์ํ์ ๋ณด๋ผ๊ณ ์์ฒญํฉ๋๋ค. ํ
์คํธ์๋ SQL์ ๋ํ 3๊ฐ์ง ์ง๋ฌธ์ด ์์ต๋๋ค. 1. ํ
์ด๋ธ์ด ์ฃผ์ด์ง๋ฉด ID = 10์ธ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ต๋๋ค. 2. ๋ ๊ฐ์ ํ
์ด๋ธ์ด ์ฃผ์ด์ง๋ฉด ์ด๋ฅผ ์ฐ๊ฒฐํ๊ณ ๊ฐ๊ฐ์ ์ด์ ํ์ํฉ๋๋ค. 3. ๋ถ์๋ฅผ ๊ทธ๋ฃนํํ๊ณ ๊ฐ ๋ถ์์ ์ง์ ์๋ฅผ ์ง์ ํฉ๋๋ค. ์ด๋ฌํ ์์ฒญ์ ์์ฑํ๊ฒ ๋์ด ๋งค์ฐ ๋ถ๋๋ฝ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ง์
์ ๋ํ ๋์ ๊ธฐ๋์ ๋ํ ํ ๋ก ์ด ์ด์ด์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋์๊ฒ "์ธํฐ๋ทฐ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ค์ ์ ํํ๊ฒ ์ต๋๋ค. "๋ผ๋ ๋ง๋ฒ์ ๋ฌธ๊ตฌ๋ฅผ ์๋ ค์ค๋๋ค. ์ผ์ฃผ์ผ์ด ์ง๋ฌ๊ณ ๊ทธ๋ค์ ๋์๊ฒ ๊ทธ๋ค๊ณผ ํจ๊ป ์ผํ์๊ณ ์ ์ํ์ต๋๋ค. ํ๋ณต๊ฐ, ์ถฉ๊ฒฉ, ๊ธฐ์จ! ๊ทธ๋ฆฌ๊ณ ์ด๋ค ๋์ ์ํด : 70,000 ๋ฃจ๋ธ์ด ์์ ์์ต๋๋ค! ์, ๋ ๋ถ์๊ฐ ๋ ๊ฑฐ์ผ! ๋๋ ๋ชจ์คํฌ๋ฐ์ ์์ ์ ์ฐฉํ๊ณ ์ค์์ ๋ฐฉ์ ๋น๋ฆฝ๋๋ค. ์ฒซ๋ ์ ํ๋ณตํฉ๋๋ค. 10์ผ์ด ์ง๋๋ฉด ๊นจ๋ฌ์์ด ์์๋ฉ๋๋ค. ๋๋ ์ด๋๋ก ์๋๊ฐ? ๋๋ ์๋ฌด๊ฒ๋ ์ดํดํ์ง ๋ชปํฉ๋๋ค! ๋๋ ๋งค๋ฌ ์ํ ์ ์ฒด์ ๋ํ ๊ฒฝ์ ๋ณด๊ณ ์๋ฅผ ์ค๋นํด์ผ ํ์ต๋๋ค. ๋น์ฐํ ์ ์๊ฒ๋ ๊ทธ๊ฒ์ ๋
์ ์ฌ๋ฌ๋ถ๊ณผ ๊ฐ์์ต๋๋ค. ๋๋ ์ํ ๊ฐ ์ ์ฉ, ์ค์, ๋น์ฉ ํ ๋น, ๋น์ฉ ๋ฑ์ ์ฉ์ด๋ฅผ ๋ผํด์ด ์ฃผ๋ฌธ์ผ๋ก ์ธ์ํ์ต๋๋ค. ๊ทธ ๊ณผ์ ์์ ๋๋ ๋ฌธ์ ์ ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์ ๋ง์คํฐํด์ผ ํ์ต๋๋ค. MS Access(๋ชจ๋ ๋ณด๊ณ ๋ VBA๋ฅผ ํตํด ์ด๋ฃจ์ด์ง), MS SQL(Access ๋์ ์๋ก์ด ์คํ ๋ฆฌ์ง), Oracle(์ฒ์์๋ Oracle์ด๋ผ๊ณ ๋ถ๋ ๊ธฐ ๋๋ฌธ์ ํ์คํ
๋ฆฌ๋ฅผ ์ ๋ฐํจ) ํ๋ก๊ทธ๋๋จธ๋ค ์ฌ์ด์์). ๊ทธ๋ฆฌ๊ณ ๊ฐ์๊ธฐ ๋๋ ๊ธฐ์ ์ ์ธก๋ฉด์ด ๋์๊ฒ ํจ์ฌ ๋ ํฅ๋ฏธ๋กญ๋ค๋ ๊ฒ์ ์ดํดํ๊ธฐ ์์ํ์ต๋๋ค. ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ค๋ ์๋๊ฐ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ด ์คํฌ๋ฆฝํธ์์ ์ค๋จ๋๊ณ ๋ถ๋
ธํ ๊ด๋ฆฌ์๊ฐ ๋๊ฐ ๊ทธ๋ฌ๋์ง ์์๋ด๋ ค๊ณ ๋ฐ์ด๋ค๋๋๋ค. ํ์ง๋ง ๋ณธ์
์ ๊ธ์ต์ด๊ณ , ๋๋ฅผ ํ๋๊ฒํ๊ธฐ ์์ํ์ต๋๋ค. ํ ๋ฌ ๋ฐ ํ์ ์ ๋ ์ด๋ค ๊ฒฐ๊ณผ๋ ์ค ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ง์๋ฅผ ์ฐ๊ณ ์์ต๋๋ค. (์์งํ ๋งํ๋ฉด ๊ทธ๋ค์ ๋์๊ฒ์ ์ด๋ค ๊ฒ๋ ๊ธฐ๋ํ์ง ์์์ต๋๋ค.) ์ฌ๋ฌด๋ถ์์ฅ์ ์ด๋ฅผ ์ฐข์ด๋ฒ๋ฆฌ๋ฉฐ "์ธ๋ฐ์๋ ์ง์ ํ์ง ๋ง์ธ์"๋ผ๊ณ ๋งํฉ๋๋ค. ํ ๋ฌ ํ ๋๋ ๋ค์ ์ฑ๋ช
์๋ฅผ ์ผ๊ณ ๊ทธ๋ฌํ ๋ป๋ปํจ์ ์ถฉ๊ฒฉ์๋ฐ์ ๋ถ์์ฅ (๋์ค์ ์ํ ์ด์ฌํ ์์ฅ์ด ๋จ)์ ๊ทน๋๋ก ๋นํน์ค๋ฌ์์ ์๋ช
ํ์ต๋๋ค. ๊ทธ ๋จ์๋ 21 ์ธ์ด๊ณ ๋ ๋์ ๋ฑ๊ธ์ด ์์ต๋๋ค. ๊ต์ก์ ๋ฐ๊ณ ๊ธ์ฌ์ ์ ๋ขฐ๋ฅผ ๋ชจ๋ ๋ฐ์๋๋ฐ ๊ทธ๋ ์ด๋ ๊ฒ ํ๋ํฉ๋๋ค. ํด๊ณ ์ด์ ๋ ๋ ๊ฐ์ง ์์ธ์ด ๋ ์์ต๋๋ค. ์ค๋งํจ์ ์นจ์ฐฉํ๊ฒ ๋์ํ ์์๋ ์์ฌ์ ํ๋ฆฌ๊ฐ ์ํ๊ธฐ ์์ํ ๋ถํธํ ์์์
๋๋ค. ์ด๊ฒ์ ์์ฒญ๋๊ฒ ์๊ธฐ์ง๋ง ์ฌ๊ธฐ์ ๋๊ธฐ๊ฐ ์์ต๋๋ค. ๊ทธ๋ง๋๊ณ ๋๋ ์ด์ ์ข ํธํด์ง ๊ฒ ๊ฐ์๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๊ฑฐ๊ธฐ์ ์์์ต๋๋ค. <h3>Chapter 2. 70 ์ธํฐ๋ทฐ</h3>์ํ์ ๋์์ ์ฌํธํก์ ํ์ต๋๋ค. "์ด๋ ๊ฒ ์ ๋ฆฌํ๋ฉด ๋ชจ๋๊ฐ ๊น์ง ๋๋ผ๊ฒ ๋ ๊ฒ์
๋๋ค." ์ธํฐ๋ทฐ๊ฐ ์์ ๋์ด ์์๊ณ ๊ธ์ฌ๋ ๋์์ผ๋ฉฐ๋ณด๊ณ ๋ฅผ ์ฒ๋ฆฌ ํ ํ์๊ฐ ์์ ๊ฒ ๊ฐ์์ต๋๋ค. ๋ฉด์ ์ด 4๋ฒ ์๋๋ฐ ์๋ฌด๋ ๋๋ฅผ ์ฑ์ฉํ์ง ์์์. 5, 6๋ฒ์ ์ธํฐ๋ทฐ - ๋๊ฐ์ต๋๋ค. ๋๋ ํ ์ฌ์์ ์
๋ฐฉ์์ ์ด์๊ณ ๊ทธ ์ฌ์๋ ์ผ์๋ฆฌ๋ฅผ ์ป์ด ๋์ ๋ถ์กฑํ ์์
์ ๊ฐ๋นํด ์ฃผ์๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ธ์ ๊น์ง ์์
์ด ์์์ง ์ ํ ์์ง ๋ชปํ์ต๋๋ค. ์ธํฐ๋ทฐ(๋ถ์๊ฐ ๊ณต์)์ ๊ฐ๋๋ฐ ์ฃผ๋ก SQL๊ณผ VBA์ ๋ํด ์ง๋ฌธํ์ต๋๋ค. VBA๋ Excel, Access ๋ฐ ๊ธฐํ MS Office ์ ํ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์
๋๋ค. 10๋ฒ์ ์ธํฐ๋ทฐ๊ฐ ์งํ๋ฉ๋๋ค - ์๋ฌด๊ฒ๋ ์์ต๋๋ค. 20, 30 - ์๋ฌด๊ฒ๋ ์๋๋๋ค. ๊ฒฝํ๊ณผ ๊ณ ๋ฑ ๊ต์ก์ด ๋ถ์กฑํ๋ค๋ ์ฌ์ค์ด ๋ชจ๋๊ฐ ๋ถ๋๋ฌ์ํฉ๋๋ค (๋์๊ฒ๋ ์์ ์ผ์ฒ๋ผ ๋ณด์
๋๋ค). 40๋ฒ์ ์ธํฐ๋ทฐ, ์ ๋ง์ด ์ฌ๊ทธ๋จธ๋ ๋ค์ด์ค๊ธฐ ์์ํฉ๋๋ค. 55-60 ์ธํฐ๋ทฐ ๊ธฐ๊ฐ ๋์ ์ ๋ 1C๋ฅผ ๊ณต๋ถํ๊ธฐ ์์ํฉ๋๋ค. ์ด๋ฏธ ์๋ด๊ฐ ๋ ์๋
๋ ์ ์ด๋ ๊ทธ๊ณณ์ ์์ ์ ์ง์ด ์๊ธฐ ๋๋ฌธ์ ์ํธ ํํ
๋ฅด๋ถ๋ฅดํฌ๋ก ๋ ๋๋ฌ๋ผ๊ณ ์์ฒญํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ 70 ๋ฒ์งธ ์ธํฐ๋ทฐ์์ ์ ๋ ์ํธ ํํ
๋ฅด๋ถ๋ฅดํฌ ์ฐ์
์ง์ญ์์๋ ์๊ท๋ชจ ํ์ฌ์ 50,000 ๋ฃจ๋ธ์ 1C ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์ (1C ๊ฐ๋ฐ์๊ฐ ๋ ์ ๋ง)๋ก ์ด๋๋์์ต๋๋ค. ์ด์ ๋ ๊ฒฝ๋ ฅ ์ฑ์ฅ์
๋๋ค! <h3>3์ฅ. ์ ์ค์ ๊ทํ</h3>ํ์ ์ํธํํ
๋ฅด๋ถ๋ฅดํฌ ๊ณต์
์ง๋์์ ๋ฏธ๋๋ฒ์ค(๊ธฐ์
๊ตํต)๋ฅผ ํ๊ณ ์ฐฝ๋ฐ์ ๋ฐ๋ผ๋ณด๋ฉฐ ํธ๋ 40์๊ฐ์ ๋ฌ๋ฆฌ๋ค ๋ณด๋ ๊ทธ๋ ๊ฒ ์ด์๋ผ. 1C์ ๋ํ ๊ด์ฌ์ ์์ฒด ์์ฑ ์์คํ
์ ์ฒ์ ํฐ์นํ์ ๋ ์ฌ๋ผ์ก์ต๋๋ค. ๊ณํ์ด ํ์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ์ฑ์ํด์ก์ต๋๋ค. ์ ๋
์๋ SQL์ ๊ณต๋ถํ๊ณ ๋์์ ์ ์๋ ค์ง ์ฑ์ฉ ์ฌ์ดํธ๋ฅผ ๋ชจ๋ํฐ๋งํ์ต๋๋ค. ํด๊ณ ์ ๋ง์ง๋ง ๊ณ๊ธฐ๋ ์ํฉ์ด์์ต๋๋ค. ์ด๊ฐ๋
์ ์ด๋ฏธ ํฐ์ผ์ ๊ตฌ๋งคํ์ง๋ง ๊ณํ๋ ํด๊ฐ๋ฅผ ๋ณด๋ด๊ธฐ๋ฅผ ์ํ์ง ์์์ต๋๋ค. ํด๊ฐ๊ฐ ๋๋ ํ ์ง์์๋ฅผ ์์ฑํ๊ณ ๋ชจ์คํฌ๋ฐ ๊ณต์์ ๋ํ ์ด๋ ฅ์๋ฅผ ๋ค์ ๋ณด๋
๋๋ค. ๋ค์ ํ๋ฒ ๋๋ ๋ชจ์คํฌ๋ฐ ์๊ฐ์ ์๋ ํ ๋ํ ์ํ์์ ์ธํฐ๋ทฐ๋ฅผ ์ ์๋ฐ์๋ค. ๋ ๋ค์ ์น์ฒ์ง ๋ถ์์ ๊ฐ์ ์ธํฐ๋ทฐ๋ฅผ ํ๋ฌ ๊ฐ๋๋ค. hr์ด ์ฃผ์๋ฅผ ์ผ์ ๋ ๋๋ ๋ด ๋์ ๋ฏฟ์ ์ ์์์ต๋๋ค. ์ด๊ฒ์ ๋ด๊ฐ ์ผํ๊ณ ์ถ์ ๊ฟ์ ๊ฑด๋ฌผ์ด์์ต๋๋ค (๋ชจ์คํฌ๋ฐ์ ๋ง์ง๋ง์ผ๋ก ๊ฑฐ์ฃผํ์ ๋น์์๋ ๊ฑด์ค ์ค์ด์์ต๋๋ค). ์ง์๋ ์ต๊ณ ์ ๋ณด ์์คํ
์ง์ ์ ๋ฌธ๊ฐ๋ก ๋ถ๋ ธ์ต๋๋ค. ๋๋ ์ฌ๋ฌด์ค์ ๊ฐ๋ค ์ธ๋ จ๋ ์ฌํท๊ณผ ์ฒญ๋ฐ์ง๋ฅผ ์
์ 30๋ ์ ๋์ ๋จ์ฑ์ด ๋๋ฅผ ๋ง์ดํ๋ค. 15์ธต์ ์ฌ๋ผ ๋์์ ์ ๊ฒฝ์ ๋ณด๋ ์จ์ด ๋งํ ์ ๋์์ต๋๋ค. ์คํ๋ฆฐ์ฃผ์ ๊ณ ์ธต ๊ฑด๋ฌผ์ด ๋ชจ๋ ๋์ ๋์์ต๋๋ค. ๊ฑด๋ฌผ์ ์ ์ฒด ์คํ์ผ์ ๋งค์ฐ ํ๋์ ์ด์์ต๋๋ค. ์์ฌ ์ฌ๋ฌด์ค์๋ ์์ธ ๋์ฅ๊ณ , ์ธ๋ จ๋ ์์กฑ๊ด, ํ๋ฐฑ ์คํ์ผ์ ๋ฒ๊ฑฐ ๋ฒ์ ์ฌ์ฑ ๊ทธ๋ฆผ์ด์์์ต๋๋ค. ์ด๋ก ์ธํด "์์ฐ" ํจ๊ณผ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์์ฌ์์ ๋ํ๋ ํ์์ฒ๋ผ ์ผ์ด๋์ง ์์์ต๋๋ค. ๊ทธ๋ ์ฝ 40 ๋ถ ๋์ ์ํ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค. ๋๋ ์๋ฌด๊ฒ๋ ์ดํดํ์ง ๋ชปํ์ง๋ง ๊ณ ๊ฐ๋ฅผ ๋๋์๋ค. ๋ด๊ฐ ๋ฌผ์์ ๋: ์ธ์ ๋์๊ฒ ๋ฌป๊ธฐ ์์ํ ๊ฒ๋๊น? ๊ทธ๋ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ง ์์์ต๋๋ค. ๋ค์ ํ ๋ฒ โ๊ธฐ์ ๋ฉด์ ์ ์ธ์ ํ์๋์?โ๋ผ๋ ์ง๋ฌธ์ โ๋ค, ์ด์จ๋ ์ฑ์ฉํ๊ฒ ์ต๋๋ค. ๊ฐ๋นํ ์ ์์ผ๋ฉด ํด๊ณ ํ๊ฒ ์ต๋๋คโ๋ผ๋ ๋๋ต์ด ๋์์์ต๋๋ค. ์์ผ๋ฉฐ ๋งํ๊ณ ๋ชจ๋ ๊ฒ์ด ๊ฟ์ด ๋ค์ ์ด๋ฃจ์ด ์ก๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค! <h3>4์ฅ. IT์์ ์์ ์ฐพ๊ธฐ </h3>์ ์ง์ฅ์ ๋์ฐฉํ์ ๋ ์ ๋ฐ๋ก ๋๋ฅผ ์ฑ์ฉํ๋์ง ์ดํด๊ฐ ๋์์ต๋๋ค. ๋ถ์ ์ง์์ ์ ํ์ ์ธ ์ด์ํ๋ฅผ ์ค๋ช
ํ๊ฒ ์ต๋๋ค. ํ๊ท ์ฐ๋ น 55์ธ, ๋ชจ์คํฌ๋ฐ ์ถ์ , ๋ชจ์คํฌ๋ฐ ์ฃผ๋ฆฝ ๋ํ ๊ต์ก, ์๋ จ ์๋ ๊ตญ๋ฐฉ ์ฐ๊ตฌ์์์ ๊ทผ๋ฌด, 90๋
๋ ์ํ ๋ถ๋ฌธ์ผ๋ก ์ ํ, 20๋
๋์ ์ด๊ณณ์์ ๊ทผ๋ฌด ๋
์ ๋ฐ์ ๋จ์์ด๊ณ ์ ๋ฐ์ ์ฌ์์
๋๋ค. ๊ทธ๋ค์ ์ฃผ๋ณ ์ธํ
๋ฆฌ์ด์ ์์ ํ ๋ถํํ์์ ๊ฒช์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ๊ณ ๋ณด๊ณ ํ๋ก๊ทธ๋จ์ ์ ์งํ๋ ์ผ์ ์ฐธ์ฌํ์ต๋๋ค. ๋น์ฐํ ์ด ๋ชจ๋ ๊ฒ์ 90๋
๋ ํ๋ฐ๊ณผ 2000๋
๋ ์ด๋ฐ์ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ๊ณ ๋ VBA ๋ฐ SQL ์คํฌ๋ฆฝํธ์ ์์์ต๋๋ค. ๋๋ 2015๋
์ด์๊ณ ์๋ํ๋ MS Access๋ฅผ ํตํด ์ด๋ฃจ์ด์ก์ต๋๋ค. ์ฆ, ๋งค์ฐ ์ด์
ํด ๋ณด์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์์ค๊ฐ ์์์ต๋๋ค. ๊ทธ๋ค์ ๊ณ ๊ฐ(ํ๊ณ)์ด ์ํ๋ ๊ฒ์ ์ ๊ณตํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ํํ ์ ์์ ํ์ํ ํ์์ผ๋ก. ์ค์ง ๊ทธ๋ค๋ง์ด ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์๊ณ ์์๊ณ ์ฌ์ง์ด Onotole์กฐ์ฐจ๋ ๊ทธ๋ค์ ๊ฐ๋ฐ์ ๋ณต์ก์ฑ์ ์์ํ ์ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ค IT ๊ด๋ฆฌ์๋ผ๋ ๊ทธ๋ค์ ํด๊ณ ํ ์๋ ์์์ต๋๋ค. ์ต๊ณ ํ๊ณ์ฌ๋ ์ํ ์ด์ฌํ์ ๊ฐ์ ํ๊ณ ๋ถ์์ ์ด์ต์ ์ํด ๋ด์ฌํ๋ ๋ชจ๋ ์ง์์ ๋ณํธํ์ต๋๋ค. ๊ด๋ฆฌ์๋ ์ ๊ฐ ํธ๋ก์ด ๋ชฉ๋ง ์ญํ ์ ํ๊ธฐ๋ฅผ ์ํ์ต๋๋ค. ์ ๋ ๊ทธ๋ค์ ๋ชจ๋ ๊ฐ๋ฐ ๊ณผ์ ์ ์ฐ๊ตฌํ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์์คํ
์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์์ ์ง์์ ํด๊ณ ๋๊ณ ๋๋ ์๋ก์ด ์์คํ
์ผ๋ก ์ฎ๊ฒจ๊ฐ ์ ์๋ค. ๋จผ์ ํ๋ก์ธ์ค๋ฅผ ์์ธํ ์ดํด๋ณด๊ณ VBA ์ฝ๋๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ์ ์ฐจ์ ์ผ๋ก VBA ์ฝ๋๋ฅผ ์ฝ๋ ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค. 1๋
ํ ๋๋ ์ด๋ฏธ ์ฝ๋ ์์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์์
: ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ ํน์ ํ์์ผ๋ก Excel์ ๋ฃ์ต๋๋ค. ์ด์ Zadornov๊ฐ ๋งํ๋ฏ์ด ์ฌํธํก์ ํด๋ณด์ธ์. ๋ถ์์ ๋ชจ๋ ๋ณด๊ณ (์ผ์ผ 50๊ฐ, ์๊ฐ ๋ณด๊ณ ์ 20๊ฐ์
๋๋ค!)๊ฐ ์๋์ผ๋ก ์คํ๋์์ต๋๋ค! ์นผ, ์ฌ๋๋ค์ด 50๊ฐ์ ๋ณด๊ณ ์์์ ๋งค์ผ ์์ผ๋ก ๋ ์ง๋ฅผ +1๋ก ๋ณ๊ฒฝํ๋ค๋ ๊ฒ์ ์๊ณ ๊ณ์ญ๋๊น? ๊ทธ๋ค์ ์์์ 1~10๋ถ ๋์ ํ ๋ณด๊ณ ์์ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค๋ฅธ ๋ณด๊ณ ์๋ฅผ ์คํํฉ๋๋ค! ๊ฒ๋ค๊ฐ ์ผ์ผ ๋ณด๊ณ ์๋ ํน์ ์๊ฐ์ ์์๋์ด์ผ ํ๋ฉฐ, ๋ฆ์ผ๋ฉด ์ ๋ฉ๋๋ค! ๋ณด๊ณ ์๋ฅผ ์์ฑํ ๋ฟ๋ง ์๋๋ผ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ๋ก์์ ๋ฅผ ์๋์ผ๋ก ์คํํฉ๋๋ค! ์ฆ, @startDate = '2015-01-01' ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋์ 20์๋ฆฌ์์ ๋์ผํ ๋ ์ง๋ฅผ ์๋์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค! ์ด๊ฑธ ๋ค ๋ณด๊ณ ๋์ ํ์ด์ฌ์ ๋ฐฐ์ฐ๊ธฐ ์์ํ๋๋ฐ, ๊ทธ๋ฆฌ๊ณ VBA, SQL, ์์
์ค์ผ์ค๋ฌ์ ํจ๊ป ์ด ๋ชจ๋ ๊ฒ์ 2๋
๋ง์ ์๋ํํ์ต๋๋ค. ์๋ํ๋์์ ๋ฟ๋ง ์๋๋ผ ๋ง์ ๋ณด๊ณ ์๊ฐ ๊ฐ์ํ๋์์ต๋๋ค. MS SQL + TSQL์ ์ ํธํ์ฌ MS Access + VBA๋ฅผ ํฌ๊ธฐํ๋ฉด ์์ฐ์ฑ์ด ํฌ๊ฒ ํฅ์๋ ์ ์์ต๋๋ค. ๋ด ๊ธฐ๋ก์ผ๋ก ์ธํด ๋ณด๊ณ ์ ์์ฑ ์๋๊ฐ ๋นจ๋ผ์ง๊ณ ์์ต๋๋ค.100ํ ๋ฒ! ๊ทธ๋ฌ๋ ๋ด ๋๋ฃ๋ค์ ๊ทธ๋ฌํ ์๋ํ์ ๊ทน๋๋ก ๋ถ๋ง์ ํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ๋๋ ๊ตญ๋ฏผ์ ์ ์ผ๋ก ์ ์ธ๋์์ต๋๋ค (๊ทธ๋ค์ ์ํด ํ ๋๊น์ง ์กฐ์ฉํ ์์ ์๊ธฐ๋ฅผ ์ํ์ต๋๋ค). ์๊ฐ์ด ํ๋ฌ ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์
์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ก์ต๋๋ค. ๊ด๋ฆฌ์๋ ์ ๋ฅผ ๋งค์ฐ ์์คํ ์ฌ๊ฒผ์ต๋๋ค. ๊ฒฝ๋ ฅ ์ด๊ธฐ์ ์ค์ 8์์ ์ถ๊ทผํ๋ค๋ฉด ์ ์ ํ 12์๊น์ง ์ธ์ ๋ ์ง ์ฌ ์ ์์๊ณ ๊ธ์ฌ์ ์ง์๊ฐ ์ง์์ ์ผ๋ก ์ธ์๋๊ณ ์ฃผ๋ง ๊ทผ๋ฌด์ ๋ํ ๊ธ์ฌ๊ฐ ๋ ๋ง์ด ์ง๊ธ๋์์ต๋๋ค. ๊ธ์ก์ ๋ ๋ฐฐ๋ก ๋๋ฆฌ๊ณ , ์ง์ฅ์ ๋ฆ์์ ๊ฒฝ์ฐ ์ง์ผ๋ก ํ์๋ฅผ ํ๊ณ ์ด๋ ํต์ ์ ๊ฐ๋จํ ๋งํ๋ฉด ์๋ฆฌํธ์
๋๋ค! <h3>Chapter 5. The Golden Cage</h3>3๋
๋ฐ์ด ์ง๋ ํ ๊ฐ์๊ธฐ ์๋ก์ด IT ๊ด๋ฆฌ์๊ฐ ์์ ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ ์์คํ
์ด ๋ ์ด์ ํ์ํ์ง ์๋ค๊ณ ๋งํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ์กด ์์คํ
์ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. ๋์ ์์ฌ๋ ๊ฒฝ๋ ฅ์ ์ฌ๋ค๋ฆฌ๋ฅผ ์ฌ๋ผ๊ฐ๊ณ ์์ผ๋ฉฐ ๋๋ฅผ ์ข ๋ ์ง๋ณด์ ์ธ ๋ถ์๋ก ์ฎ๊ธฐ๋ผ๊ณ ์ด๋ํฉ๋๋ค. ์ง๋ณด์ ์ธ ๋ถ์์ฅ๊ณผ์ ํ์์์ ๋๋ ์ด ๋ถ์์ ๊ธฐ์ ์คํ์ด ๋์๊ฒ ์๋ ค์ง์ง ์์๋ค๋ ๊ฒ์ ์ดํดํ์ต๋๋ค: Oracle, .net, C#, Linux ๋ฑ. + ์ ์ฌ์ ์์ฌ์ ๋ํ ๋ฐ๊ฐ. ๋๋ ์ง๋ณด์ ์ธ ๋ถ์์ ๊ด์ฌ์ด ์๋ค๊ณ ๋งค๋์ ์๊ฒ ๋งํ๊ณ ๊ทธ๋ ํธ๋ฆฌํ๊ฒ๋ ๋๋ฅผ ์์ด๋ฒ๋ ธ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ง๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ค์์ ๋ฌด์์ ํด์ผ ํ ๊น์? ์์
์ ์ด๋ฏธ ๊ด์ฐฎ์๊ณ , ์ฃผ๋์ด ๊ฐ๋ฐ์๋ ๊ทธ ์ฐ๋ด์ผ๋ก ๋๋ฅผ ๊ณ ์ฉํ์ง ์์ ๊ฒ์
๋๋ค. ๋ด ์ค๋ ฅ์ ๋ํด ๊ณ ๋ฏผํ ๋์ ๋จธ์ ๋ฌ๋์ ๋ฐฐ์์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ์ฐ๊ตฌ์์์ ํ์ค๊ฐ์ ๋ถ๋ฌ ์ผ์ผํค๋ ์ํ์ ํต๊ณ๋ฅผ ์ฒ์ ์ ํ ๋๊น์ง ๋ชจ๋ ๊ฒ์ด ํฅ๋ฏธ๋ก ์ ์ต๋๋ค. ๊ทธ๊ฒ ๋ค์ผ, 6 ๊ฐ์ ๋์ ๋ฌด๊ฐ๊ฐ ํด! ์๊ฐ์ด ํ๋ฅด๊ณ ์ด๋ ๋ , ๊ฑท๋ค๊ฐ ๋ชจ์คํฌ๋ฐ ์ง๋์ ์ข์ ๋ ์คํ ๋์ ํ์ํด ์ฃผ๋ ์น์ฌ์ดํธ๊ฐ ์๊ฐ๋ฌ์ต๋๋ค. HTML, CSS, JS๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์์ํ์ต๋๋ค. 3๊ฐ์ ๋์ ๊ณต๋ถํด์ ๋ณธ๊ฒฉ์ ์ธ ํํ์ด์ง๋ฅผ ๋ง๋ค ์ ์๋ ์ง์์ ์์์ง๋ง ์ง์ฅ์์ ์ฐ์ตํ ์ ์์์ต๋๋ค. ์์ด๋์ด๊ฐ ํ์ํ์ต๋๋ค. ํ๊ณ์ฌ๊ฐ ๋ฒํผ์ ์ฌ์ฉํ์ฌ ์ค์ค๋ก ๋ณด๊ณ ์๋ฅผ ๋ค์ด๋ก๋ํ ์ ์๋ ํฌํธ์ ๋ง๋๋ ๊ฒ์
๋๋ค. ํฌํธ์ ๋ง๋๋ ๋ฐ 2๊ฐ์์ด ๊ฑธ๋ ธ๊ณ , Node.js ๋ฐฑ์๋๋ฅผ ๊ฐ์ถ React js๋ก SPA(Single Page Application) ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ํ์ํ์ต๋๋ค. SQL ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ ์คํํ๊ณ (Hibernate์ ๊ฐ์ ํ๋ ์์ํฌ์ ๋ํด์๋ ๋ชฐ๋์ต๋๋ค) Python์ ์คํํ๊ณ MongoDb์ ์ถ๊ฐ ์ ๋ณด(์: ์ฌ์ดํธ ์ฌ์ฉ์์ ๋ํ ์ ๋ณด)๋ฅผ ์ ์ฅํ์ต๋๋ค. ์ธ๋ถ์ ์ผ๋ก๋ ์ฌ์ดํธ๊ฐ ๋งค์ฐ ๊ด์ฐฎ์ ๋ณด์์ต๋๋ค(๋ถํธ์คํธ๋ฉ 4, ํจ์
๋๋ธํ ์ ๋๋ฉ์ด์
). ๋๋ ์์ง๋ ์ด ํ๋ก์ ํธ๊ฐ ์๋์ค๋ฝ๋ค. ํ์ง๋ง ์ํ ์น ๊ฐ๋ฐ์์๊ฒ ๋ด ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ์ ๊ทธ๋ค์ ๊น์ง ๋๋์ต๋๋ค. ๋น์ ๋ง์ ํด๋์ค๊ฐ ํ๋๋ ์์ต๋๋ค! ๊ธฐ๋ฅ๋ง ์๊ณ ํ๋์ฝ์ด๋ง ์์ต๋๋ค! ์นญ์ฐฌ์ ํด์ฃผ์๋๋ฐ, ๋ฏธ๋ค ํ์คํ ๊ฐ๋ฐ์๊ฐ ๋๋ ค๋ฉด ์์ง ๊ณต๋ถ๋ฅผ ๋ง์ด ํด์ผ ํ๋ค๊ณ ํ๋๊ตฐ์. ๋ถ์๊ฐ๋ก ์ทจ์
ํ๋ ค๊ณ ๋
ธ๋ ฅํ์ง๋ง ํน๋ณํ ์ ์์ด ์์์ต๋๋ค. ์ ์๊ฐ์๋ ์ ๋ ๊ฑฐ๊ธฐ ์์์ต๋๋ค. ํ์คํ ๊ฐ๋ฐ์์ ์ด๋ ฅ์๋ฅผ ๊ฒ์ํ๊ฒ ์ต๋๋ค. ์ ํ๊ฐ ์์ง๋ง ์ธํฐ๋ทฐ ์ค์ ๋๋ ํฉํ์ฒ๋ผ ํ๋ฆฌ ์๋ก ๋ ์๊ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด HashMap, HashSet์ด ๋ฌด์์ธ์ง, ์ ํ์ํ์ง ๋ชฐ๋์ต๋๋ค. OOP, ํ๋ก๊ทธ๋๋ฐ ํจํด, ์๊ณ ๋ฆฌ์ฆ, ํ
์คํธ, Git์ ๋ํ ์์ด๋์ด๋ ์ ํ ์์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ธ ๊ฒ์ ๋ํ ๋ฌด์ง๋ก ์ธํด ์ค๋ซ๋์ ์ํ์ง ์์น์ฌ์ด ์๊ฐ๋ฌ์ต๋๋ค. ๊ฐ์๊ธฐ ๊ธ์ตํ์ฌ์ ๊ณ ๊ฐ ๋ถ์ ์ฑ
์์ ์๋ฆฌ์ ์ ์๊ฐ ๋ค์ด์์ต๋๋ค. ์ ์ผ๋ณ์ผ๋ก ์ธํด ๊ตญ๊ฐ๊ฐ ํ์๋๊ธฐ ์ผ์ฃผ์ผ ์ ์
๋๋ค. ๊ธ์ตํ์ฌ์ ์ทจ์งํ๋๋ฐ ์ด์ค์ ์ธ ๋๋์ด ๋ค์์ต๋๋ค. ํํธ์ผ๋ก๋ ๋์ ์ฐ๋ด์ด ๋ฐ๋ปํ์ง๋ง, ๋ค๋ฅธ ํํธ์ผ๋ก๋ ๊ธฐ์ ์ ์ธ ๋ฉด์์๋ ์ต์ํ์ ๋ฐ์ ์ด ์์ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ๊ธฐ๊ธฐ๋ฅผ ์ค์นํ๊ณ ์๊ฒฉ๊ทผ๋ฌด๋ฅผ ๋์
ํ ์ง ์ผ์ฃผ์ผ์ด ์ง๋ฌ์ต๋๋ค. ๊ธ์ต๊ถ์ ํด๋ฌด์ผ์ด ์ ์ฉ๋์ง ์์ ํ์๋๋ก ์ผํ์ต๋๋ค. ์ ์์ฌ๋ ๋งค์ฐ ๋ฏธ์น ์ฌ๋์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ๊ทธ๋ Facebook์ ์คํฌ๋ฉํ๊ณ ๊ณ ๊ฐ์ ์ฐ๊ตฌํ๊ธฐ ์ํด ์์ ์ ์ ๊ฒฝ๋ง์ ๋ง๋ค๊ฒ ๋ค๊ณ ์ ์ํ์ต๋๋ค(์ง์ ์ค ๋ฐ์ดํฐ ๊ณผํ์ ์์ด). ์ ์
์ง์์๊ฒ๋ ์ผ์ฃผ์ผ ์์ Python์ ๋ฐฐ์ฐ๋๋ก ์ ์๋์์ต๋๋ค. ๋ฌด๊ธ ํด๊ฐ๊ฐ ํ์ค์ด ๋์์ต๋๋ค. ๊ทธ๋ง๋๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ด์์ต๋๋ค. ์ ์ผ๋ณ ๋์ ์ด๋์ ์ผ์๋ฆฌ๋ฅผ ์ป์ ์ ์์ต๋๊น? ํ์ง๋ง ๋ถ๊ธฐ๋ณ ๋ณด๋์ค๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ๋ฐํ๋ ์ง 2๊ฐ์ ๋ง์ ์ธ๋ด์ฌ์ด ๋ฐ๋ฅ๋ฌ์ต๋๋ค. ๋์์ค๋ ๊ธ์ฌ๋ฅผ ํฉ์ํ ๋ ์ฑ์ฉ ๋น์ hr์ด ๊ธ์ฌ๋ฅผ ๊ธ์ฌ(60%)์ ๋ถ๊ธฐ๋ณ ์์ฌ๊ธ(40%)์ผ๋ก ๋๋ ์ ํญ์ ์ง๊ธํ๋ค๊ณ ํ๋ค๋ ๊ฒ๋๋ค. ์๋ชป๋ ์ ํ์ ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํด์ก๊ณ ์ฐ๋ฆฌ๋ ์๋ก์ด ์ผ์๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์์ํด์ผ ํ์ต๋๋ค. <h3>6์ฅ. Java ๋ง์คํฐํ๊ธฐ</h3>5์์ ์ด๋ ํ์ฐฝํ ๋ , ๋๋ ๊ณต์์ธ "๊ฐ๋ฐ์"์ ์ธํฐ๋ทฐ ์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ๋ณดํ์
์ ์ข
์ฌํ๋ ํ์ฌ์๋ ๋ณดํ์ํ์ ๊ฐ๋ฐํ ์ฌ๋์ด ํ์ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ํ์ํ์ง๋ง ์ด๋ ํ์ฌ์ "๋
ํนํ" ๊ฐ๋ฐ์ด๋ฏ๋ก ํน์ ์ธ์ด๊ฐ ํ์ํ์ง ์์ต๋๋ค. Git ๋ฑ๋ ํ์ํฉ๋๋ค. ์ดํ ๋ง์ ์ธํฐ๋ทฐ ์ผ์ ์ ์ก๊ณ , ์์ ์๊ฐ์ Git์ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํ์ต๋๋ค. ์ธํฐ๋ทฐ ๋์ค Python, JS, Git, SQL์ ๋ํ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. โ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉโ ๊ฐ๋
๋นผ๊ณ ๋ค ๋ต๋ณํ๊ณ , 2์ฃผ ๋ง์ ์์
์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ์๊ณ ๋ณด๋ ํ์ฌ๋ ์ค๋ ์ ์ ์์คํ
์ ๊ตฌ์
ํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ชฐ๋ผ๋(๋ณด๋ค ์ ํํ๊ฒ๋ ๋ด์ฅ๋ Jelly ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ) ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ Java(์๋ฉด ๋ฐ ๋ท๋ฉด)๋ก ์์ฑ๋์์ต๋๋ค. ์ข๊ฒ ๋ค๋ฆฌ์ง๋ง ์ฌ์ค ๋ชจ๋ ๊ฒ์ด ์๊ณก๋์์ต๋๋ค. ์์ ์ ์ฌ๋ด: ๋ชจ๋ ๊ธฐ์ ์๋ ๊ณ ์ ํ ์๋์ ๊ท๋ชจ๊ฐ ์์ต๋๋ค. 2000๋
์ ๋ชจ๋ ๋ณด๊ณ ๋ฅผ Excel์์๋ง ์ํํ๋ค๋ ๊ฒ์ ๋ฉ์ง ์ผ์
๋๋ค. 2021๋
์๋ ๊ฐ์ ์ผ์ ํ๋ ๊ฒ์ ๋ณ๋ก ์ข์ง ์์ต๋๋ค. ์์ HTML๋ก ๋ ํ์ฌ ์น์ฌ์ดํธ๋ 1999๋
์๋ ๋ฉ์ก์ง๋ง 2021๋
์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๊ฐ ์ฐฝ๋ฆฝ ๋น์(2005๋
) ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋งค์ฐ ํ๋ฅญํ์ต๋๋ค. Java๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ถ๋ถ(์์ Java ์๋ธ๋ฆฟ ํ์ด์ง๋ผ๊ณ ํจ)์ ๋ชจ๋ ๋ด๋นํ์ต๋๋ค. ๋ํ ์์ฒด UI๊ฐ ์๋ ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํ์ผ์ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋ถํธํ์ง ์ดํดํ๋ ค๋ฉด Intellij ์์ด๋์ด๋ก Java ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ๋ค์, ์์ํด ๋ณด์ญ์์ค. ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ๋ก๊ทธ๋จ ์ปค๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ๋๋ฅผ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ํ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค. ํํธ #1: ํ
์คํธ๋ฒค์น์ ์ฝ๋๋ฅผ ์ ์ถํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค. ๋ฐ๋ฉด์ ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์์๋ ์ต์ํ์ ๊ฐ๋ฐ๋ง ์์ ๊ฒ์
๋๋ค. ๊ธฐ๊ธฐ๋ฅผ ์ค์นํ๊ณ ์๊ฒฉ๊ทผ๋ฌด๋ฅผ ๋์
ํ ์ง ์ผ์ฃผ์ผ์ด ์ง๋ฌ์ต๋๋ค. ๊ธ์ต๊ถ์ ํด๋ฌด์ผ์ด ์ ์ฉ๋์ง ์์ ํ์๋๋ก ์ผํ์ต๋๋ค. ์ ์์ฌ๋ ๋งค์ฐ ๋ฏธ์น ์ฌ๋์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ๊ทธ๋ Facebook์ ์คํฌ๋ฉํ๊ณ ๊ณ ๊ฐ์ ์ฐ๊ตฌํ๊ธฐ ์ํด ์์ ์ ์ ๊ฒฝ๋ง์ ๋ง๋ค๊ฒ ๋ค๊ณ ์ ์ํ์ต๋๋ค(์ง์ ์ค ๋ฐ์ดํฐ ๊ณผํ์ ์์ด). ์ ์
์ง์์๊ฒ๋ ์ผ์ฃผ์ผ ์์ Python์ ๋ฐฐ์ฐ๋๋ก ์ ์๋์์ต๋๋ค. ๋ฌด๊ธ ํด๊ฐ๊ฐ ํ์ค์ด ๋์์ต๋๋ค. ๊ทธ๋ง๋๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ด์์ต๋๋ค. ์ ์ผ๋ณ ๋์ ์ด๋์ ์ผ์๋ฆฌ๋ฅผ ์ป์ ์ ์์ต๋๊น? ํ์ง๋ง ๋ถ๊ธฐ๋ณ ๋ณด๋์ค๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ๋ฐํ๋ ์ง 2๊ฐ์ ๋ง์ ์ธ๋ด์ฌ์ด ๋ฐ๋ฅ๋ฌ์ต๋๋ค. ๋์์ค๋ ๊ธ์ฌ๋ฅผ ํฉ์ํ ๋ ์ฑ์ฉ ๋น์ hr์ด ๊ธ์ฌ๋ฅผ ๊ธ์ฌ(60%)์ ๋ถ๊ธฐ๋ณ ์์ฌ๊ธ(40%)์ผ๋ก ๋๋ ์ ํญ์ ์ง๊ธํ๋ค๊ณ ํ๋ค๋ ๊ฒ๋๋ค. ์๋ชป๋ ์ ํ์ ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํด์ก๊ณ ์ฐ๋ฆฌ๋ ์๋ก์ด ์ผ์๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์์ํด์ผ ํ์ต๋๋ค. <h3>6์ฅ. Java ๋ง์คํฐํ๊ธฐ</h3>5์์ ์ด๋ ํ์ฐฝํ ๋ , ๋๋ ๊ณต์์ธ "๊ฐ๋ฐ์"์ ์ธํฐ๋ทฐ ์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ๋ณดํ์
์ ์ข
์ฌํ๋ ํ์ฌ์๋ ๋ณดํ์ํ์ ๊ฐ๋ฐํ ์ฌ๋์ด ํ์ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ํ์ํ์ง๋ง ์ด๋ ํ์ฌ์ "๋
ํนํ" ๊ฐ๋ฐ์ด๋ฏ๋ก ํน์ ์ธ์ด๊ฐ ํ์ํ์ง ์์ต๋๋ค. Git ๋ฑ๋ ํ์ํฉ๋๋ค. ์ดํ ๋ง์ ์ธํฐ๋ทฐ ์ผ์ ์ ์ก๊ณ , ์์ ์๊ฐ์ Git์ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํ์ต๋๋ค. ์ธํฐ๋ทฐ ๋์ค Python, JS, Git, SQL์ ๋ํ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. โ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉโ ๊ฐ๋
๋นผ๊ณ ๋ค ๋ต๋ณํ๊ณ , 2์ฃผ ๋ง์ ์์
์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ์๊ณ ๋ณด๋ ํ์ฌ๋ ์ค๋ ์ ์ ์์คํ
์ ๊ตฌ์
ํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ชฐ๋ผ๋(๋ณด๋ค ์ ํํ๊ฒ๋ ๋ด์ฅ๋ Jelly ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ) ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ Java(์๋ฉด ๋ฐ ๋ท๋ฉด)๋ก ์์ฑ๋์์ต๋๋ค. ์ข๊ฒ ๋ค๋ฆฌ์ง๋ง ์ฌ์ค ๋ชจ๋ ๊ฒ์ด ์๊ณก๋์์ต๋๋ค. ์์ ์ ์ฌ๋ด: ๋ชจ๋ ๊ธฐ์ ์๋ ๊ณ ์ ํ ์๋์ ๊ท๋ชจ๊ฐ ์์ต๋๋ค. 2000๋
์ ๋ชจ๋ ๋ณด๊ณ ๋ฅผ Excel์์๋ง ์ํํ๋ค๋ ๊ฒ์ ๋ฉ์ง ์ผ์
๋๋ค. 2021๋
์๋ ๊ฐ์ ์ผ์ ํ๋ ๊ฒ์ ๋ณ๋ก ์ข์ง ์์ต๋๋ค. ์์ HTML๋ก ๋ ํ์ฌ ์น์ฌ์ดํธ๋ 1999๋
์๋ ๋ฉ์ก์ง๋ง 2021๋
์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๊ฐ ์ฐฝ๋ฆฝ ๋น์(2005๋
) ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋งค์ฐ ํ๋ฅญํ์ต๋๋ค. Java๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ถ๋ถ(์์ Java ์๋ธ๋ฆฟ ํ์ด์ง๋ผ๊ณ ํจ)์ ๋ชจ๋ ๋ด๋นํ์ต๋๋ค. ๋ํ ์์ฒด UI๊ฐ ์๋ ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํ์ผ์ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋ถํธํ์ง ์ดํดํ๋ ค๋ฉด Intellij ์์ด๋์ด๋ก Java ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ๋ค์, ์์ํด ๋ณด์ญ์์ค. ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ๋ก๊ทธ๋จ ์ปค๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ๋๋ฅผ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ํ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค. ํํธ #1: ํ
์คํธ๋ฒค์น์ ์ฝ๋๋ฅผ ์ ์ถํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค. ๋ฐ๋ฉด์ ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์์๋ ์ต์ํ์ ๊ฐ๋ฐ๋ง ์์ ๊ฒ์
๋๋ค. ๊ธฐ๊ธฐ๋ฅผ ์ค์นํ๊ณ ์๊ฒฉ๊ทผ๋ฌด๋ฅผ ๋์
ํ ์ง ์ผ์ฃผ์ผ์ด ์ง๋ฌ์ต๋๋ค. ๊ธ์ต๊ถ์ ํด๋ฌด์ผ์ด ์ ์ฉ๋์ง ์์ ํ์๋๋ก ์ผํ์ต๋๋ค. ์ ์์ฌ๋ ๋งค์ฐ ๋ฏธ์น ์ฌ๋์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ๊ทธ๋ Facebook์ ์คํฌ๋ฉํ๊ณ ๊ณ ๊ฐ์ ์ฐ๊ตฌํ๊ธฐ ์ํด ์์ ์ ์ ๊ฒฝ๋ง์ ๋ง๋ค๊ฒ ๋ค๊ณ ์ ์ํ์ต๋๋ค(์ง์ ์ค ๋ฐ์ดํฐ ๊ณผํ์ ์์ด). ์ ์
์ง์์๊ฒ๋ ์ผ์ฃผ์ผ ์์ Python์ ๋ฐฐ์ฐ๋๋ก ์ ์๋์์ต๋๋ค. ๋ฌด๊ธ ํด๊ฐ๊ฐ ํ์ค์ด ๋์์ต๋๋ค. ๊ทธ๋ง๋๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ด์์ต๋๋ค. ์ ์ผ๋ณ ๋์ ์ด๋์ ์ผ์๋ฆฌ๋ฅผ ์ป์ ์ ์์ต๋๊น? ํ์ง๋ง ๋ถ๊ธฐ๋ณ ๋ณด๋์ค๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ๋ฐํ๋ ์ง 2๊ฐ์ ๋ง์ ์ธ๋ด์ฌ์ด ๋ฐ๋ฅ๋ฌ์ต๋๋ค. ๋์์ค๋ ๊ธ์ฌ๋ฅผ ํฉ์ํ ๋ ์ฑ์ฉ ๋น์ hr์ด ๊ธ์ฌ๋ฅผ ๊ธ์ฌ(60%)์ ๋ถ๊ธฐ๋ณ ์์ฌ๊ธ(40%)์ผ๋ก ๋๋ ์ ํญ์ ์ง๊ธํ๋ค๊ณ ํ๋ค๋ ๊ฒ๋๋ค. ์๋ชป๋ ์ ํ์ ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํด์ก๊ณ ์ฐ๋ฆฌ๋ ์๋ก์ด ์ผ์๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์์ํด์ผ ํ์ต๋๋ค. <h3>6์ฅ. Java ๋ง์คํฐํ๊ธฐ</h3>5์์ ์ด๋ ํ์ฐฝํ ๋ , ๋๋ ๊ณต์์ธ "๊ฐ๋ฐ์"์ ์ธํฐ๋ทฐ ์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ๋ณดํ์
์ ์ข
์ฌํ๋ ํ์ฌ์๋ ๋ณดํ์ํ์ ๊ฐ๋ฐํ ์ฌ๋์ด ํ์ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ํ์ํ์ง๋ง ์ด๋ ํ์ฌ์ "๋
ํนํ" ๊ฐ๋ฐ์ด๋ฏ๋ก ํน์ ์ธ์ด๊ฐ ํ์ํ์ง ์์ต๋๋ค. Git ๋ฑ๋ ํ์ํฉ๋๋ค. ์ดํ ๋ง์ ์ธํฐ๋ทฐ ์ผ์ ์ ์ก๊ณ , ์์ ์๊ฐ์ Git์ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํ์ต๋๋ค. ์ธํฐ๋ทฐ ๋์ค Python, JS, Git, SQL์ ๋ํ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. โ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉโ ๊ฐ๋
๋นผ๊ณ ๋ค ๋ต๋ณํ๊ณ , 2์ฃผ ๋ง์ ์์
์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ์๊ณ ๋ณด๋ ํ์ฌ๋ ์ค๋ ์ ์ ์์คํ
์ ๊ตฌ์
ํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ชฐ๋ผ๋(๋ณด๋ค ์ ํํ๊ฒ๋ ๋ด์ฅ๋ Jelly ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ) ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ Java(์๋ฉด ๋ฐ ๋ท๋ฉด)๋ก ์์ฑ๋์์ต๋๋ค. ์ข๊ฒ ๋ค๋ฆฌ์ง๋ง ์ฌ์ค ๋ชจ๋ ๊ฒ์ด ์๊ณก๋์์ต๋๋ค. ์์ ์ ์ฌ๋ด: ๋ชจ๋ ๊ธฐ์ ์๋ ๊ณ ์ ํ ์๋์ ๊ท๋ชจ๊ฐ ์์ต๋๋ค. 2000๋
์ ๋ชจ๋ ๋ณด๊ณ ๋ฅผ Excel์์๋ง ์ํํ๋ค๋ ๊ฒ์ ๋ฉ์ง ์ผ์
๋๋ค. 2021๋
์๋ ๊ฐ์ ์ผ์ ํ๋ ๊ฒ์ ๋ณ๋ก ์ข์ง ์์ต๋๋ค. ์์ HTML๋ก ๋ ํ์ฌ ์น์ฌ์ดํธ๋ 1999๋
์๋ ๋ฉ์ก์ง๋ง 2021๋
์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๊ฐ ์ฐฝ๋ฆฝ ๋น์(2005๋
) ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋งค์ฐ ํ๋ฅญํ์ต๋๋ค. Java๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ถ๋ถ(์์ Java ์๋ธ๋ฆฟ ํ์ด์ง๋ผ๊ณ ํจ)์ ๋ชจ๋ ๋ด๋นํ์ต๋๋ค. ๋ํ ์์ฒด UI๊ฐ ์๋ ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํ์ผ์ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋ถํธํ์ง ์ดํดํ๋ ค๋ฉด Intellij ์์ด๋์ด๋ก Java ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ๋ค์, ์์ํด ๋ณด์ญ์์ค. ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ๋ก๊ทธ๋จ ์ปค๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ๋๋ฅผ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ํ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค. ํํธ #1: ํ
์คํธ๋ฒค์น์ ์ฝ๋๋ฅผ ์ ์ถํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค. ๊ณ ๊ฐ์ ์ฐ๊ตฌํ๊ธฐ ์ํด ์์ ๋ง์ ์ ๊ฒฝ๋ง์ ๋ง๋์ญ์์ค(์ง์์ ๋ฐ์ดํฐ ๊ณผํ์ ์์ด). ์ ์
์ง์์๊ฒ๋ ์ผ์ฃผ์ผ ์์ Python์ ๋ฐฐ์ฐ๋๋ก ์ ์๋์์ต๋๋ค. ๋ฌด๊ธ ํด๊ฐ๊ฐ ํ์ค์ด ๋์์ต๋๋ค. ๊ทธ๋ง๋๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ด์์ต๋๋ค. ์ ์ผ๋ณ ๋์ ์ด๋์ ์ผ์๋ฆฌ๋ฅผ ์ป์ ์ ์์ต๋๊น? ํ์ง๋ง ๋ถ๊ธฐ๋ณ ๋ณด๋์ค๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ๋ฐํ๋ ์ง 2๊ฐ์ ๋ง์ ์ธ๋ด์ฌ์ด ๋ฐ๋ฅ๋ฌ์ต๋๋ค. ๋์์ค๋ ๊ธ์ฌ๋ฅผ ํฉ์ํ ๋ ์ฑ์ฉ ๋น์ hr์ด ๊ธ์ฌ๋ฅผ ๊ธ์ฌ(60%)์ ๋ถ๊ธฐ๋ณ ์์ฌ๊ธ(40%)์ผ๋ก ๋๋ ์ ํญ์ ์ง๊ธํ๋ค๊ณ ํ๋ค๋ ๊ฒ๋๋ค. ์๋ชป๋ ์ ํ์ ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํด์ก๊ณ ์ฐ๋ฆฌ๋ ์๋ก์ด ์ผ์๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์์ํด์ผ ํ์ต๋๋ค. <h3>6์ฅ. Java ๋ง์คํฐํ๊ธฐ</h3>5์์ ์ด๋ ํ์ฐฝํ ๋ , ๋๋ ๊ณต์์ธ "๊ฐ๋ฐ์"์ ์ธํฐ๋ทฐ ์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ๋ณดํ์
์ ์ข
์ฌํ๋ ํ์ฌ์๋ ๋ณดํ์ํ์ ๊ฐ๋ฐํ ์ฌ๋์ด ํ์ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ํ์ํ์ง๋ง ์ด๋ ํ์ฌ์ "๋
ํนํ" ๊ฐ๋ฐ์ด๋ฏ๋ก ํน์ ์ธ์ด๊ฐ ํ์ํ์ง ์์ต๋๋ค. Git ๋ฑ๋ ํ์ํฉ๋๋ค. ์ดํ ๋ง์ ์ธํฐ๋ทฐ ์ผ์ ์ ์ก๊ณ , ์์ ์๊ฐ์ Git์ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํ์ต๋๋ค. ์ธํฐ๋ทฐ ๋์ค Python, JS, Git, SQL์ ๋ํ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. โ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉโ ๊ฐ๋
๋นผ๊ณ ๋ค ๋ต๋ณํ๊ณ , 2์ฃผ ๋ง์ ์์
์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ์๊ณ ๋ณด๋ ํ์ฌ๋ ์ค๋ ์ ์ ์์คํ
์ ๊ตฌ์
ํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ชฐ๋ผ๋(๋ณด๋ค ์ ํํ๊ฒ๋ ๋ด์ฅ๋ Jelly ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ) ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ Java(์๋ฉด ๋ฐ ๋ท๋ฉด)๋ก ์์ฑ๋์์ต๋๋ค. ์ข๊ฒ ๋ค๋ฆฌ์ง๋ง ์ฌ์ค ๋ชจ๋ ๊ฒ์ด ์๊ณก๋์์ต๋๋ค. ์์ ์ ์ฌ๋ด: ๋ชจ๋ ๊ธฐ์ ์๋ ๊ณ ์ ํ ์๋์ ๊ท๋ชจ๊ฐ ์์ต๋๋ค. 2000๋
์ ๋ชจ๋ ๋ณด๊ณ ๋ฅผ Excel์์๋ง ์ํํ๋ค๋ ๊ฒ์ ๋ฉ์ง ์ผ์
๋๋ค. 2021๋
์๋ ๊ฐ์ ์ผ์ ํ๋ ๊ฒ์ ๋ณ๋ก ์ข์ง ์์ต๋๋ค. ์์ HTML๋ก ๋ ํ์ฌ ์น์ฌ์ดํธ๋ 1999๋
์๋ ๋ฉ์ก์ง๋ง 2021๋
์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๊ฐ ์ฐฝ๋ฆฝ ๋น์(2005๋
) ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋งค์ฐ ํ๋ฅญํ์ต๋๋ค. Java๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ถ๋ถ(์์ Java ์๋ธ๋ฆฟ ํ์ด์ง๋ผ๊ณ ํจ)์ ๋ชจ๋ ๋ด๋นํ์ต๋๋ค. ๋ํ ์์ฒด UI๊ฐ ์๋ ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํ์ผ์ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋ถํธํ์ง ์ดํดํ๋ ค๋ฉด Intellij ์์ด๋์ด๋ก Java ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ๋ค์, ์์ํด ๋ณด์ญ์์ค. ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ๋ก๊ทธ๋จ ์ปค๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ๋๋ฅผ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ํ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค. ํํธ #1: ํ
์คํธ๋ฒค์น์ ์ฝ๋๋ฅผ ์ ์ถํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค. ๊ณ ๊ฐ์ ์ฐ๊ตฌํ๊ธฐ ์ํด ์์ ๋ง์ ์ ๊ฒฝ๋ง์ ๋ง๋์ญ์์ค(์ง์์ ๋ฐ์ดํฐ ๊ณผํ์ ์์ด). ์ ์
์ง์์๊ฒ๋ ์ผ์ฃผ์ผ ์์ Python์ ๋ฐฐ์ฐ๋๋ก ์ ์๋์์ต๋๋ค. ๋ฌด๊ธ ํด๊ฐ๊ฐ ํ์ค์ด ๋์์ต๋๋ค. ๊ทธ๋ง๋๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ด์์ต๋๋ค. ์ ์ผ๋ณ ๋์ ์ด๋์ ์ผ์๋ฆฌ๋ฅผ ์ป์ ์ ์์ต๋๊น? ํ์ง๋ง ๋ถ๊ธฐ๋ณ ๋ณด๋์ค๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ๋ฐํ๋ ์ง 2๊ฐ์ ๋ง์ ์ธ๋ด์ฌ์ด ๋ฐ๋ฅ๋ฌ์ต๋๋ค. ๋์์ค๋ ๊ธ์ฌ๋ฅผ ํฉ์ํ ๋ ์ฑ์ฉ ๋น์ hr์ด ๊ธ์ฌ๋ฅผ ๊ธ์ฌ(60%)์ ๋ถ๊ธฐ๋ณ ์์ฌ๊ธ(40%)์ผ๋ก ๋๋ ์ ํญ์ ์ง๊ธํ๋ค๊ณ ํ๋ค๋ ๊ฒ๋๋ค. ์๋ชป๋ ์ ํ์ ํ๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํด์ก๊ณ ์ฐ๋ฆฌ๋ ์๋ก์ด ์ผ์๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์์ํด์ผ ํ์ต๋๋ค. <h3>6์ฅ. Java ๋ง์คํฐํ๊ธฐ</h3>5์์ ์ด๋ ํ์ฐฝํ ๋ , ๋๋ ๊ณต์์ธ "๊ฐ๋ฐ์"์ ์ธํฐ๋ทฐ ์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ๋ณดํ์
์ ์ข
์ฌํ๋ ํ์ฌ์๋ ๋ณดํ์ํ์ ๊ฐ๋ฐํ ์ฌ๋์ด ํ์ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ํ์ํ์ง๋ง ์ด๋ ํ์ฌ์ "๋
ํนํ" ๊ฐ๋ฐ์ด๋ฏ๋ก ํน์ ์ธ์ด๊ฐ ํ์ํ์ง ์์ต๋๋ค. Git ๋ฑ๋ ํ์ํฉ๋๋ค. ์ดํ ๋ง์ ์ธํฐ๋ทฐ ์ผ์ ์ ์ก๊ณ , ์์ ์๊ฐ์ Git์ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํ์ต๋๋ค. ์ธํฐ๋ทฐ ๋์ค Python, JS, Git, SQL์ ๋ํ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. โ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉโ ๊ฐ๋
๋นผ๊ณ ๋ค ๋ต๋ณํ๊ณ , 2์ฃผ ๋ง์ ์์
์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ์๊ณ ๋ณด๋ ํ์ฌ๋ ์ค๋ ์ ์ ์์คํ
์ ๊ตฌ์
ํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ชฐ๋ผ๋(๋ณด๋ค ์ ํํ๊ฒ๋ ๋ด์ฅ๋ Jelly ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ) ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ Java(์๋ฉด ๋ฐ ๋ท๋ฉด)๋ก ์์ฑ๋์์ต๋๋ค. ์ข๊ฒ ๋ค๋ฆฌ์ง๋ง ์ฌ์ค ๋ชจ๋ ๊ฒ์ด ์๊ณก๋์์ต๋๋ค. ์์ ์ ์ฌ๋ด: ๋ชจ๋ ๊ธฐ์ ์๋ ๊ณ ์ ํ ์๋์ ๊ท๋ชจ๊ฐ ์์ต๋๋ค. 2000๋
์ ๋ชจ๋ ๋ณด๊ณ ๋ฅผ Excel์์๋ง ์ํํ๋ค๋ ๊ฒ์ ๋ฉ์ง ์ผ์
๋๋ค. 2021๋
์๋ ๊ฐ์ ์ผ์ ํ๋ ๊ฒ์ ๋ณ๋ก ์ข์ง ์์ต๋๋ค. ์์ HTML๋ก ๋ ํ์ฌ ์น์ฌ์ดํธ๋ 1999๋
์๋ ๋ฉ์ก์ง๋ง 2021๋
์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๊ฐ ์ฐฝ๋ฆฝ ๋น์(2005๋
) ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋งค์ฐ ํ๋ฅญํ์ต๋๋ค. Java๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ถ๋ถ(์์ Java ์๋ธ๋ฆฟ ํ์ด์ง๋ผ๊ณ ํจ)์ ๋ชจ๋ ๋ด๋นํ์ต๋๋ค. ๋ํ ์์ฒด UI๊ฐ ์๋ ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํ์ผ์ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋ถํธํ์ง ์ดํดํ๋ ค๋ฉด Intellij ์์ด๋์ด๋ก Java ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ๋ค์, ์์ํด ๋ณด์ญ์์ค. ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ๋ก๊ทธ๋จ ์ปค๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ๋๋ฅผ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ํ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค. ํํธ #1: ํ
์คํธ๋ฒค์น์ ์ฝ๋๋ฅผ ์ ์ถํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค. <h3>6์ฅ. Java ๋ง์คํฐํ๊ธฐ</h3>5์์ ์ด๋ ํ์ฐฝํ ๋ , ๋๋ ๊ณต์์ธ "๊ฐ๋ฐ์"์ ์ธํฐ๋ทฐ ์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ๋ณดํ์
์ ์ข
์ฌํ๋ ํ์ฌ์๋ ๋ณดํ์ํ์ ๊ฐ๋ฐํ ์ฌ๋์ด ํ์ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ํ์ํ์ง๋ง ์ด๋ ํ์ฌ์ "๋
ํนํ" ๊ฐ๋ฐ์ด๋ฏ๋ก ํน์ ์ธ์ด๊ฐ ํ์ํ์ง ์์ต๋๋ค. Git ๋ฑ๋ ํ์ํฉ๋๋ค. ์ดํ ๋ง์ ์ธํฐ๋ทฐ ์ผ์ ์ ์ก๊ณ , ์์ ์๊ฐ์ Git์ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํ์ต๋๋ค. ์ธํฐ๋ทฐ ๋์ค Python, JS, Git, SQL์ ๋ํ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. โ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉโ ๊ฐ๋
๋นผ๊ณ ๋ค ๋ต๋ณํ๊ณ , 2์ฃผ ๋ง์ ์์
์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ์๊ณ ๋ณด๋ ํ์ฌ๋ ์ค๋ ์ ์ ์์คํ
์ ๊ตฌ์
ํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ชฐ๋ผ๋(๋ณด๋ค ์ ํํ๊ฒ๋ ๋ด์ฅ๋ Jelly ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ) ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ Java(์๋ฉด ๋ฐ ๋ท๋ฉด)๋ก ์์ฑ๋์์ต๋๋ค. ์ข๊ฒ ๋ค๋ฆฌ์ง๋ง ์ฌ์ค ๋ชจ๋ ๊ฒ์ด ์๊ณก๋์์ต๋๋ค. ์์ ์ ์ฌ๋ด: ๋ชจ๋ ๊ธฐ์ ์๋ ๊ณ ์ ํ ์๋์ ๊ท๋ชจ๊ฐ ์์ต๋๋ค. 2000๋
์ ๋ชจ๋ ๋ณด๊ณ ๋ฅผ Excel์์๋ง ์ํํ๋ค๋ ๊ฒ์ ๋ฉ์ง ์ผ์
๋๋ค. 2021๋
์๋ ๊ฐ์ ์ผ์ ํ๋ ๊ฒ์ ๋ณ๋ก ์ข์ง ์์ต๋๋ค. ์์ HTML๋ก ๋ ํ์ฌ ์น์ฌ์ดํธ๋ 1999๋
์๋ ๋ฉ์ก์ง๋ง 2021๋
์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๊ฐ ์ฐฝ๋ฆฝ ๋น์(2005๋
) ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋งค์ฐ ํ๋ฅญํ์ต๋๋ค. Java๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ถ๋ถ(์์ Java ์๋ธ๋ฆฟ ํ์ด์ง๋ผ๊ณ ํจ)์ ๋ชจ๋ ๋ด๋นํ์ต๋๋ค. ๋ํ ์์ฒด UI๊ฐ ์๋ ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํ์ผ์ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋ถํธํ์ง ์ดํดํ๋ ค๋ฉด Intellij ์์ด๋์ด๋ก Java ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ๋ค์, ์์ํด ๋ณด์ญ์์ค. ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ๋ก๊ทธ๋จ ์ปค๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ๋๋ฅผ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ํ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค. ํํธ #1: ํ
์คํธ๋ฒค์น์ ์ฝ๋๋ฅผ ์ ์ถํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค. <h3>6์ฅ. Java ๋ง์คํฐํ๊ธฐ</h3>5์์ ์ด๋ ํ์ฐฝํ ๋ , ๋๋ ๊ณต์์ธ "๊ฐ๋ฐ์"์ ์ธํฐ๋ทฐ ์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ๋ณดํ์
์ ์ข
์ฌํ๋ ํ์ฌ์๋ ๋ณดํ์ํ์ ๊ฐ๋ฐํ ์ฌ๋์ด ํ์ํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ํ์ํ์ง๋ง ์ด๋ ํ์ฌ์ "๋
ํนํ" ๊ฐ๋ฐ์ด๋ฏ๋ก ํน์ ์ธ์ด๊ฐ ํ์ํ์ง ์์ต๋๋ค. Git ๋ฑ๋ ํ์ํฉ๋๋ค. ์ดํ ๋ง์ ์ธํฐ๋ทฐ ์ผ์ ์ ์ก๊ณ , ์์ ์๊ฐ์ Git์ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํ์ต๋๋ค. ์ธํฐ๋ทฐ ๋์ค Python, JS, Git, SQL์ ๋ํ ์ง๋ฌธ์ ๋ฐ์์ต๋๋ค. โ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉโ ๊ฐ๋
๋นผ๊ณ ๋ค ๋ต๋ณํ๊ณ , 2์ฃผ ๋ง์ ์์
์ด๋๋ฅผ ๋ฐ์์ต๋๋ค. ์๊ณ ๋ณด๋ ํ์ฌ๋ ์ค๋ ์ ์ ์์คํ
์ ๊ตฌ์
ํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ชฐ๋ผ๋(๋ณด๋ค ์ ํํ๊ฒ๋ ๋ด์ฅ๋ Jelly ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ) ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ Java(์๋ฉด ๋ฐ ๋ท๋ฉด)๋ก ์์ฑ๋์์ต๋๋ค. ์ข๊ฒ ๋ค๋ฆฌ์ง๋ง ์ฌ์ค ๋ชจ๋ ๊ฒ์ด ์๊ณก๋์์ต๋๋ค. ์์ ์ ์ฌ๋ด: ๋ชจ๋ ๊ธฐ์ ์๋ ๊ณ ์ ํ ์๋์ ๊ท๋ชจ๊ฐ ์์ต๋๋ค. 2000๋
์ ๋ชจ๋ ๋ณด๊ณ ๋ฅผ Excel์์๋ง ์ํํ๋ค๋ ๊ฒ์ ๋ฉ์ง ์ผ์
๋๋ค. 2021๋
์๋ ๊ฐ์ ์ผ์ ํ๋ ๊ฒ์ ๋ณ๋ก ์ข์ง ์์ต๋๋ค. ์์ HTML๋ก ๋ ํ์ฌ ์น์ฌ์ดํธ๋ 1999๋
์๋ ๋ฉ์ก์ง๋ง 2021๋
์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๊ฐ ์ฐฝ๋ฆฝ ๋น์(2005๋
) ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋งค์ฐ ํ๋ฅญํ์ต๋๋ค. Java๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ถ๋ถ(์์ Java ์๋ธ๋ฆฟ ํ์ด์ง๋ผ๊ณ ํจ)์ ๋ชจ๋ ๋ด๋นํ์ต๋๋ค. ๋ํ ์์ฒด UI๊ฐ ์๋ ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํ์ผ์ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋ถํธํ์ง ์ดํดํ๋ ค๋ฉด Intellij ์์ด๋์ด๋ก Java ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ๋ค์, ์์ํด ๋ณด์ญ์์ค. ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ๋ก๊ทธ๋จ ์ปค๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ๋๋ฅผ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ํ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค. ํํธ #1: ํ
์คํธ๋ฒค์น์ ์ฝ๋๋ฅผ ์ ์ถํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค. ์์ HTML๋ก ๋ ํ์ฌ ์น์ฌ์ดํธ๋ 1999๋
์๋ ๋ฉ์ก์ง๋ง 2021๋
์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๊ฐ ์ฐฝ๋ฆฝ ๋น์(2005๋
) ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋งค์ฐ ํ๋ฅญํ์ต๋๋ค. Java๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ถ๋ถ(์์ Java ์๋ธ๋ฆฟ ํ์ด์ง๋ผ๊ณ ํจ)์ ๋ชจ๋ ๋ด๋นํ์ต๋๋ค. ๋ํ ์์ฒด UI๊ฐ ์๋ ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํ์ผ์ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋ถํธํ์ง ์ดํดํ๋ ค๋ฉด Intellij ์์ด๋์ด๋ก Java ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ๋ค์, ์์ํด ๋ณด์ญ์์ค. ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ๋ก๊ทธ๋จ ์ปค๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ๋๋ฅผ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ํ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค. ํํธ #1: ํ
์คํธ๋ฒค์น์ ์ฝ๋๋ฅผ ์ ์ถํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค. ์์ HTML๋ก ๋ ํ์ฌ ์น์ฌ์ดํธ๋ 1999๋
์๋ ๋ฉ์ก์ง๋ง 2021๋
์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๊ฐ ์ฐฝ๋ฆฝ ๋น์(2005๋
) ์ฌ์ฉํ๋ ๊ธฐ์ ์ ๋งค์ฐ ํ๋ฅญํ์ต๋๋ค. Java๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ถ๋ถ(์์ Java ์๋ธ๋ฆฟ ํ์ด์ง๋ผ๊ณ ํจ)์ ๋ชจ๋ ๋ด๋นํ์ต๋๋ค. ๋ํ ์์ฒด UI๊ฐ ์๋ ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด ํ์ผ์ ์ฝ๋๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ผ๋ง๋ ๋ถํธํ์ง ์ดํดํ๋ ค๋ฉด Intellij ์์ด๋์ด๋ก Java ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ ๋ค์, ์์ํด ๋ณด์ญ์์ค. ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ๋ฉด ํ๋ก๊ทธ๋จ ์ปค๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๋ํ์ฌ ๊ฑฐ๊ธฐ์์ ์ฝ๋๋ฅผ ์ฝ์ต๋๋ค. ๋ฐ๋ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ํ ๋๋ฒ๊น
ํ ์ ์์ต๋๋ค. ํํธ #1: ํ
์คํธ๋ฒค์น์ ์ฝ๋๋ฅผ ์ ์ถํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค.SQL ัะบัะธะฟั, ์ฌ๊ธฐ์๋ ์ฝ๋๊ฐ ํฌํจ๋ฉ๋๋ค. ๋ถ์พํ์ง๋ง ๊ฒฌ๋ ์ ์์ต๋๊น? Zest #2: ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ 200๊ฐ ์ด์์ ํ
์ด๋ธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ฆ, ์ฝ๋๋ฅผ ๋ฃ์ ํ
์ด๋ธ๊ณผ ๋ค๋ฅธ ํ
์ด๋ธ์ ์ด๋ค ์ํฐํฐ๋ฅผ ๋ง๋ค์ด์ผ ํ๋์ง ์์์ผ ํฉ๋๋ค. ์ถ๋ ฅ์ ๊ธธ์ด๊ฐ ~ 1000์ค์ธ SQL ์คํฌ๋ฆฝํธ์
๋๋ค. ์ด๊ฒ์ ์ ๋ง ์ญ๊ฒจ์ด ์ผ์
๋๋ค. ์ ์ฐ์ ์กฐ์ฌํ์ธ์. ๊ฐ๋จํ ๋งํด์ ๋ชจ๋ ๊ฒ์ด Java๋ก ์์ฑ๋์ด ์๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ณ JavaRush๋ก ์ด๋ํ์ต๋๋ค(๋ง์นจ๋ด ์ฌ์ดํธ์ ํ
๋ง์ ๋๋ฌํ์ต๋๋ค!). 2020๋
6์~7์. ์ฒ์ 10๊ฐ ๋ ๋ฒจ์ ๊ทผ๋ณธ์ ์ผ๋ก ์๋ก์ด ๊ฒ์ด ์์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ(์๋ง ํ ๋ฌ ์ ๋) ๋ซํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์๋๊ฐ ๋๋ ค์ก์ต๋๋ค. 2020๋
7์~10์. ๋ ๋ฒจ 10~20์ ํ์๋ฉ๋๋ค. 2021๋
10์~3์. ๋ ๋ฒจ 20~30์ ํ์๋ฉ๋๋ค. ์ด์ ์ฌ๋ฏธ๊ฐ ์์๋ฉ๋๋ค. 2021๋
3์์ Java ๊ณต์์ ์ดํด๋ณด๊ธฐ ์์ํ๋๋ฐ ๊ฑฐ๊ธฐ์ ์ต์ํ์ง ์์ ๋จ์ด๊ฐ ๋ง์ด ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์ผ์ข
์ Spring, SpringBoot, Hibernate, JUnit. ์ ์๋ ค์ง ์น์ฌ์ดํธ์์ ๋น๋์ค ๊ฐ์ข๋ฅผ ๊ตฌ์
ํ ํ ๋ฐฉ๊ธ Spring์ ๋ง์ ธ๋ณด๊ณ ์ด์ ๋ชจ๋ ๊ฒ์ ์๊ณ ์๊ณ ํ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ ํ Grigory Kislin์ TopJava ๊ณผ์ ์ ์ ํ๊ฒ ๋์์ต๋๋ค. ๊ทธ์ ์น์ฌ์ดํธ์์ ํ
์คํธ ์์
์ ์๋ฃํด ๋ณผ ์ ์์ผ๋ฉฐ, ์ฑ๊ณตํ๋ฉด ๊ฐ์ข๋ฅผ ์๊ฐํ ์ ์์ต๋๋ค. ์ด ๊ณผ์ ์์๋ ์์ ํ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค๊ณ ์ธํฐ๋ท์ ๊ฒ์ํ ์๋ ์์ต๋๋ค. ์ด ๋์ ์ํด ๊ทธ๋ค์ ๋น์ ์๊ฒ ๋ฆฌ๋ทฐ(๋ ์๋ จ๋ ํ๋ก๊ทธ๋๋จธ์ ์ฝ๋ ๊ฒํ )๋ฅผ ์ ๊ณตํ๊ณ , ํผ๋๋ฐฑ์ ์ ๊ณตํ๊ณ , ๋ฌธ์ ๊ฐ ์์ ๊ฒฝ์ฐ ํ์ ์ ๊ณตํ ๊ฒ์
๋๋ค. ๋๋ ์์ 3์ ํ๊ณ ๊ทธ๋ง๋๋ค. ๊ทธ ์ด์ ๋ ๊ฐ๋จํฉ๋๋ค. ๊ทธ๋ค์ ๋น์ ์๊ฒ ๋ง์ ๊ฒ์ ์๊ตฌํ์ง๋ง, ๋น์ ์๊ฒ ์ด๋ค ์ง์๋ ์ฃผ์ง ์์ต๋๋ค. ์์ ์๊ตฌ์ฌํญ์ ๋งค์ฐ ํผ๋์ค๋ฝ์ต๋๋ค. ์ ๋ณด๊ฐ ๋งค์ฐ ์ผ๊ด๋์ง ์๊ฒ ํ์๋ฉ๋๋ค. ๋ด ์ฃผ๊ด์ ์ธ ์๊ฒฌ์ผ๋ก๋ ์ด ๊ณผ์ ์ ๋ค๋ฅธ ์ ์ฌํ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝํ์ด ํ๋ถํ ๊ฐ๋ฐ์์๊ฒ ํ์ํฉ๋๋ค. ๊ทธ์ ๊ณผ์ ์๋ ๊ทธ๊ฐ ์ฌ์ฉํ๋๋ก ์์ฒญํ๋ ๊ธฐ์ ์ ๋ํ ์ค๋ช
์ด ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ํ Git์ ์ ์์์ผ ํฉ๋๋ค(๋ชจ๋ ๊ฒ์ด ๊ฐ์ธ ์ ์ฅ์๋ก ์ ์ก๋ฉ๋๋ค). 2021๋
4์ ๋ง์ ์ ๋ Java ๊ฐ๋ฐ์๋ฅผ ์ํ ์ด๋ ฅ์(์ํ๋ ๊ธ์ฌ๋ ์ค๊ฐ ์ด์ ์์ค)๋ฅผ ๊ฒ์ํ ์์ ์
๋๋ค. ์ฌ๊ธฐ์๋ ์ ๊ฐ ๋ง์ง๋ง ์ง์ฅ์์ Java๋ก ํ๋ก๊ทธ๋๋ฐํ์์ ๋ํ๋
๋๋ค(๊ฑฐ์ง๋งํ์ต๋๋ค). ๊ฐ์ ๋ ์ํ์ Java ๊ฐ๋ฐ์ ์๋ฆฌ์ ๋ํ ์ง์์๋ฅผ ๋ฐ์์ต๋๋ค. <h3>7์ฅ. ์๋ฐ ์ธํฐ๋ทฐ์ ์คํฌ ์ฐ๋ง</h3>๊ทธ๋ผ ์ด๋ค ๊ณํ์ด์๋? ๋๋ ์ด๋ฏธ ์๋นํ ์์
+ ๋์ถ๋ก ์ํํ๋ ๋ฐ ์ต์ํ๊ธฐ ๋๋ฌธ์ ์ข์ ๊ธ์ฌ๋ฅผ ๋ฐ์์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ๋ฐฐ ์๋ฆฌ๋ ๋์๊ฒ ์ ํฉํ์ง ์์ต๋๋ค. ์ค๊ฐ ์์น๋ฅผ ํ๋ณดํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ฒฝํ์ด ์์ผ๋ฉด ๋๊ฐ ๋๋ฅผ ๊ณ ์ฉํ๊ฒ ์ต๋๊น? ์์ฐ์ค๋ฝ๊ฒ ๊ฒฐ์ ์ด ๋ด๋ ค์ก์ต๋๋ค. ์ ์ฑ์ฉ ๊ธฐ๋ก์ ๋ฐ๋ฅด๋ฉด ์ ๋ ์ด์ ์ง์์์ 1๋
๋์ ๊ฐ๋ฐ์๋ก ๊ทผ๋ฌดํ๊ณ , ๊ทธ ํ 4๋
๋์ IT ๋ถ์์ ์ ๋ฌธ๊ฐ๋ก ๊ทผ๋ฌดํ์ต๋๋ค. ๊ทธ๋์ ์ ๋ 1๋
๋์ Java๋ก ๊ฐ๋ฐ์ ํด์๋ค๊ณ ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ์ ํ์ ๋ํด ๋ฌป๋๋ค๋ฉด ๊ธฐ์กด Java(7)๊ฐ ์์๊ณ ์๋ฌด๊ฒ๋ ์ง์ํ์ง ์์๋ค๊ณ ๋งํ ๊ฒ์
๋๋ค. ์ฒซ (์๊ฒฉ) ์ธํฐ๋ทฐ๋ฅผ ์๋๊ณ ๊ธด์ฅ์ด ๋๋ค. ์ ๋ ๊ฒฝํ๋ ์๊ณ ์ง์๋ ๊ฑฐ์ ์๊ณ ๋ง์ ๋์ ์๊ตฌํ๊ณ ์์ต๋๋ค. ์ ์๊ฐ์๋ ์๊ดํ์ง ๋ง์ธ์. ๋ถ์ ์ ์ธ ๊ฒฝํ๋ ๊ฒฝํ์
๋๋ค. ์ ๋ ์ค์นด์ดํ(Skype)๋ก ์ฐ๋ฝํ๊ณ ๋ถ์์ฅ ๋ ๋ถ๊ณผ ์ธํฐ๋ทฐ๋ฅผ ํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋์ ๋์ฑ ๊ฒ์ด ๋ฌ์ต๋๋ค. ์ง๋ฌธ์ด ์์๋์์ต๋๋ค: OOP, HashMap ์ฅ์น, ์คํธ๋ฆผ, ๋ฐ์ดํฐ ๊ตฌ์กฐ, Spring, Hibernate, AOP๋ ๋ฌด์์
๋๊น? ๊ทธ๋ฆฌ๊ณ Sping ์ด์ ์๋ ์ด๋ ์ ๋ ๊ฒฌ๋ ์ ์์๋ค๋ฉด Spring์์๋ ์์ ํ ๋ฌด๋์ก์ต๋๋ค. ์ฌ๋๋ค์ ์ ์๊ฒ ๋ฌป์ต๋๋ค. ์ค์ ๋ก ์์ง๋ ๋ชปํ๋ฉด์ Spring์์ ์ด๋ป๊ฒ ๊ฐ๋ฐํ์ต๋๊น? ๋: ๋ณต์ฌํด์ ๋ถ์ฌ๋ฃ์๋๋ ์ ๋๋๋ผ๊ตฌ์. ๊ฐ์ฌํฉ๋๋ค. ์ด ๋๋ต์ ๊ทธ๋ค์ ์ฆ๊ฒ๊ฒ ํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ทธ๋ค์ SQL์ ๋ํด ๋ฌผ์์ต๋๋ค. ๋๋ ๋ฌผ์ ๋น ์ง ์ค๋ฆฌ ๊ฐ์์ต๋๋ค. ๋ค์์ Git๊ณผ Rebase, Cherry-Pick(๋๋ ๋ชฐ๋๋ ๋ด์ฉ)์ ๋ํ ์ง๋ฌธ์ด์๊ณ JS์ ๋ํ ๋ด์ฉ์ด ์ด๋ ฅ์์ ๋์ ์์๊ธฐ ๋๋ฌธ์ ๋ง๋ฌด๋ฆฌํ์ต๋๋ค. ๊ฑฐ๊ธฐ์์๋ OOP JS์ ๋ํด ๋ฌผ์๊ธฐ ๋๋ฌธ์ ์์ ํ ์คํจํ์ต๋๋ค. ์ธํฐ๋ทฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅด๋ฉด ๋ด ์ง์์ด ์์ ํ์ง ์์ ์ด ๊ณต์์ ์ฐธ์ฌํ ์๊ฒฉ์ด ์๋ค๋ ๊ฒ์ด ๋ถ๋ช
ํด์ก์ต๋๋ค. ์ ๋
์ HR์์๋ ๋ด ํ๋ณด๊ฐ ์น์ธ๋์์ผ๋ฉฐ ๋์๊ฒ ์ ํํ ์ค๋น๊ฐ ๋์๋ค๊ณ ์ผ์ต๋๋ค. ์ฌ์ค ๋งฅ๋๋ ๋์์ ํ๋ฒ๊ฑฐ๋ฅผ ๋จน๋ค ๋ชฉ์ด ๋งํ์ด์. ๊ธฐ๋ปค์ง๋ง 3์ผ ํ HR์์ ๋ค๋ฅธ ํ๋ณด์๋ฅผ ์ ํํ๋ค๊ณ ๋ณด๊ณ ํ์ต๋๋ค. ๋ด ๊ฒฝํ์ ์ฒ์์ผ๋ก ์ ์์ด ์ฒ ํ๋์์ต๋๋ค. Java๋ก ์ฒซ ๋ฒ์งธ ์ธํฐ๋ทฐ๋ฅผ ๋ง์น ํ ์ ๋ ์ค๋ ฅ์ ๋์ฑ ํฅ์์์ผฐ์ต๋๋ค. ๋น๋์ค ์ฝ์ค ํ๋งค๋ก ์ ๋ช
ํ ์ฌ์ดํธ์์ Colt Steele์ Git ์ฝ์ค๋ฅผ ์๊ฐํ์ต๋๋ค(์์ ํ ์๋ฃํ์ต๋๋ค!). ์ด๋ก ์ธํด Git์ ๋ํ ๋์ ์ธ์์ด ๋ฐ๋์์ต๋๋ค. ๋ค์์ผ๋ก ์ ๋ Zaur Tregulov์ Spring+Hibernate์ ๊ดํ (ํ๋ฅญํ) ๊ฐ์ข๋ฅผ ์๊ฐํ์ต๋๋ค. ํ๋ จ ๋ฐฉ๋ฒ: ์์์ฒ๋ผ ๋ณด๊ณ , ์ปดํจํฐ์์๋ ๋๊ฐ์ด ํ๋๋ฐ, ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ์ด๋ฆฌ์๊ฒ ๋ณต์ฌํ์ง ์๋๋ก ๋ณ์์ ํด๋์ค์ ์ด๋ฆ์ ๋ค๋ฅด๊ฒ ์ง์ ํฉ๋๋ค. ๋๋ ๋ชจ๋ ์์
์ Github์ ์
๋ก๋ํฉ๋๋ค(๋ฐ๋ผ์ Git์ ์ฐ์ตํฉ๋๋ค). 5์ ์ค์์ด ๋์ hr๋ก๋ถํฐ ์ ํ๊ฐ ์ค๊ธฐ ์์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ๋์ฉ ์ธํฐ๋ทฐ ์ผ์ ์ ์ก๊ธฐ ์์ํ์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ๋ง์ ์ด๋๊ฐ ์ทจ์๋์ด์ผ ํ์ต๋๋ค. HR์์๋ ๋ด ์ด๋ ฅ์์ ๋ํ ์ค๋ช
์ ์ฝ์ง ์์๊ณ ๋๋ฅผ ๊ณ ์์ง์ ์ด๋ํ์ต๋๋ค. ๋ํ ๋ณ๋์ HR โโ๊ณ์ธต, ์ฆ Java์ JavaScript๋ฅผ ํผ๋ํ๋ ์ฌ๋๋ค์ ์ธ๊ธํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๊ทธ๋์ ์ด๋ ฅ์ ์ ๋ชฉ์ Middle Java ๊ฐ๋ฐ์๋ผ๊ณ ์ ์์ต๋๋ค. <h3>Chapter 8. ๋ํ์ ์ธ ์ง๋ฌธ ๋ชฉ๋ก๊ณผ ๋ฉด์ ์งํ ๋ฐฉ์</h3>๋ฉด์ ์ ์์ํ๋ฉด์ ์ ์ฐจ ์ค๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ์ง๋ฌธ ํ์ด ํ์ฑ๋์์ต๋๋ค. ํ์: 0. OOP - ์ ์, OOP์ ๊ฐ ์์น์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค(+์ค์ ์ฌ๋ก ์ ๊ณต). 1. ๊ฐ์๊ณผ ํด์์ฝ๋ - ๋ ์ฌ์ด์ ๊ณ์ฝ(๊ด๊ณ)์ ๋ฌด์์
๋๊น? 2. HashMap - ๊ฐ์ฒด๊ฐ ์ด๋ค ๋ฒํท์ ๋ค์ด๊ฐ์ง, ์ถฉ๋์ด ๋ฌด์์ธ์ง, HashMap ๋ด๋ถ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ค ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ ์ฅ๋์ด ์๋์ง, ํ์ค ํฌ๊ธฐ, ๋ฒํท ์๊ฐ ์ด๋ป๊ฒ ์ฆ๊ฐํ๋์ง ์ดํดํ๋ ๋ฐฉ๋ฒ. 3. ์คํธ๋ฆผ - ์์
์ ํ, ์ฐจ์ด์ ์ ๋ฌด์์ด๋ฉฐ ๊ฐ ์์
์ ํ์ ์๋ฅผ ์ ๊ณตํฉ๋๋ค. 4. ๋ฌธ์์ด ํ, ์ ์ ํ - ๊ทธ๊ฒ ๋ญ์ฃ ? 5. ํ, ์คํ - ๊ทธ๊ฒ ๋ญ๊ณ , ์ฐจ์ด์ ์ด ๋ญ๊ฐ์? 6. Runnable, Thread, Future์ ์ฐจ์ด์ . 7. ํ๋ฐ์ฑ, ์์์ฑ. 8. Solid, Kiss, Dry - ์ค์ ์ํ์ ์ ์, ์. 9. Java์ ์ก์ธ์ค ์์ ์. 10. ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค์ ์ฐจ์ด์ ์ ๋ฌด์์
๋๊น? ์ธํฐํ์ด์ค๋ฅผ ๋น๊ณต๊ฐ๋ก ์ค์ ํ ์ ์๋์? 11. ๊ธฐ๋ฅ์ ์ธํฐํ์ด์ค. 12. ๋ชจ๋ Object ๋ฉ์๋๋ฅผ ๋์ดํ๊ณ ํด๋น ๋ฉ์๋๊ฐ ํ์ํ ์ด์ ๋ฅผ ์ค๋ช
ํ์ญ์์ค. ํด๋ก ๋ฐฉ์์ ํน์ง. 13. ์ง๋ ฌํ์ ์ญ์ง๋ ฌํ๋ ๋ฌด์์
๋๊น? 14. ์์์ ํฌ์ฐฉํด ๋ณด์ญ์์ค - ์์์ด ๋ฌด์์ธ์ง ์ค๋ช
ํ๊ณ Closeable ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ค์ฃผ์ญ์์ค. 15. Final, finally, finalize์ ์ฐจ์ด์ ์ ๋ฌด์์ธ๊ฐ์? 16. ๊ณผ๋ถํ, ๋ฉ์๋ ์ฌ์ ์๊ฐ ์ฐจ์ด์ ์
๋๋ค. 17. String์ ๋ถ๋ณ์ผ๋ก ๋ง๋ ์ด์ ๋ StringBuilder์ StringBuffer์ ๋ํด ์ค๋ช
ํด์ฃผ์ธ์. 18. ์๊ฐ ๋ณต์ก๋ O(1), ์ฆ ๋ฉ๋ชจ๋ฆฌ ๋ณต์ก๋๋ ๋ฌด์์
๋๊น? 19. ๋ฐ์ดํฐ ๊ตฌ์กฐ: ๋งต, ์ธํธ, โโํ, ๋ฐํฌ, ๋ชฉ๋ก ๋ฐ Java์์์ ๊ตฌํ(treeMap, hashSet, hashMap, arrayList, linkedList, PriorityQueue, BlockingQueue)์ ๋ํด ์ค๋ช
ํ๊ณ ์ฝ์
์ ๋ณต์ก์ฑ(์ต์
, ํ๊ท , ์ต๊ณ )์ ์ค๋ช
ํฉ๋๋ค. ๊ฒ์ํ์ฌ ๊ฐ ๊ตฌ์กฐ์ ์์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. 20. Java์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ํ. ์ ๊ฐ๊ฐ์ด ํ์ํฉ๋๊น? 21. ์ค๋ฅ ์ ํ. ํ์ธ๋ ์์ธ์ ํ์ธ๋์ง ์์ ์์ธ. 22. JVM, JRE, JDK๋ ๋ฌด์์
๋๊น? 23. ์ด๋ค ์ปฌ๋ ํฐ๋ค๊ณผ ํจ๊ป ์์
ํ๋์? Maven - ๋ผ์ดํ์ฌ์ดํด์ ๋น๋ํฉ๋๋ค. 24. Spring - Ioc ์ ์, Di, Bean ๋ผ์ดํ์ฌ์ดํด, ์ปจํ
์คํธ, @Bean ์ฃผ์, @Configuration, @Autowired, @Advice, @Aspect, @Service, @Repository. 25. ์ ๋ค๋ฆญ - ํํ๊ณผ ์ํ์ด ๋ฌด์์ธ์ง ์ ์ํฉ๋๊น? 26. ํ๋ก๊ทธ๋๋ฐ ํจํด - ์ต์ํ ์ฑ๊ธํค(์ด๊ฒ์ด ๋๋๋ก ์ํฐ ํจํด์ธ ์ด์ ๋ฅผ ์๋ ค์ฃผ๋ ค๋ ์์ง) + Builder, Adapter, Factory, Decorator, Proxt. ๋ฐ๋์งํจ: 26. ํ
์คํธ - ๋ผ์ด๋ธ๋ฌ๋ฆฌ(JUnit)๊ฐ ์ฌ์ฉ๋ ํ
์คํธ ์ ํ์
๋๋ค. ๋ชจ์, ์ฐ๋ฅด๊ธฐ, ์คํ์ด๋ ๋ฌด์์
๋๊น? 27. ์คํ๋ง ๋ถํธ - SpringBoot ์ ํ๋ฆฌ์ผ์ด์
์ ์จ๋ผ์ธ์ผ๋ก ๋ง๋ค๊ธฐ ์ํ ์ค๋น๊ฐ ์ ํ์ํ๊ฐ์? 28. ์ต๋ ์ ์ ๋ชจ๋ - ํ์ํ ์ด์ , ์ํฐํฐ, ์กฐ์ธ ์ด, ๊ฒ์ผ๋ฅธ ๋ก๋ฉ ๋ ์ฆ์ ๋ก๋ฉ, ์บ์ฑ ์์ค(ํ๋). 29. ์คํ๋ง ํด์ - ์ ํ์ํ์ง, @post, @get ์๋ํฌ์ธํธ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ. ๋งค๊ฐ๋ณ์/์์ฒญ ๋ณธ๋ฌธ์ ์ฝ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น? JSON ํ์์ผ๋ก ์ ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น? 30. ๋ฐ์ดํฐ ๊ตฌ์กฐ - ํธ๋ฆฌ, ํด๋น ์ ํ. 31. ์๊ณ ๋ฆฌ์ฆ - ์ ๋ ฌ ์ ํ. Java ์ธ์๋ ๋ค์์ ์ง๋ฌธํ ์ ์์ต๋๋ค. 1. (ํ์!) Git - ํ์ํ ์ด์ , ์์
๋ณํฉ, ๋ฆฌ๋ฒ ์ด์ค, ์ฒด๋ฆฌ ์ ํ, ํธ์, ํ, ์ปค๋ฐ, ๋ก๊ทธ, ์ฒดํฌ์์, ๋ถ๊ธฐ, ์ฌ์ค์ , ๋๋๋ฆฌ๊ธฐ, ์๋ก ๊ณ ์นจ. 2.SQL - ์ฟผ๋ฆฌ ์์ฑ ๊ธฐ๋ฅ: ๋ ํ
์ด๋ธ์ ํ๋๋ก ์กฐ์ธํฉ๋๋ค(๋ด๋ถ ์กฐ์ธ, ์ผ์ชฝ ์กฐ์ธ). 3. ๋ฐ์ดํฐ๋ฒ ์ด์ค - 3๊ฐ์ ์ ๊ท ํ์, ์ธ๋ฑ์ค(ํ์ํ ์ด์ , ์ ํ), ๊ธฐ๋ณธ ํค, ์ธ๋ ํค ์ผ๋ฐ์ ์ธ ์๊ฒฉ ์ธํฐ๋ทฐ๋ ์ด๋ป๊ฒ ์งํ๋ฉ๋๊น? hr์์ Zoom ๋งํฌ๋ฅผ ๋ณด๋
๋๋ค(Skype, Google Meeting). ํน์ ์๊ฐ์ด ๋๋ฉด ์ฐ๊ฒฐ๋๊ณ ๊ฑฐ๊ธฐ์๋ 1~3๋ช
์ ์ฌ๋(๊ธฐ์ ์ ๋ฌธ๊ฐ, ์์ฌ, HR)์ด ์์ต๋๋ค. ํนํ ์๊ณ ํ ๊ฒฝ์ฐ์๋ ์ต๋ 8๋ช
๊น์ง ๊ฐ๋ฅํฉ๋๋ค. ๋จผ์ ์์ ์ ๋ํด ๋งํ ๋ค์ ๊ธฐ์ ์ ์ธ ๋ถ๋ถ์ ๋งํ ๋ค์ ๊ณต์๊ณผ ์๋ณ ์ธ์ฌ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํฉ๋๋ค(๊ทธ๋ค์ด ์ธ์ ์ฐ๋ฝํ ์ง ๋๋ ๋ค์ ๋จ๊ณ๊ฐ ๋ฌด์์ธ์ง ์๋ ค์ค๋๋ค). ์๋ณ ์ธ์ฌ ์ค์ ์ง์์ ๋ํ ํผ๋๋ฐฑ์ ์์ฒญํ ์ ์์ต๋๋ค. ๋๋ ๋ฌผ์๋ค: โ์ ๊ฐ ๋๋ตํ๋ ๋์ ๊ท๊ฐ ์ด๋๊ฐ ์ํ์ง ๋ง์ํด ์ฃผ์๊ฒ ์ต๋๊น?โ ๋ง์ ์ฌ๋๋ค์ด ๋ฐ์ํ์ง๋ง ๊ฑฐ์ ๋นํ ๊ฐ์ค๋ฅผ ํ์ญ์์ค. ์ธํฐ๋ทฐ์์ ๊ทธ๋ค์ ๋ค์ ์ฌํญ์ ํ๊ฐํฉ๋๋ค. 1. ๋ฌ์์์ด์ ๋ํ ์๊ฐ๊ณผ ์ง์์ ํํํ๋ ๋ฅ๋ ฅ(๋ฌ์์์ด์ ๋ํ ์ง์์ด ๋ถ์กฑํ์ฌ ํ๋ณด์๊ฐ ๊ฑฐ๋ถ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ณ ์์ต๋๋ค). 2. ์ด์ ๊ฒฝํ(๋ง์ง๋ง ์ง์ฅ์์ ๋ฌด์์ ํ๋์ง ๊ผผ๊ผผํ๊ฒ ๋ฌผ์ด๋ณผ ์๋ ์์ต๋๋ค). 3. ์๋ ฅ์ด ๊ฐํด์ก์ ๋ ์ ์ ํ ๋ฐ์(ํ ์ธํฐ๋ทฐ์์ ์ฌ๋๋ค์ด ๋ฌด๋กํ๊ฒ ๋งํ๊ธฐ ์์ํ์ต๋๋ค: ๋ด ๋๋ต์ ๋ฌด์ํ๊ณ , ์์ ์ ์
์ฅ์ ์ฃผ์
์ํค๋ ค๊ณ ํ์ต๋๋ค. ์ ๋ ์ธํฐ๋ทฐ ์์ ํ 15๋ถ ๋ง์ ์ธํฐ๋ทฐ๋ฅผ ๋ง์ณค๊ณ ๊ทธ๋ค์: ์คํธ๋ ์ค๊ฐ ๋ง์ ๋ฉด์ ์ด์์ต๋๋ค!) 4. ์ง์ ์์ค. ์ฌ๊ธฐ์ ๋ ์์ธํ ์ค๋ช
ํ๊ฒ ์ต๋๋ค. ์ฃผ์ ์ ์ ์๋ฅผ ์๋ ๊ฒ์ ๋น์ ์๊ฒ ๊ธฐ๋๋๋ ๊ฒ์ 10%์ ๋ถ๊ณผํฉ๋๋ค. ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค(์ ์ด๋ ์ต์์ ์์ค์์๋). ๊ฐ๋ฐ์ ์ด๋ ์์ ์์ ์ด ์๋ฃจ์
์ด๋ ์ ์๋ฃจ์
์ ์ ํํ ๊ฒ์ธ์ง ์ค๋ช
ํ๋ ค๋ ์์ง. ์ด๋ ์ ์์ ์ ํ์ฑ๋ณด๋ค ํจ์ฌ ๋ ์ค์ํฉ๋๋ค. ๋๋ ๋ ๊ฐ์ง ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋
ผ๋ฌธ์ ๋ถ์ํ ๊ฒ์ด๋ค. ์ฒซ ๋ฒ์งธ ์: ์ธํฐ๋ทฐ ์ค์ HashMap์ ๋ํ ์ง๋ฌธ์ ๋ฐ์๊ณ "์ด๊ฒ์ ํค์ ๊ฐ ๋ฌถ์์ ์ ์ฅํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์
๋๋ค."๋ผ๊ณ ์ ์ํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ฉด์ ๊ด์ด ๋ฌผ์์ต๋๋ค. TreeMap๊ณผ์ ์ฐจ์ด์ ์ ๋ฌด์์
๋๊น? ๋ต๋ณ: ์ฐจ์ด์ ์ HashMap์ด ํค๋ฅผ ํด์ํ๊ณ ํด์๋ก ์ธํด ์ก์ธ์ค๊ฐ ๋น ๋ฅด๋ค๋ ๊ฒ์
๋๋ค. ๋ฉด์ ๊ด์ ์ฆ์ HashMap์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์๋ ค์ฃผ๋ ๋์์ hashCode ๋ฐ equals์ ๋ํด ์ง๋ฌธํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ต์ ๋ง์กฑํ๊ฑฐ๋ ๋ฉ์ถ ๋๊น์ง ๋ ๊น์ด์ง ๊ฒ์
๋๋ค. ์ ๋ 2๊ฐ์ ๊ฐ์ ์ธํฐ๋ทฐ์ hexlet์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๊ณผ์ ์ ๋ง์น ํ์์ผ HashMap์ ๋ํด ์ฌ๋ฐ๋ฅด๊ฒ ๋๋ตํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค. ๋ ๋ฒ์งธ ์: SOLID ๊ฐ๋
. ๊ทธ๋ค์ ๋์๊ฒ ๋ด๊ฐ ์ธ์ด ์ ์๋ฅผ ๋งํด ๋ฌ๋ผ๊ณ ์์ฒญํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ์ฌ๋ก๊ฐ ๋์ค์ ๋ง์ ๋ฌธ์ ๊ฐ ์์๋์์ต๋๋ค. ะะฝะธะผะฐะฝะธะต!๋ชจ๋ฅธ๋ค๋ฉด ๋ฐ๋ช
ํ์ง ๋ง๊ณ ์ด๋ ๊ฒ ๋งํ์ธ์. ์ ๋ ์ด ์ฃผ์ ๋ฅผ ๋ชจ๋ฅด์ง๋ง ์ด๋ ๊ฒ ์๋ํ๋ค๊ณ ๊ฐ์ ํ ์ ์์ต๋๋ค. ๋ง์ ๊ธฐ์ ์ ๋ฌธ๊ฐ๋ค์ ๋ง์น ์ฃผ์ ๋ฅผ ์ดํดํ๋ ๊ฒ์ฒ๋ผ ์ด๋จ์ ์ธ ๋ง์ ํ๋ฉด ๊ฒฉ๋ถํฉ๋๋ค. 5. ์ง๋ฌด ๋
ผ์ ์ค ๊ทํ์ ์ด์ ์์ค. ๊ทํ๋ ๊ด์ฌ์ ๊ฐ๊ณ ๊ณต์์ ๋ํด ์ง๋ฌธํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค(๊ฐ์ง ๊ณต์๋ฟ๋ง ์๋๋ผ). 6. ๋๋ก๋ ์ ๋จธ(์ฃผ์ ์ ๋ํด์๋ง)์ ๊ณตํต ๊ด์ฌ์ฌ๊ฐ ์์ฌ์ํต์ ๋์์ด ๋ฉ๋๋ค. ๊ทํ์ ์ทจ๋ฏธ์ ๋ํด ์์ ๋กญ๊ฒ ์ด์ผ๊ธฐํ์ญ์์ค. ์๋ง๋ ์ธํฐ๋ทฐ ๋์์๋ Dota/์ถ๊ตฌ/ํํ์ง๋ ์ข์ํ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ํ๋ณด์๋ก์ ๋น์ ์๊ฒ ํ๋ฌ์ค์
๋๋ค. ๋๋ ๊ด์ฌ ์๋ ์ปค๋ฎค๋ํฐ๊ฐ ๋ฉด์ ๊ด์ ์ด์
ํ ๊ธฐ์ ๊ต์ก์ ๋๊ฐ์ ์ค ์ฌ๋ก๋ฅผ ์๊ณ ์์ต๋๋ค. (๋น์ ์ ํ๋ฒํ ์ฌ๋์
๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋น์ ์ ํ๋ จ์ํฌ ๊ฒ์
๋๋ค.) <h3>9์ฅ ์ทจ์
, ๋ถ์ธ๋ก</h3>๋ฉด์ ์ 4์ ๋ง๋ถํฐ 7์ ์ค์๊น์ง ์งํ๋๋ค. ์ฒซ ๋ฒ์งธ ๋ฉด์ ์ ๋นํฉ์ค๋ฌ์ ์ผ๋ ์ ์ฐจ ์ํฉ์ ์์ฉ ๊ฐ๋ฅํ ์์ค์ผ๋ก ๊ฐ์ ๋์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์ง๋ฌธ๊ณผ ํผ๋๋ฐฑ์ ์ฐ๊ตฌํ๋ ๊ฒ์ด ๋๊ปด์ก์ต๋๋ค. ์ฒ์ 25๋ฒ์ ์ธํฐ๋ทฐ๋ ์คํจํ์ต๋๋ค. ๊ทธ ํ ์ ๋ง์ ์๊ฐ์ด ์์๋์์ต๋๋ค. ๊ฐ์ : ๊ทธ ๊ธ์ฌ๋ฅผ ๋ฐ๊ณ ๋๋ฅผ ๊ณ ์ฉํ์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ๋๋์? ๊ฐ์๊ธฐ ์ํฉ์ด ๊ธ๋ณํ๊ธฐ ์์ํ์ต๋๋ค. ์ผ์ฃผ์ผ๋ ์ ๋์ด ์ธ ๊ฐ์ ํ์ฌ๊ฐ ์ ์์๋ฅผ ์ ์ถํ์ต๋๋ค. ์ ๋ ์ ๊ฐ ๊ตฌ์ฒด์ ์ธ ์ฌํญ์ ์๊ณ ์๊ณ ๊ธ์ฌ๋ ์ข๊ณ ์๊ฒฉ์ผ๋ก ์ผํ ์ ์๋ ๊ธฐํ๋ ์๋ ํ์ฌ๋ฅผ ์ ํํ์ต๋๋ค. ์ธํฐ๋ทฐ ์ค Java Core์ Spring์ ๊ดํด 30๊ฐ์ง ์ง๋ฌธ์ ๋ฐ์๋๋ฐ, ๊ทธ ์ค 97%๊ฐ ์ ๋ต์ด์์ต๋๋ค. ๊ทธ ํ ์๊ธ ๋น๊ตญ๊ณผ ์ฐ๋ฝ์ด ์ด๋ฃจ์ด์ก๊ณ 1.5์ฃผ ํ์ ๋๋ ๊ทธ๋ค์๊ฒ ์ผ์๋ฆฌ๋ฅผ ์ป์์ต๋๋ค. ์ฐ์ , ์ด๋ค ์ผ์ ํ๋ ํ์ํ ๋ชจ๋ ์์คํ
์ ์ ๊ทผํ๊ณ ํ์ํ ๋๊ตฌ๋ฅผ ์ค์นํ๊ธฐ ์์ํฉ๋๋ค. ์ผ์ฃผ์ผ ๋ฐ์ด ๊ฑธ๋ ธ๊ณ ์ฒซ ๋ฒ์งธ ์์
์ด ์ฃผ์ด์ก์ต๋๋ค. ๊ต์ค์ ์ ์ ํ
์คํธ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด์์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ์ด์์ ๋ ์์ด ๋ฉ์ค๊บผ์ ์ต๋๋ค. ํ๋์ ํ๋ก์ ํธ ์์ ๋ชจ๋๋ ๋ง๊ณ , ํด๋์ค, ํ
์คํธ ๋ฑ๋ ๋ง์์ต๋๋ค. ์ด ์์ ์์ ์ ๋ ๊ธธ์ ์์์ง๋ง, ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๊ฐ ์ ๋ฅผ ๋์์ ์๋๋ฅผ ๋์ผ ์ ์์์ต๋๋ค. ๋ฒ๊ทธ๋ 10๋ถ ๋ง์ ์์ ๋์ด Git์ ๊ฒ์๋๊ณ ํ ์์ฒญ(๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ํ์ธํ๋ ๋ ๊ฐ์ ๋ธ๋์น๋ฅผ ๋ณํฉํ๋ผ๋ ์์ฒญ)์ด ์ด๋ฃจ์ด์ง ๋ค์ ๋ฉ์ธ ๋ธ๋์น์ ๋ณํฉ๋์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๊ทธ๋ ๊ฒ ์ด๋ ต์ง ์๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ์ฒซ ๋ฒ์งธ ๋ณธ๊ฒฉ์ ์ธ ์์
๊น์ง... ๋ค์ 2์ฃผ ๋์ ์์
์ ๊ณํํ ๋ OpenShift์ ์๋ ๋ค๋ฅธ ์์คํ
๊ณผ ํตํฉ์ ์ํํ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค. OpenShift๋ Docker, Kubernetes, Linux ๋ฑ ์ ์ฒด ๊ธฐ์ ํด๋ฌ์คํฐ์
๋๋ค. ๋ฑ์ค๊ธฐ์ ์์๋์ด ํ๋ ์ต๋๋ค. ์, ์ ๋ Jawist๋ก ์ผํ์ต๋๋ค. ํ์ ์งํ ์ ๋ ๊ฐ๋ฐ์์๊ฒ ์ ํ๋ฅผ ๊ฑธ์ด ์ ๋ฅผ ์์ฌ์์ผฐ์ต๋๋ค. ์ด ์์คํ
์ ์ํ ์ด๋ํฐ๊ฐ ์์ฑ๋์๊ณ ํน์ ํด๋์ค๋ฅผ ๋ด ํ๋ก์ ํธ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ผ๋ฉฐ ๊ทธ ํ์๋ ํตํฉ์ ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์์์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ ํ์ ์ธ ํตํฉ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ ๊น์ง๋ ๋ค์ ์ฌ๋ฏธ์์ด์ก์ต๋๋ค. ์ ์ฌํ ํตํฉ์ ์ํด ์์ฑ๋ ํด๋์ค๊ฐ 20๊ฐ๊ฐ ๋๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ๋ํ ์ด์ ์๋ ๋ณผ ์ ์์๋ @Value, @Builder, @NoArgsConstructor, @Getter ์ฃผ์์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค. @Sl4f - Lombook ํ๋ก์ ํธ๋ก ๋ฐํ์ก์ต๋๋ค(์ธํฐ๋ท์์ ์ฝ์). ๊ฐ๋ฐ์๊ฐ ์ด๋ป๊ฒ ํ๋์ง ์ค๋ช
์ ํด์ค ๋, ๋ชจ๋ ํด๋์ค์ ์ฐ๊ฒฐ์ ์ ์ด๋ณด๋ ค๊ณ ํ๋๋ฐ, ๋จธ๋ฆฌ์ ์๋ฌด๊ฒ๋ ๋งด๋์ง ์์์ต๋๋ค. ๊ฐ์ฅ ๋นํฉ์ค๋ฌ์ ๋ ์๊ฐ์ Intellij Idea์ ๋ํ ์ง์์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์
๋๋ค: ํ๋ก์ ํธ๋ฅผ ์ ์ญ์ ์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ๋ฒ, ์ฝ๋ ๋ฆฌํฉํ ๋ง ๋ฑ. ์์
์ ์ํํ๋ฉด์ OOP๊ฐ ํ์ํ ์ด์ ๋ฅผ ์ดํดํ์ต๋๋ค. ์ฝ๋๊ฐ ๋๋ฌด ๋ง์ผ๋ฉด ์ฝ๋๋ฅผ ํด๋์ค๋ก ๋๋์ด์ผ ํฉ๋๋ค. ํด๋์ค ์ธ๋ถ์์ ์ฌ์ฉ๋์ง ์๋ ๋ฉ์๋๋ ์ค์๋ก ๋ค๋ฅธ ํด๋์ค ๋ฑ์์ ์คํ๋์ง ์๋๋ก ๋น๊ณต๊ฐ๋ก ์ ์ธํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ํตํฉ๊ณผ ์ ์ฌํ๊ฒ ํตํฉ์ ์์ฑํ๋ฉด์ ์คํ์ผ์ ํ์ธํ๋ ํน์ ํ๋ฌ๊ทธ์ธ์ธ CheckStyle์ ์กด์ฌ์ ๋ํด ๋ฐฐ์ ์ต๋๋ค. ์ค๋ฅ(์: ์ถ๊ฐ ๊ณต๋ฐฑ, ๋๋ฌธ์๊ฐ ํฌํจ๋ ๋ณ์ ์ด๋ฆ, ๋๋ฌด ์งง์ ๋ณ์ ์ด๋ฆ)๋ฅผ ์์ ํ๊ธฐ ์ ๊น์ง๋ ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๋ค. CheckStyle์ ๋ฌผ๋ฆฌ์น ํ ์ ์ ๊ฐ๋ฐ์์๊ฒ ๊ฒํ ๋ฅผ ์ํด ์ฝ๋๋ฅผ ๋ณด๋๊ณ ์ผ์ฃผ์ผ ์ด๋ด์ ์ค์๋ฅผ ์์ ํ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ ํ์์ ๋ง์ ๊ฒ์ ์ค๋ช
ํด ์ค ๋ ๋ฒ์งธ ๊ฐ๋ฐ์์ ์ข์ ๊ด๊ณ๋ฅผ ๋งบ์ ๊ฒ์ ๋งค์ฐ ์ด์ด ์ข์์ต๋๋ค. ์ฅ์น๊ฐ ์ถ์๋ ์ง ํ ๋ฌ ํ, ํตํฉ ๊ธฐ๋ฅ ์คํ ๋์์ ์ฒซ ๋ฒ์งธ ํตํฉ์ด ์์๋์๊ณ (๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์
์ด ํจ๊ป ํ
์คํธ๋จ) ๋ชจ๋ ๊ฒ์ด ๊ทธ๊ณณ์์ ์๋ํ์ต๋๋ค! ์น๋ฆฌ! ๋ค์ ์์
์ json์์ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ์จ๊ธธ ์ ์๋ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์๋ฅผ ๋ค์ด json {text:"JavaRush"} -> ์ฒ๋ฆฌ -> {text:"****Rush"}๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ๋ณต์กํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. {text:{mytext:"JavaRush"}}๊ฐ ์ค์ฒฉ๋ ์ ์์ผ๋ฉฐ, ๋ ๋ถ์พํ ๊ฒ์ ๋ฐฐ์ด ๋ด๋ถ์ ์ค์ฒฉ๋๋ค๋ ๊ฒ์
๋๋ค: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (๋ฌผ๋ก text.mytext๋ฅผ ๋ชจ๋ ์จ๊ฒจ์ผ ํฉ๋๋ค). ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋นํ ์ด๋ ค์ ์ง๋ง ํด๋์ต๋๋ค! ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์ด ๊ฐ๋ฐ์ ํ
์คํธ๋ก ์ฒ๋ฆฌํ์ธ์. ๋์๋ ๋นํน๊ฐ์ด์์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ ํฌ์์ JUnit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋จ์ ํ
์คํธ์ ๋ณธ์ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฅผ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค(์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค). ๋๋ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด 11๊ฐ์ง ์ฌ๋ก๋ฅผ ์์ฑํ๋๋ฐ, ๊ทธ ์ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด NullPointException์ผ๋ก ์ถฉ๋ํ์ง ์์๋์ง, ๋ชจ๋ ์ ํ์ ์ค์ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ฒผ๋์ง ํ์ธํ์ต๋๋ค. ์ด ์์
์ ์๋ฃํ ํ ์๋ก์ด ํตํฉ์ด ์ฃผ์ด์ก๋๋ฐ ๊ทธ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Spring Bean์ ๋ด๋ณด๋ด์ผ ํ์ต๋๋ค. ์ด ์์ ์์ ์ ๋ Stack OverFlow ์น์ฌ์ดํธ์ ๋จ๊ณจ ๊ณ ๊ฐ์ด ๋์์ต๋๋ค. ํ๋ฒ์ ๊ณต์ Spring ๊ฐ๋ฐ์๊ฐ ์๋ตํ๊ธฐ๋ ํ์ต๋๋ค. ์ด ํตํฉ์ ๊ตฌํํ ํ ํ๊ฐํ ๊ธฐ๊ฐ์ด ์ข
๋ฃ๋์์ต๋๋ค. ์ฌ์ฅ๋๊ป์ ์์ต๊ธฐ๊ฐ ํต๊ณผ๋ฅผ ์ถํํด์ฃผ์
์ ์ด ๊ธ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์์ฑํ๋ ๋ฐ ์ด 8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.) ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด ๊ธ์ด ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋๋ ๋ชจ๋ ์์
์ ์ฐ๊ด์ฑ์ ์ ์ผ๋ ค๊ณ ๋
ธ๋ ฅํ์ง๋ง ์ ํ ๋จธ๋ฆฌ์ ๋งด๋์ง ์์์ต๋๋ค. ๊ฐ์ฅ ๋นํฉ์ค๋ฌ์ ๋ ์๊ฐ์ Intellij Idea์ ๋ํ ์ง์์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์
๋๋ค: ํ๋ก์ ํธ๋ฅผ ์ ์ญ์ ์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ๋ฒ, ์ฝ๋ ๋ฆฌํฉํ ๋ง ๋ฑ. ์์
์ ์ํํ๋ฉด์ OOP๊ฐ ํ์ํ ์ด์ ๋ฅผ ์ดํดํ์ต๋๋ค. ์ฝ๋๊ฐ ๋๋ฌด ๋ง์ผ๋ฉด ์ฝ๋๋ฅผ ํด๋์ค๋ก ๋๋์ด์ผ ํฉ๋๋ค. ํด๋์ค ์ธ๋ถ์์ ์ฌ์ฉ๋์ง ์๋ ๋ฉ์๋๋ ์ค์๋ก ๋ค๋ฅธ ํด๋์ค ๋ฑ์์ ์คํ๋์ง ์๋๋ก ๋น๊ณต๊ฐ๋ก ์ ์ธํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ํตํฉ๊ณผ ์ ์ฌํ๊ฒ ํตํฉ์ ์์ฑํ๋ฉด์ ์คํ์ผ์ ํ์ธํ๋ ํน์ ํ๋ฌ๊ทธ์ธ์ธ CheckStyle์ ์กด์ฌ์ ๋ํด ๋ฐฐ์ ์ต๋๋ค. ์ค๋ฅ(์: ์ถ๊ฐ ๊ณต๋ฐฑ, ๋๋ฌธ์๊ฐ ํฌํจ๋ ๋ณ์ ์ด๋ฆ, ๋๋ฌด ์งง์ ๋ณ์ ์ด๋ฆ)๋ฅผ ์์ ํ๊ธฐ ์ ๊น์ง๋ ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๋ค. CheckStyle์ ๋ฌผ๋ฆฌ์น ํ ์ ์ ๊ฐ๋ฐ์์๊ฒ ๊ฒํ ๋ฅผ ์ํด ์ฝ๋๋ฅผ ๋ณด๋๊ณ ์ผ์ฃผ์ผ ์ด๋ด์ ์ค์๋ฅผ ์์ ํ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ ํ์์ ๋ง์ ๊ฒ์ ์ค๋ช
ํด ์ค ๋ ๋ฒ์งธ ๊ฐ๋ฐ์์ ์ข์ ๊ด๊ณ๋ฅผ ๋งบ์ ๊ฒ์ ๋งค์ฐ ์ด์ด ์ข์์ต๋๋ค. ์ฅ์น๊ฐ ์ถ์๋ ์ง ํ ๋ฌ ํ, ํตํฉ ๊ธฐ๋ฅ ์คํ ๋์์ ์ฒซ ๋ฒ์งธ ํตํฉ์ด ์์๋์๊ณ (๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์
์ด ํจ๊ป ํ
์คํธ๋จ) ๋ชจ๋ ๊ฒ์ด ๊ทธ๊ณณ์์ ์๋ํ์ต๋๋ค! ์น๋ฆฌ! ๋ค์ ์์
์ json์์ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ์จ๊ธธ ์ ์๋ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์๋ฅผ ๋ค์ด json {text:"JavaRush"} -> ์ฒ๋ฆฌ -> {text:"****Rush"}๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ๋ณต์กํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. {text:{mytext:"JavaRush"}}๊ฐ ์ค์ฒฉ๋ ์ ์์ผ๋ฉฐ, ๋ ๋ถ์พํ ๊ฒ์ ๋ฐฐ์ด ๋ด๋ถ์ ์ค์ฒฉ๋๋ค๋ ๊ฒ์
๋๋ค: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (๋ฌผ๋ก text.mytext๋ฅผ ๋ชจ๋ ์จ๊ฒจ์ผ ํฉ๋๋ค). ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋นํ ์ด๋ ค์ ์ง๋ง ํด๋์ต๋๋ค! ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์ด ๊ฐ๋ฐ์ ํ
์คํธ๋ก ์ฒ๋ฆฌํ์ธ์. ๋์๋ ๋นํน๊ฐ์ด์์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ ํฌ์์ JUnit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋จ์ ํ
์คํธ์ ๋ณธ์ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฅผ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค(์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค). ๋๋ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด 11๊ฐ์ง ์ฌ๋ก๋ฅผ ์์ฑํ๋๋ฐ, ๊ทธ ์ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด NullPointException์ผ๋ก ์ถฉ๋ํ์ง ์์๋์ง, ๋ชจ๋ ์ ํ์ ์ค์ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ฒผ๋์ง ํ์ธํ์ต๋๋ค. ์ด ์์
์ ์๋ฃํ ํ ์๋ก์ด ํตํฉ์ด ์ฃผ์ด์ก๋๋ฐ ๊ทธ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Spring Bean์ ๋ด๋ณด๋ด์ผ ํ์ต๋๋ค. ์ด ์์ ์์ ์ ๋ Stack OverFlow ์น์ฌ์ดํธ์ ๋จ๊ณจ ๊ณ ๊ฐ์ด ๋์์ต๋๋ค. ํ๋ฒ์ ๊ณต์ Spring ๊ฐ๋ฐ์๊ฐ ์๋ตํ๊ธฐ๋ ํ์ต๋๋ค. ์ด ํตํฉ์ ๊ตฌํํ ํ ํ๊ฐํ ๊ธฐ๊ฐ์ด ์ข
๋ฃ๋์์ต๋๋ค. ์ฌ์ฅ๋๊ป์ ์์ต๊ธฐ๊ฐ ํต๊ณผ๋ฅผ ์ถํํด์ฃผ์
์ ์ด ๊ธ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์์ฑํ๋ ๋ฐ ์ด 8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.) ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด ๊ธ์ด ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋๋ ๋ชจ๋ ์์
์ ์ฐ๊ด์ฑ์ ์ ์ผ๋ ค๊ณ ๋
ธ๋ ฅํ์ง๋ง ์ ํ ๋จธ๋ฆฌ์ ๋งด๋์ง ์์์ต๋๋ค. ๊ฐ์ฅ ๋นํฉ์ค๋ฌ์ ๋ ์๊ฐ์ Intellij Idea์ ๋ํ ์ง์์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์
๋๋ค: ํ๋ก์ ํธ๋ฅผ ์ ์ญ์ ์ผ๋ก ๊ฒ์ํ๋ ๋ฐฉ๋ฒ, ์ฝ๋ ๋ฆฌํฉํ ๋ง ๋ฑ. ์์
์ ์ํํ๋ฉด์ OOP๊ฐ ํ์ํ ์ด์ ๋ฅผ ์ดํดํ์ต๋๋ค. ์ฝ๋๊ฐ ๋๋ฌด ๋ง์ผ๋ฉด ์ฝ๋๋ฅผ ํด๋์ค๋ก ๋๋์ด์ผ ํฉ๋๋ค. ํด๋์ค ์ธ๋ถ์์ ์ฌ์ฉ๋์ง ์๋ ๋ฉ์๋๋ ์ค์๋ก ๋ค๋ฅธ ํด๋์ค ๋ฑ์์ ์คํ๋์ง ์๋๋ก ๋น๊ณต๊ฐ๋ก ์ ์ธํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ํตํฉ๊ณผ ์ ์ฌํ๊ฒ ํตํฉ์ ์์ฑํ๋ฉด์ ์คํ์ผ์ ํ์ธํ๋ ํน์ ํ๋ฌ๊ทธ์ธ์ธ CheckStyle์ ์กด์ฌ์ ๋ํด ๋ฐฐ์ ์ต๋๋ค. ์ค๋ฅ(์: ์ถ๊ฐ ๊ณต๋ฐฑ, ๋๋ฌธ์๊ฐ ํฌํจ๋ ๋ณ์ ์ด๋ฆ, ๋๋ฌด ์งง์ ๋ณ์ ์ด๋ฆ)๋ฅผ ์์ ํ๊ธฐ ์ ๊น์ง๋ ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๋ค. CheckStyle์ ๋ฌผ๋ฆฌ์น ํ ์ ์ ๊ฐ๋ฐ์์๊ฒ ๊ฒํ ๋ฅผ ์ํด ์ฝ๋๋ฅผ ๋ณด๋๊ณ ์ผ์ฃผ์ผ ์ด๋ด์ ์ค์๋ฅผ ์์ ํ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ ํ์์ ๋ง์ ๊ฒ์ ์ค๋ช
ํด ์ค ๋ ๋ฒ์งธ ๊ฐ๋ฐ์์ ์ข์ ๊ด๊ณ๋ฅผ ๋งบ์ ๊ฒ์ ๋งค์ฐ ์ด์ด ์ข์์ต๋๋ค. ์ฅ์น๊ฐ ์ถ์๋ ์ง ํ ๋ฌ ํ, ํตํฉ ๊ธฐ๋ฅ ์คํ ๋์์ ์ฒซ ๋ฒ์งธ ํตํฉ์ด ์์๋์๊ณ (๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์
์ด ํจ๊ป ํ
์คํธ๋จ) ๋ชจ๋ ๊ฒ์ด ๊ทธ๊ณณ์์ ์๋ํ์ต๋๋ค! ์น๋ฆฌ! ๋ค์ ์์
์ json์์ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ์จ๊ธธ ์ ์๋ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์๋ฅผ ๋ค์ด json {text:"JavaRush"} -> ์ฒ๋ฆฌ -> {text:"****Rush"}๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ๋ณต์กํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. {text:{mytext:"JavaRush"}}๊ฐ ์ค์ฒฉ๋ ์ ์์ผ๋ฉฐ, ๋ ๋ถ์พํ ๊ฒ์ ๋ฐฐ์ด ๋ด๋ถ์ ์ค์ฒฉ๋๋ค๋ ๊ฒ์
๋๋ค: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (๋ฌผ๋ก text.mytext๋ฅผ ๋ชจ๋ ์จ๊ฒจ์ผ ํฉ๋๋ค). ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋นํ ์ด๋ ค์ ์ง๋ง ํด๋์ต๋๋ค! ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์ด ๊ฐ๋ฐ์ ํ
์คํธ๋ก ์ฒ๋ฆฌํ์ธ์. ๋์๋ ๋นํน๊ฐ์ด์์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ ํฌ์์ JUnit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋จ์ ํ
์คํธ์ ๋ณธ์ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฅผ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค(์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค). ๋๋ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด 11๊ฐ์ง ์ฌ๋ก๋ฅผ ์์ฑํ๋๋ฐ, ๊ทธ ์ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด NullPointException์ผ๋ก ์ถฉ๋ํ์ง ์์๋์ง, ๋ชจ๋ ์ ํ์ ์ค์ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ฒผ๋์ง ํ์ธํ์ต๋๋ค. ์ด ์์
์ ์๋ฃํ ํ ์๋ก์ด ํตํฉ์ด ์ฃผ์ด์ก๋๋ฐ ๊ทธ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Spring Bean์ ๋ด๋ณด๋ด์ผ ํ์ต๋๋ค. ์ด ์์ ์์ ์ ๋ Stack OverFlow ์น์ฌ์ดํธ์ ๋จ๊ณจ ๊ณ ๊ฐ์ด ๋์์ต๋๋ค. ํ๋ฒ์ ๊ณต์ Spring ๊ฐ๋ฐ์๊ฐ ์๋ตํ๊ธฐ๋ ํ์ต๋๋ค. ์ด ํตํฉ์ ๊ตฌํํ ํ ํ๊ฐํ ๊ธฐ๊ฐ์ด ์ข
๋ฃ๋์์ต๋๋ค. ์ฌ์ฅ๋๊ป์ ์์ต๊ธฐ๊ฐ ํต๊ณผ๋ฅผ ์ถํํด์ฃผ์
์ ์ด ๊ธ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์์ฑํ๋ ๋ฐ ์ด 8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.) ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด ๊ธ์ด ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๋ ๊ฒ ๋ง์ ์์ ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด ํด๋์ค๋ก ๋๋์ด์ผ ํฉ๋๋ค. ํด๋์ค ์ธ๋ถ์์ ์ฌ์ฉ๋์ง ์๋ ๋ฉ์๋๋ ์ค์๋ก ๋ค๋ฅธ ํด๋์ค ๋ฑ์์ ์คํ๋์ง ์๋๋ก ๋น๊ณต๊ฐ๋ก ์ ์ธํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ํตํฉ๊ณผ ์ ์ฌํ๊ฒ ํตํฉ์ ์์ฑํ๋ฉด์ ์คํ์ผ์ ํ์ธํ๋ ํน์ ํ๋ฌ๊ทธ์ธ์ธ CheckStyle์ ์กด์ฌ์ ๋ํด ๋ฐฐ์ ์ต๋๋ค. ์ค๋ฅ(์: ์ถ๊ฐ ๊ณต๋ฐฑ, ๋๋ฌธ์๊ฐ ํฌํจ๋ ๋ณ์ ์ด๋ฆ, ๋๋ฌด ์งง์ ๋ณ์ ์ด๋ฆ)๋ฅผ ์์ ํ๊ธฐ ์ ๊น์ง๋ ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๋ค. CheckStyle์ ๋ฌผ๋ฆฌ์น ํ ์ ์ ๊ฐ๋ฐ์์๊ฒ ๊ฒํ ๋ฅผ ์ํด ์ฝ๋๋ฅผ ๋ณด๋๊ณ ์ผ์ฃผ์ผ ์ด๋ด์ ์ค์๋ฅผ ์์ ํ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ ํ์์ ๋ง์ ๊ฒ์ ์ค๋ช
ํด ์ค ๋ ๋ฒ์งธ ๊ฐ๋ฐ์์ ์ข์ ๊ด๊ณ๋ฅผ ๋งบ์ ๊ฒ์ ๋งค์ฐ ์ด์ด ์ข์์ต๋๋ค. ์ฅ์น๊ฐ ์ถ์๋ ์ง ํ ๋ฌ ํ, ํตํฉ ๊ธฐ๋ฅ ์คํ ๋์์ ์ฒซ ๋ฒ์งธ ํตํฉ์ด ์์๋์๊ณ (๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์
์ด ํจ๊ป ํ
์คํธ๋จ) ๋ชจ๋ ๊ฒ์ด ๊ทธ๊ณณ์์ ์๋ํ์ต๋๋ค! ์น๋ฆฌ! ๋ค์ ์์
์ json์์ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ์จ๊ธธ ์ ์๋ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์๋ฅผ ๋ค์ด json {text:"JavaRush"} -> ์ฒ๋ฆฌ -> {text:"****Rush"}๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ๋ณต์กํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. {text:{mytext:"JavaRush"}}๊ฐ ์ค์ฒฉ๋ ์ ์์ผ๋ฉฐ, ๋ ๋ถ์พํ ๊ฒ์ ๋ฐฐ์ด ๋ด๋ถ์ ์ค์ฒฉ๋๋ค๋ ๊ฒ์
๋๋ค: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (๋ฌผ๋ก text.mytext๋ฅผ ๋ชจ๋ ์จ๊ฒจ์ผ ํฉ๋๋ค). ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋นํ ์ด๋ ค์ ์ง๋ง ํด๋์ต๋๋ค! ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์ด ๊ฐ๋ฐ์ ํ
์คํธ๋ก ์ฒ๋ฆฌํ์ธ์. ๋์๋ ๋นํน๊ฐ์ด์์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ ํฌ์์ JUnit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋จ์ ํ
์คํธ์ ๋ณธ์ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฅผ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค(์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค). ๋๋ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด 11๊ฐ์ง ์ฌ๋ก๋ฅผ ์์ฑํ๋๋ฐ, ๊ทธ ์ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด NullPointException์ผ๋ก ์ถฉ๋ํ์ง ์์๋์ง, ๋ชจ๋ ์ ํ์ ์ค์ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ฒผ๋์ง ํ์ธํ์ต๋๋ค. ์ด ์์
์ ์๋ฃํ ํ ์๋ก์ด ํตํฉ์ด ์ฃผ์ด์ก๋๋ฐ ๊ทธ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Spring Bean์ ๋ด๋ณด๋ด์ผ ํ์ต๋๋ค. ์ด ์์ ์์ ์ ๋ Stack OverFlow ์น์ฌ์ดํธ์ ๋จ๊ณจ ๊ณ ๊ฐ์ด ๋์์ต๋๋ค. ํ๋ฒ์ ๊ณต์ Spring ๊ฐ๋ฐ์๊ฐ ์๋ตํ๊ธฐ๋ ํ์ต๋๋ค. ์ด ํตํฉ์ ๊ตฌํํ ํ ํ๊ฐํ ๊ธฐ๊ฐ์ด ์ข
๋ฃ๋์์ต๋๋ค. ์ฌ์ฅ๋๊ป์ ์์ต๊ธฐ๊ฐ ํต๊ณผ๋ฅผ ์ถํํด์ฃผ์
์ ์ด ๊ธ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์์ฑํ๋ ๋ฐ ์ด 8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.) ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด ๊ธ์ด ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๋ ๊ฒ ๋ง์ ์์ ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด ํด๋์ค๋ก ๋๋์ด์ผ ํฉ๋๋ค. ํด๋์ค ์ธ๋ถ์์ ์ฌ์ฉ๋์ง ์๋ ๋ฉ์๋๋ ์ค์๋ก ๋ค๋ฅธ ํด๋์ค ๋ฑ์์ ์คํ๋์ง ์๋๋ก ๋น๊ณต๊ฐ๋ก ์ ์ธํด์ผ ํฉ๋๋ค. ๋ค๋ฅธ ํตํฉ๊ณผ ์ ์ฌํ๊ฒ ํตํฉ์ ์์ฑํ๋ฉด์ ์คํ์ผ์ ํ์ธํ๋ ํน์ ํ๋ฌ๊ทธ์ธ์ธ CheckStyle์ ์กด์ฌ์ ๋ํด ๋ฐฐ์ ์ต๋๋ค. ์ค๋ฅ(์: ์ถ๊ฐ ๊ณต๋ฐฑ, ๋๋ฌธ์๊ฐ ํฌํจ๋ ๋ณ์ ์ด๋ฆ, ๋๋ฌด ์งง์ ๋ณ์ ์ด๋ฆ)๋ฅผ ์์ ํ๊ธฐ ์ ๊น์ง๋ ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๋ค. CheckStyle์ ๋ฌผ๋ฆฌ์น ํ ์ ์ ๊ฐ๋ฐ์์๊ฒ ๊ฒํ ๋ฅผ ์ํด ์ฝ๋๋ฅผ ๋ณด๋๊ณ ์ผ์ฃผ์ผ ์ด๋ด์ ์ค์๋ฅผ ์์ ํ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ ํ์์ ๋ง์ ๊ฒ์ ์ค๋ช
ํด ์ค ๋ ๋ฒ์งธ ๊ฐ๋ฐ์์ ์ข์ ๊ด๊ณ๋ฅผ ๋งบ์ ๊ฒ์ ๋งค์ฐ ์ด์ด ์ข์์ต๋๋ค. ์ฅ์น๊ฐ ์ถ์๋ ์ง ํ ๋ฌ ํ, ํตํฉ ๊ธฐ๋ฅ ์คํ ๋์์ ์ฒซ ๋ฒ์งธ ํตํฉ์ด ์์๋์๊ณ (๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์
์ด ํจ๊ป ํ
์คํธ๋จ) ๋ชจ๋ ๊ฒ์ด ๊ทธ๊ณณ์์ ์๋ํ์ต๋๋ค! ์น๋ฆฌ! ๋ค์ ์์
์ json์์ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ์จ๊ธธ ์ ์๋ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์๋ฅผ ๋ค์ด json {text:"JavaRush"} -> ์ฒ๋ฆฌ -> {text:"****Rush"}๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ๋ณต์กํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. {text:{mytext:"JavaRush"}}๊ฐ ์ค์ฒฉ๋ ์ ์์ผ๋ฉฐ, ๋ ๋ถ์พํ ๊ฒ์ ๋ฐฐ์ด ๋ด๋ถ์ ์ค์ฒฉ๋๋ค๋ ๊ฒ์
๋๋ค: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (๋ฌผ๋ก text.mytext๋ฅผ ๋ชจ๋ ์จ๊ฒจ์ผ ํฉ๋๋ค). ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋นํ ์ด๋ ค์ ์ง๋ง ํด๋์ต๋๋ค! ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์ด ๊ฐ๋ฐ์ ํ
์คํธ๋ก ์ฒ๋ฆฌํ์ธ์. ๋์๋ ๋นํน๊ฐ์ด์์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ ํฌ์์ JUnit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋จ์ ํ
์คํธ์ ๋ณธ์ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฅผ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค(์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค). ๋๋ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด 11๊ฐ์ง ์ฌ๋ก๋ฅผ ์์ฑํ๋๋ฐ, ๊ทธ ์ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด NullPointException์ผ๋ก ์ถฉ๋ํ์ง ์์๋์ง, ๋ชจ๋ ์ ํ์ ์ค์ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ฒผ๋์ง ํ์ธํ์ต๋๋ค. ์ด ์์
์ ์๋ฃํ ํ ์๋ก์ด ํตํฉ์ด ์ฃผ์ด์ก๋๋ฐ ๊ทธ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Spring Bean์ ๋ด๋ณด๋ด์ผ ํ์ต๋๋ค. ์ด ์์ ์์ ์ ๋ Stack OverFlow ์น์ฌ์ดํธ์ ๋จ๊ณจ ๊ณ ๊ฐ์ด ๋์์ต๋๋ค. ํ๋ฒ์ ๊ณต์ Spring ๊ฐ๋ฐ์๊ฐ ์๋ตํ๊ธฐ๋ ํ์ต๋๋ค. ์ด ํตํฉ์ ๊ตฌํํ ํ ํ๊ฐํ ๊ธฐ๊ฐ์ด ์ข
๋ฃ๋์์ต๋๋ค. ์ฌ์ฅ๋๊ป์ ์์ต๊ธฐ๊ฐ ํต๊ณผ๋ฅผ ์ถํํด์ฃผ์
์ ์ด ๊ธ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์์ฑํ๋ ๋ฐ ์ด 8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.) ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด ๊ธ์ด ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ณ์ ์ด๋ฆ์ด ๋๋ฌด ์งง์ต๋๋ค.) CheckStyle์ ๋ฌผ๋ฆฌ์น ํ ์ ์ ๊ฐ๋ฐ์์๊ฒ ๊ฒํ ๋ฅผ ์ํด ์ฝ๋๋ฅผ ๋ณด๋๊ณ ์ผ์ฃผ์ผ ์ด๋ด์ ์ค์๋ฅผ ์์ ํ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ ํ์์ ๋ง์ ๊ฒ์ ์ค๋ช
ํด ์ค ๋ ๋ฒ์งธ ๊ฐ๋ฐ์์ ์ข์ ๊ด๊ณ๋ฅผ ๋งบ์ ๊ฒ์ ๋งค์ฐ ์ด์ด ์ข์์ต๋๋ค. ์ฅ์น๊ฐ ์ถ์๋ ์ง ํ ๋ฌ ํ, ํตํฉ ๊ธฐ๋ฅ ์คํ ๋์์ ์ฒซ ๋ฒ์งธ ํตํฉ์ด ์์๋์๊ณ (๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์
์ด ํจ๊ป ํ
์คํธ๋จ) ๋ชจ๋ ๊ฒ์ด ๊ทธ๊ณณ์์ ์๋ํ์ต๋๋ค! ์น๋ฆฌ! ๋ค์ ์์
์ json์์ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ์จ๊ธธ ์ ์๋ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์๋ฅผ ๋ค์ด json {text:"JavaRush"} -> ์ฒ๋ฆฌ -> {text:"****Rush"}๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ๋ณต์กํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. {text:{mytext:"JavaRush"}}๊ฐ ์ค์ฒฉ๋ ์ ์์ผ๋ฉฐ, ๋ ๋ถ์พํ ๊ฒ์ ๋ฐฐ์ด ๋ด๋ถ์ ์ค์ฒฉ๋๋ค๋ ๊ฒ์
๋๋ค: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (๋ฌผ๋ก text.mytext๋ฅผ ๋ชจ๋ ์จ๊ฒจ์ผ ํฉ๋๋ค). ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋นํ ์ด๋ ค์ ์ง๋ง ํด๋์ต๋๋ค! ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์ด ๊ฐ๋ฐ์ ํ
์คํธ๋ก ์ฒ๋ฆฌํ์ธ์. ๋์๋ ๋นํน๊ฐ์ด์์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ ํฌ์์ JUnit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋จ์ ํ
์คํธ์ ๋ณธ์ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฅผ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค(์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค). ๋๋ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด 11๊ฐ์ง ์ฌ๋ก๋ฅผ ์์ฑํ๋๋ฐ, ๊ทธ ์ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด NullPointException์ผ๋ก ์ถฉ๋ํ์ง ์์๋์ง, ๋ชจ๋ ์ ํ์ ์ค์ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ฒผ๋์ง ํ์ธํ์ต๋๋ค. ์ด ์์
์ ์๋ฃํ ํ ์๋ก์ด ํตํฉ์ด ์ฃผ์ด์ก๋๋ฐ ๊ทธ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Spring Bean์ ๋ด๋ณด๋ด์ผ ํ์ต๋๋ค. ์ด ์์ ์์ ์ ๋ Stack OverFlow ์น์ฌ์ดํธ์ ๋จ๊ณจ ๊ณ ๊ฐ์ด ๋์์ต๋๋ค. ํ๋ฒ์ ๊ณต์ Spring ๊ฐ๋ฐ์๊ฐ ์๋ตํ๊ธฐ๋ ํ์ต๋๋ค. ์ด ํตํฉ์ ๊ตฌํํ ํ ํ๊ฐํ ๊ธฐ๊ฐ์ด ์ข
๋ฃ๋์์ต๋๋ค. ์ฌ์ฅ๋๊ป์ ์์ต๊ธฐ๊ฐ ํต๊ณผ๋ฅผ ์ถํํด์ฃผ์
์ ์ด ๊ธ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์์ฑํ๋ ๋ฐ ์ด 8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.) ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด ๊ธ์ด ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ณ์ ์ด๋ฆ์ด ๋๋ฌด ์งง์ต๋๋ค.) CheckStyle์ ๋ฌผ๋ฆฌ์น ํ ์ ์ ๊ฐ๋ฐ์์๊ฒ ๊ฒํ ๋ฅผ ์ํด ์ฝ๋๋ฅผ ๋ณด๋๊ณ ์ผ์ฃผ์ผ ์ด๋ด์ ์ค์๋ฅผ ์์ ํ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ ํ์์ ๋ง์ ๊ฒ์ ์ค๋ช
ํด ์ค ๋ ๋ฒ์งธ ๊ฐ๋ฐ์์ ์ข์ ๊ด๊ณ๋ฅผ ๋งบ์ ๊ฒ์ ๋งค์ฐ ์ด์ด ์ข์์ต๋๋ค. ์ฅ์น๊ฐ ์ถ์๋ ์ง ํ ๋ฌ ํ, ํตํฉ ๊ธฐ๋ฅ ์คํ ๋์์ ์ฒซ ๋ฒ์งธ ํตํฉ์ด ์์๋์๊ณ (๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์
์ด ํจ๊ป ํ
์คํธ๋จ) ๋ชจ๋ ๊ฒ์ด ๊ทธ๊ณณ์์ ์๋ํ์ต๋๋ค! ์น๋ฆฌ! ๋ค์ ์์
์ json์์ ํค๋ก ๋ฐ์ดํฐ๋ฅผ ์จ๊ธธ ์ ์๋ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด์์ต๋๋ค. ์๋ฅผ ๋ค์ด json {text:"JavaRush"} -> ์ฒ๋ฆฌ -> {text:"****Rush"}๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ๋ณต์กํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. {text:{mytext:"JavaRush"}}๊ฐ ์ค์ฒฉ๋ ์ ์์ผ๋ฉฐ, ๋ ๋ถ์พํ ๊ฒ์ ๋ฐฐ์ด ๋ด๋ถ์ ์ค์ฒฉ๋๋ค๋ ๊ฒ์
๋๋ค: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (๋ฌผ๋ก text.mytext๋ฅผ ๋ชจ๋ ์จ๊ฒจ์ผ ํฉ๋๋ค). ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋นํ ์ด๋ ค์ ์ง๋ง ํด๋์ต๋๋ค! ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์ด ๊ฐ๋ฐ์ ํ
์คํธ๋ก ์ฒ๋ฆฌํ์ธ์. ๋์๋ ๋นํน๊ฐ์ด์์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ ํฌ์์ JUnit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋จ์ ํ
์คํธ์ ๋ณธ์ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฅผ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค(์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค). ๋๋ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด 11๊ฐ์ง ์ฌ๋ก๋ฅผ ์์ฑํ๋๋ฐ, ๊ทธ ์ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด NullPointException์ผ๋ก ์ถฉ๋ํ์ง ์์๋์ง, ๋ชจ๋ ์ ํ์ ์ค์ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ฒผ๋์ง ํ์ธํ์ต๋๋ค. ์ด ์์
์ ์๋ฃํ ํ ์๋ก์ด ํตํฉ์ด ์ฃผ์ด์ก๋๋ฐ ๊ทธ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Spring Bean์ ๋ด๋ณด๋ด์ผ ํ์ต๋๋ค. ์ด ์์ ์์ ์ ๋ Stack OverFlow ์น์ฌ์ดํธ์ ๋จ๊ณจ ๊ณ ๊ฐ์ด ๋์์ต๋๋ค. ํ๋ฒ์ ๊ณต์ Spring ๊ฐ๋ฐ์๊ฐ ์๋ตํ๊ธฐ๋ ํ์ต๋๋ค. ์ด ํตํฉ์ ๊ตฌํํ ํ ํ๊ฐํ ๊ธฐ๊ฐ์ด ์ข
๋ฃ๋์์ต๋๋ค. ์ฌ์ฅ๋๊ป์ ์์ต๊ธฐ๊ฐ ํต๊ณผ๋ฅผ ์ถํํด์ฃผ์
์ ์ด ๊ธ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์์ฑํ๋ ๋ฐ ์ด 8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.) ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด ๊ธ์ด ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋นํ ์ด๋ ค์ ์ง๋ง ํด๋์ต๋๋ค! ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์ด ๊ฐ๋ฐ์ ํ
์คํธ๋ก ์ฒ๋ฆฌํ์ธ์. ๋์๋ ๋นํน๊ฐ์ด์์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ ํฌ์์ JUnit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋จ์ ํ
์คํธ์ ๋ณธ์ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฅผ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค(์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค). ๋๋ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด 11๊ฐ์ง ์ฌ๋ก๋ฅผ ์์ฑํ๋๋ฐ, ๊ทธ ์ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด NullPointException์ผ๋ก ์ถฉ๋ํ์ง ์์๋์ง, ๋ชจ๋ ์ ํ์ ์ค์ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ฒผ๋์ง ํ์ธํ์ต๋๋ค. ์ด ์์
์ ์๋ฃํ ํ ์๋ก์ด ํตํฉ์ด ์ฃผ์ด์ก๋๋ฐ ๊ทธ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Spring Bean์ ๋ด๋ณด๋ด์ผ ํ์ต๋๋ค. ์ด ์์ ์์ ์ ๋ Stack OverFlow ์น์ฌ์ดํธ์ ๋จ๊ณจ ๊ณ ๊ฐ์ด ๋์์ต๋๋ค. ํ๋ฒ์ ๊ณต์ Spring ๊ฐ๋ฐ์๊ฐ ์๋ตํ๊ธฐ๋ ํ์ต๋๋ค. ์ด ํตํฉ์ ๊ตฌํํ ํ ํ๊ฐํ ๊ธฐ๊ฐ์ด ์ข
๋ฃ๋์์ต๋๋ค. ์ฌ์ฅ๋๊ป์ ์์ต๊ธฐ๊ฐ ํต๊ณผ๋ฅผ ์ถํํด์ฃผ์
์ ์ด ๊ธ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์์ฑํ๋ ๋ฐ ์ด 8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.) ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด ๊ธ์ด ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์๋นํ ์ด๋ ค์ ์ง๋ง ํด๋์ต๋๋ค! ๋ ๋ฒ์งธ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค. ์ด ๊ฐ๋ฐ์ ํ
์คํธ๋ก ์ฒ๋ฆฌํ์ธ์. ๋์๋ ๋นํน๊ฐ์ด์์์ต๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ ํฌ์์ JUnit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋จ์ ํ
์คํธ์ ๋ณธ์ง์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด๋ฅผ ๋ฉ์๋์ ์ ๋ฌํ๊ณ ์์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ์ ๋น๊ตํ๋ ๊ฒ์
๋๋ค(์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง ๋ณ์๋ฅผ ์์ฑํฉ๋๋ค). ๋๋ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด 11๊ฐ์ง ์ฌ๋ก๋ฅผ ์์ฑํ๋๋ฐ, ๊ทธ ์ค์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด NullPointException์ผ๋ก ์ถฉ๋ํ์ง ์์๋์ง, ๋ชจ๋ ์ ํ์ ์ค์ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์จ๊ฒผ๋์ง ํ์ธํ์ต๋๋ค. ์ด ์์
์ ์๋ฃํ ํ ์๋ก์ด ํตํฉ์ด ์ฃผ์ด์ก๋๋ฐ ๊ทธ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ Spring Bean์ ๋ด๋ณด๋ด์ผ ํ์ต๋๋ค. ์ด ์์ ์์ ์ ๋ Stack OverFlow ์น์ฌ์ดํธ์ ๋จ๊ณจ ๊ณ ๊ฐ์ด ๋์์ต๋๋ค. ํ๋ฒ์ ๊ณต์ Spring ๊ฐ๋ฐ์๊ฐ ์๋ตํ๊ธฐ๋ ํ์ต๋๋ค. ์ด ํตํฉ์ ๊ตฌํํ ํ ํ๊ฐํ ๊ธฐ๊ฐ์ด ์ข
๋ฃ๋์์ต๋๋ค. ์ฌ์ฅ๋๊ป์ ์์ต๊ธฐ๊ฐ ํต๊ณผ๋ฅผ ์ถํํด์ฃผ์
์ ์ด ๊ธ์ ์ฐ๊ธฐ ์์ํ์ต๋๋ค. ์ด ๊ธ์ ์์ฑํ๋ ๋ฐ ์ด 8์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.) ๊ด์ฌ์ ๊ฐ์ ธ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ์ด ๊ธ์ด ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
GO TO FULL VERSION