JavaRush /Java Blog /Random-KO /Java ๊ฒฝํ—˜ ์—†์ด ์ค‘๊ฐ„ Java ๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—…ํ•˜๋Š” ๋น„๊ฒฐ ๋˜๋Š” ๋ฐฉ๋ฒ•
ะฎั€ะธะน
๋ ˆ๋ฒจ 30
ะœะพัะบะฒะฐ

Java ๊ฒฝํ—˜ ์—†์ด ์ค‘๊ฐ„ Java ๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—…ํ•˜๋Š” ๋น„๊ฒฐ ๋˜๋Š” ๋ฐฉ๋ฒ•

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
๋ชจ๋“  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์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.) ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION