CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ. ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ. ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์•ˆ๋…•! ์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” Java ๊ฐœ๋ฐœ์ž์˜ ์„ฑ์žฅ ๊ฒฝ๋กœ์™€ ์ˆ˜์š”๊ฐ€ ์žˆ๊ธฐ ์œ„ํ•ด ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ.  ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ - 1์ธํ„ฐ๋ทฐ์—์„œ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋Š” ๊ตฌ์ง์ž๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ ๋งŒ๋‚œ ํŠน์ • ์ฃผ์ œ์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜๊ธฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ๊ฒƒ์„ ์•Œ์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ์ •์ƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์‚ฌ์‹ค๋„ ์ •์ƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  Java ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ดํ•ด๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ "๊ธฐ๋ณธ"์œผ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๊ฒƒ์„ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๊ธฐ๋ณธ ์•Œ๊ณ ๋ฆฌ์ฆ˜

Java๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ๋‹ค๋ฃจ์–ด์•ผ ํ•  ๊ฒƒ์€ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•Œ๊ณ ๋ฆฌ์ฆ˜. ๋ฌดํ•œํ•œ ์ˆ˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ์œผ๋ฉฐ ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐฐ์šฐ๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๋ฉด์„œ ํ‰์ƒ์„ ๋‚ญ๋น„ํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์€ ์œ ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. "Grokking Algorithms"๋ผ๋Š” ์ฑ…์—์„œ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์ง€์‹์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹œ์ž‘ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•˜์ง€๋งŒ ์›ํ•˜๋Š” ๊ฒฝ์šฐ Robert Sedgewick๊ณผ Kevin Wayne์ด ์ €์ˆ ํ•œ "Structures and Algorithms" ๋˜๋Š” "Algorithms in Java" ์ฑ…์—์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ปดํ“จํ„ฐ ๊ณผํ•™ ๊ธฐ์ดˆ์— ๋Œ€ํ•œ ์ง€์‹์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Harvard CS50 ์ฝ”์Šค๋กœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์ž๋ฐ” ๊ตฌ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ์ดˆ๋ฅผ ๋ฐฐ์šด ํ›„์—๋Š” Java ๊ตฌ๋ฌธ์„ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ, ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์—์„œ ๋ชจ๋‘ Java ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. CodeGym ๊ณผ์ •์€ ์ด์— ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด Java ๊ตฌ๋ฌธ์— ์†์„ ๋Œ€๊ฒŒ ๋˜๊ณ  ํฐ ๋ง์„ค์ž„ ์—†์ด Java ์ฝ”๋“œ๋ฅผ ๋ชจ๊ตญ์–ด์ฒ˜๋Ÿผ ์“ฐ๊ณ  ์ฝ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. CodeGym์€ ์‹ค์Šต์ด์ง€๋งŒ ๊ทธ ์ด์ƒ์œผ๋กœ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๋ฉด ์ด๋ก ๋„ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์ฑ…์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
  • "ํ—ค๋“œ ํผ์ŠคํŠธ ์ž๋ฐ”",
  • Barry Bird์˜ "Java for Dummies";
  • Herbert Schildt์˜ "Java: A Beginner's Guide".
์ด ์ฑ…์„ ์ฝ์€ ํ›„์— ๋” ์–ด๋ ค์šด ์ฑ…์œผ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • "Java๋กœ ์ƒ๊ฐํ•˜๊ธฐ", Bruce Eckel;
  • Joshua Bloch์˜ "Effective Java";
  • Herbert Schildt์˜ "Java: The Complete Reference".
๋งˆ์ง€๋ง‰ ์„ธ ๊ถŒ์˜ ์ฑ…์€ ์ดˆ๋ณด์ž๊ฐ€ ์ฝ๊ธฐ ์‰ฝ์ง€๋Š” ์•Š์ง€๋งŒ Java ์ด๋ก ์˜ ๊ฒฌ๊ณ ํ•œ ๊ธฐ์ดˆ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ CodeGym ๊ธฐ์‚ฌ๋ฅผ ์žŠ์ง€ ๋งˆ์„ธ์š”. ๊ด€์‹ฌ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ฃผ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์ฐฝ์— ๊ด€์‹ฌ ์žˆ๋Š” ์ฃผ์ œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ด€๋ จ ๊ธฐ์‚ฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ.  ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ - 2๋˜ํ•œ Java ์ธํ„ฐ๋ทฐ์—์„œ ์งˆ๋ฌธ์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๋ฐฐ์›Œ์•ผ ํ•˜๊ณ  ์–ด๋–ค ์งˆ๋ฌธ์„ ์ค€๋น„ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

3. ๋””์ž์ธ ํŒจํ„ด

๋””์ž์ธ ํŒจํ„ด์€ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํŠน์ • ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ž์กด์‹ฌ์ด ๊ฐ•ํ•œ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•Œ์•„์•ผ ํ•  ๊ธฐ๋ณธ์ ์ด๊ณ  ๊ฐ„๋‹จํ•œ ํŒจํ„ด์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด "Head First Design Patterns"๋ผ๋Š” ์ฑ…์„ ์ฝ์œผ์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ ๋””์ž์ธ ํŒจํ„ด์„ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ฑ…์€ ์ž๋ฐ”์— ๋Œ€ํ•ด ๋งŽ์ด ์ด์•ผ๊ธฐํ•˜๋ฏ€๋กœ ์ด ์ฑ…์„ ์ฝ์„ ๋•Œ ์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ์œ ์ฐฝํ•จ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ„ด์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด Gang of Four(ํŽธ์ง‘์ž ์ฃผ : The Gang of Four๋Š” Erich Gamma, Richard Helm, Ralph๋ฅผ ํฌํ•จํ•˜๋Š” ์ €์ž ํŒ€์ž…๋‹ˆ๋‹ค. ์กด์Šจ, ์กด ๋ธ”๋ฆฌ์‹œ๋ฐ์Šค.). ์ด ํ•ญ๋ชฉ์„ ๊ณต๋ถ€ํ•˜๊ณ  ๋‚˜๋ฉด ์ฝ”๋“œ์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ ํŒจํ„ด์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ธ๊ธฐ ์žˆ๋Š” ์ธํ„ฐ๋ทฐ ์งˆ๋ฌธ์ด๋ฏ€๋กœ ํŠนํžˆ Spring์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŒจํ„ด์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด์‹ญ์‹œ์˜ค.

4. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„. ์ฝ”๋“œ ์ฒญ๊ฒฐ

ํ‘œ์ค€ ๋””์ž์ธ ํŒจํ„ด ์™ธ์—๋„ ์•Œ์•„์•ผ ํ•  ๋‹ค์–‘ํ•œ ์›์น™๊ณผ ํŒจ๋Ÿฌ๋‹ค์ž„( SOLID , GRASP )์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฝ”๋“œ๋ฅผ ๊นจ๋—ํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ ๋ณด๋ ค๋ฉด ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. Robert Martin์˜ Clean Code๋ฅผ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ Steve McConnell์˜ "Code Complete"๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

5. SQL

๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์šฉ ์–ธ์–ด์ธ SQL์„ ์—ฐ๊ตฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค . ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ •๋ณด(๋ฐ์ดํ„ฐ)๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค(์ „ํ™”๊ธฐ์˜ ์ฃผ์†Œ๋ก์ด ๊ฐ„๋‹จํ•œ ์˜ˆ์ž„). Java ๊ฐœ๋ฐœ์ž๋Š” Java ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์œ„์น˜์— ๋Œ€ํ•ด์„œ๋„ ์ฑ…์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์œ ํ˜•)์—์„œ ๋ชจ๋“  ์ƒํ˜ธ ์ž‘์šฉ์€ SQL(Structured Query Language)์ด๋ผ๋Š” ํŠน์ˆ˜ ์–ธ์–ด๋ฅผ ํ†ตํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ฑ… ์ค‘ ํ•˜๋‚˜๋ฅผ ์ฝ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • Alan Beaulieu์˜ "Learning SQL";
  • Chris Fehily์˜ "SQL";
  • Lynn Beighley์˜ "ํ—ค๋“œ ํผ์ŠคํŠธ SQL".
ํ•˜์ง€๋งŒ ์ด๋ก  ์—†๋Š” ์—ฐ์Šต์€ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ฃ ? ๊ทธ๋ฆฌ๊ณ  ์ธํ„ฐ๋ทฐ์—์„œ SQL์— ๋Œ€ํ•œ ์ง€์‹ ํ…Œ์ŠคํŠธ๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉด์ ‘๊ด€์€ ์ข…์ข…(๊ฑฐ์˜ ํ•ญ์ƒ) SQL ์ฟผ๋ฆฌ ์ž‘์„ฑ๊ณผ ๊ด€๋ จ๋œ ํ•œ๋‘ ๊ฐ€์ง€ ์ž‘์—…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹ค์šฉ์ ์ธ SQL ๊ธฐ์ˆ ์„ ์—ฐ๋งˆํ•˜์—ฌ ์ž์‹ ์„ ์ข‹์€ ์‹œ๊ฐ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

6. MySQL/ํฌ์ŠคํŠธ๊ทธ๋ ˆSQL

SQL ์–ธ์–ด๋ฅผ ๋ฐฐ์šด ํ›„์—๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌํ˜„์— ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋”ฐ๋ผ ์ผ๋ถ€ ๋ช…๋ น์€ ํฌ๊ฒŒ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋Šฅ์—๋Š” ์ƒ๋‹นํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” MySQL ๋ฐ PostgreSQL ์ž…๋‹ˆ๋‹ค . Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ.  ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ - 3MySQL์€ ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜์ง€๋งŒ PostgreSQL์—๋Š” ํ›จ์”ฌ ๋” ๊ด‘๋ฒ”์œ„ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ๊ทธ๋“ค ์ค‘ ํ•˜๋‚˜์— ์ต์ˆ™ํ•ด์ง€๋ฉด ์‹œ์ž‘ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌํ˜„์„ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. YouTube์—์„œ ๊ด€๋ จ ๊ธฐ์‚ฌ์™€ ์ž์Šต์„œ๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”. ๋‹ต๋ณ€์ด ํ•„์š”ํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๋ฐฐ์–‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์—์„œ ๋ธ”๋ž™ ๋ฒจํŠธ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค.

7. ๋ฉ”์ด๋ธ/๊ทธ๋ž˜๋“ค

Gradle ๋˜๋Š” Maven ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ, ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ Java๋Š” ์ด์ œ ๋ช‡ ๊ฐ€์ง€ ํด๋ž˜์Šค์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ์œ„ํ•œ ๊ฒƒ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ณธ๊ฒฉ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•, ๋นŒ๋“œ ๋‹จ๊ณ„๊ฐ€ ๋ฌด์—‡์ธ์ง€, ํƒ€์‚ฌ ์ฝ”๋“œ๋กœ ํ•„์š”ํ•œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Gradle์ด ๋” ์ƒˆ๋กญ๊ณ  ๊ฐ„๊ฒฐํ•˜๋‹ค๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ Maven์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Maven ๋นŒ๋“œ ์ˆ˜๋ช… ์ฃผ๊ธฐ์— ํŠน๋ณ„ํ•œ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

8. ํž˜๋‚ด

Git์€ ๋ถ„์‚ฐ ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋กœ ๊ฐ„์„ญํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ณต๋™ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋‹ค๋ฅธ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Subversion . ๊ทธ๋Ÿฌ๋‚˜ Git์€ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋ฉฐ Git์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ.  ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ - 4์˜จ๋ผ์ธ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” Git์— ๋Œ€ํ•œ ๋งŽ์€ ๊ธฐ์‚ฌ ์™ธ์—๋„ YouTube์—๋Š” ์ด ๊ธฐ์ˆ ์„ ๋‹จ๊ณ„๋ณ„๋กœ ๋งˆ์Šคํ„ฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ถฉ๋ถ„ํ•œ ๋™์˜์ƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ผ์ข…์˜ GUI ๊ตฌํ˜„๋ณด๋‹ค ๋ช…๋ น์ค„์—์„œ Git์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ž‘์—…์„ ๋ช…๋ น์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐ๋ทฐ์—์„œ ์‚ฌ๋žŒ๋“ค์€ ์ข…์ข… ๋ช‡ ๊ฐ€์ง€ Git ๋ช…๋ น์— ๋Œ€ํ•ด ๋ฌป๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜๋ฏ€๋กœ ์ž‘์„ฑํ•˜์—ฌ ๊ฐ€๊นŒ์šด ๊ณณ์— ๋‘๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ธํ„ฐ๋ทฐ ์ „์— ํ›‘์–ด๋ณด๊ณ  ๊ธฐ์–ต์„ ๋˜์‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜๋ฉด์„œ ๋ฉ”๋ชจํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

9. ์ œ์ด๋””๋น„์”จ

์ด ๊ธฐ์ˆ ์€ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์‚ฌํ•ญ์€ JDBC ์ž์Šต์„œ๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ Naked JDBC๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์€ ์•„๋ฌด๋„ ์—†์ง€๋งŒ JDBC๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ๊ธฐ์ดˆ์ ์ธ ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋งŽ์€ ๊ธฐ์‚ฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

10. JPA. ์ตœ๋Œ€ ์ ˆ์ „ ๋ชจ๋“œ

JPA๋Š” JDBC์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— JPA๋Š” ๋” ๋†’์€ ์ˆ˜์ค€์˜ ๊ธฐ์ˆ ์ด๋ฏ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ JPA๋Š” ๊ตฌํ˜„์ด ์•„๋‹ˆ๋ผ ์‚ฌ์–‘์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์ธ ์‹ค์ฒœ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค ์ค‘ ๋งŽ์€ ์ˆ˜๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ JPA ์ด์ƒ์— ๊ฐ€์žฅ ๊ฐ€๊น๊ณ  ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๊ณ  ๊ฐ€์žฅ ๋ฐœ์ „๋œ ๊ฒƒ์€ Hibernate์ž…๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ฒฝ๋ ฅ์—์„œ ์ด ๊ธฐ์ˆ ์„ ๋‘ ๋ฒˆ ์ด์ƒ ์ ‘ํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์‚ฌ๋ฅผ ์ฝ์Œ์œผ๋กœ์จ ์ด ๊ธฐ์ˆ ์— ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ ์™ธ์—๋„ "Java Persistence API"์™€ ๊ฐ™์€ ์ฑ…์„ ์ฝ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

11. ๋ด„

Java ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋ฉด Spring์€ ๋” ์ด์ƒ ๋‹น์‹ ์„ ์œ„ํ•œ ๋‹จ์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ.  ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ - 5์ด์ œ ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์•„๋Š” ๊ฒƒ์ด Java ๊ตฌ๋ฌธ์„ ์•„๋Š” ๊ฒƒ๋งŒํผ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Spring์—๋Š” Java EE์™€ ๊ฐ™์€ ํ˜•์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Java EE๋Š” ๊ตฌ์‹์ด๋ฉฐ ์ƒˆ ํ”„๋กœ์ ํŠธ์—์„œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๋‹ค์ˆ˜์˜ Java ๊ฐœ๋ฐœ์ž๋Š” ์ด์ œ Java-Spring ๊ฐœ๋ฐœ์ž์ด๋ฏ€๋กœ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ Spring ๊ธฐ์ˆ ์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. Spring์€ ๋‹จ์ˆœํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹ˆ๋ผ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ „์ฒด ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ.  ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ - 6๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ Spring์ด ์ œ๊ณตํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ดˆ๋ณด์ž์˜ ๊ฒฝ์šฐ ๋ช‡ ๊ฐ€์ง€๋งŒ ์•Œ๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

  • ์Šคํ”„๋ง ์ฝ”์–ด

์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ, ๋นˆ, DI, IoC ๋“ฑ์— ๊ด€ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋จผ์ € ์ด๊ฒƒ์„ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งํ•˜์ž๋ฉด Spring ์‚ฌ์šฉ์˜ ์ฒ ํ•™์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Spring ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์—ฐ๊ตฌ๋Š” ์ด ๊ธฐ๋ฐ˜ ์œ„์— ๊ตฌ์ถ•๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ ๋ฐฐ์šด ๋ชจ๋“  ๊ธฐ์ˆ ์„ ์ ์ง„์ ์œผ๋กœ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์Šคํ”„๋ง JDBC

์•ž์„œ ์šฐ๋ฆฌ๋Š” JDBC๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ์ˆ ๋กœ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๊ธฐ์ˆ ์˜ "์ ๋‚˜๋ผํ•œ" ์‚ฌ์šฉ์€ ๋” ์ด์ƒ ํ”„๋กœ์ ํŠธ์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ JDBC ํ•™์Šต์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ฌ๋ฐ”๋ฅธ ํƒœ๋„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. JDBC์˜ ๋„ค์ดํ‚ค๋“œ(์ง์ ‘) ์‚ฌ์šฉ์„ ํƒ์ƒ‰ํ•˜๋ฉด ๋‚ฎ์€ ์ˆ˜์ค€์—์„œ ๊ธฐ์ˆ ์„ ๋ณด๊ณ  ๋ฌธ์ œ์™€ ๋‹จ์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ Spring JDBC ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋ฉด ์ด ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๊ฐœ์„ ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๊ณ  ์ˆจ๊ธฐ๋Š”์ง€ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ๋ด„ ๋™๋ฉด

๊ธฐ๋ณธ JDBC์˜ ์ƒํ™ฉ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ธฐ์กด ๊ธฐ์ˆ (์ด ๊ฒฝ์šฐ Hibernate)์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. Spring ์—†์ด Hibernate๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•œ๋‹ค๋ฉด Spring Hibernate๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ด์ ์„ ๋ถ„๋ช…ํžˆ ๊นจ๋‹ซ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์Šคํ”„๋ง JPA

์ด์ „์— ์šฐ๋ฆฌ๋Š” JPA์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ๊ณ  ๋‹ค์–‘ํ•œ ๊ตฌํ˜„์ด ์žˆ์ง€๋งŒ ์‚ฌ์–‘์ผ ๋ฟ์ด๋ผ๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌํ˜„ ์ค‘์—์„œ Hibernate๋Š” ์ด์ƒ์— ๊ฐ€์žฅ ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. Spring์€ ๋‚ด๋ถ€์ ์œผ๋กœ Hibernate๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์ƒ์ ์ธ JPA ๊ตฌํ˜„์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. JPA ์‚ฌ์–‘์˜ ์ด์ƒ์— ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง JPA๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๋งˆ๋””๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. JDBC, Hibernate, Spring JDBC ๋˜๋Š” Spring Hibernate๋ฅผ ๋ฐฐ์šฐ์ง€ ์•Š๊ณ  JPA๋งŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์‹์ด ๋งค์šฐ ํ”ผ์ƒ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์Šคํ”„๋ง MVC

์ด ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋‚˜๋จธ์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ํ†ต์‹ ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ๋””์Šคํ”Œ๋ ˆ์ด ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ๊ณ  RESTful ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋””์Šคํ”Œ๋ ˆ์ด ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Spring์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋” ์ž˜ ํก์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์‚ฌ ๋ฐ YouTube ๊ฐ•์˜ ์™ธ์—๋„ ์—ฌ๋Ÿฌ ์ฑ…์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Craig Walls์˜ "Spring in Action"์ด๋ผ๋Š” ์ฑ…์„ ์ •๋ง ์ข‹์•„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜์–ด๋ฅผ ์ž˜ ์•„์‹œ๋Š” ๋ถ„์€ 6ํŒ์„ ์ฝ์–ด๋ณด์‹œ๊ธธ ๊ถŒํ•ฉ๋‹ˆ๋‹ค. Spring์— ๊ด€ํ•œ ๋˜ ๋‹ค๋ฅธ ํ›Œ๋ฅญํ•œ ์ฑ…์€ "์ „๋ฌธ๊ฐ€๋ฅผ ์œ„ํ•œ Spring 5"์ž…๋‹ˆ๋‹ค. ๋” ์กฐ๋ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ฝ๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฐ€๊นŒ์ด์— ๋‘๋Š” ๊ฒƒ์ด ๋” ๊ฐ€์น˜ ์žˆ๋Š” ์ฐธ๊ณ  ์ž๋ฃŒ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ.  ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ - 7

  • ์Šคํ”„๋ง ๋ถ€ํŠธ

์ด ๊ธฐ์ˆ ์€ Spring ์‚ฌ์šฉ์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋ณ€๋•์Šค๋Ÿฝ๊ฒŒ ๋ชฉ๋ก์˜ ๋์— ๋„ฃ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ๊ทธ๊ฒƒ์€ ํ›„๋“œ ์•„๋ž˜์— ๋งŽ์€ ๊ฒƒ์„ ์ˆจ๊ธฐ๊ณ  ์žˆ์œผ๋ฉฐ ๋ฐ”๋‹๋ผ ์Šคํ”„๋ง์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ๋งŽ์€ ์ ์ด ๋ถˆ๋ถ„๋ช…ํ•˜๊ฑฐ๋‚˜ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € Spring ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ๋” ์ž˜ ์ดํ•ดํ•˜๋ ค๋ฉด ์ผ๋ฐ˜ Spring์„ ์‚ฌ์šฉํ•œ ๋‹ค์Œ Spring Boot ์‚ฌ์šฉ์˜ ๋” ๋†’์€ ์ด์ ์„ ๋ชจ๋‘ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Spring Security ๋ฐ Spring AOP์— ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ„์˜ ๊ธฐ์ˆ ๊ณผ ๋‹ฌ๋ฆฌ ์ด ๋‘ ๊ฐ€์ง€์— ๋Œ€ํ•œ ๊นŠ์€ ์ง€์‹์€ ์•„์ง ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ฉด์ ‘์—์„œ ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ทธ๋“ค์— ๋Œ€ํ•ด ๋ฌป์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค(์•„๋งˆ๋„ ํ•˜๋‚˜์˜ ํ”ผ์ƒ์ ์ธ ์งˆ๋ฌธ์„ ์ œ์™ธํ•˜๊ณ ). ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์ด ๋ฌด์—‡์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ž‘์—…์˜ ์›๋ฆฌ์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ์ฝ์œผ์‹ญ์‹œ์˜ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ๋‚˜๋Š” ์ฑ… ์ฝ๊ธฐ์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๋ฒˆ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œํŽธ์œผ๋กœ ์ด๊ฒƒ์€ ์˜๋ฌด ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ฑ… ํ•œ ๊ถŒ๋„ ์ฝ์ง€ ์•Š๊ณ ๋„ ์˜จ๋ผ์ธ ๊ธฐ์‚ฌ์™€ ๊ต์œก ๋น„๋””์˜ค์—์„œ ํ•„์š”ํ•œ ๋ชจ๋“  ์ง€์‹์„ ์Šต๋“ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œํŽธ, ์ทจ์—… ์‹œ์žฅ์—์„œ๋Š” ํ˜„์žฌ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž ๊ฐ„์˜ ๊ฒฝ์Ÿ์ด ์น˜์—ดํ•˜์—ฌ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ธฐ์ค€์ด ๋†’์•„์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋” ๋งŽ์ด ์•Œ์ˆ˜๋ก ๋ฉด์ ‘๊ด€์—๊ฒŒ ๋‹น์‹ ์˜ ์ง€์‹ ์ˆ˜์ค€์„ ๋ณด์—ฌ์คŒ์œผ๋กœ์จ ์ฒซ ์ง์žฅ์„ ๋” ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Java๊ฐ€ ํ•จ๊ป˜ํ•˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ดˆ๋ณด์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ค€์„ ๋†’์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋” ๋งŽ์ด ์•Œ์ˆ˜๋ก ๋ฉด์ ‘๊ด€์—๊ฒŒ ๋‹น์‹ ์˜ ์ง€์‹ ์ˆ˜์ค€์„ ๋ณด์—ฌ์คŒ์œผ๋กœ์จ ์ฒซ ์ง์žฅ์„ ๋” ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Java๊ฐ€ ํ•จ๊ป˜ํ•˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ดˆ๋ณด์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ค€์„ ๋†’์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋” ๋งŽ์ด ์•Œ์ˆ˜๋ก ๋ฉด์ ‘๊ด€์—๊ฒŒ ๋‹น์‹ ์˜ ์ง€์‹ ์ˆ˜์ค€์„ ๋ณด์—ฌ์คŒ์œผ๋กœ์จ ์ฒซ ์ง์žฅ์„ ๋” ๋นจ๋ฆฌ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. Java๊ฐ€ ํ•จ๊ป˜ํ•˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž์˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ.  ๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ - 8
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION