์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

[Java ์‹ค๋ฌด ํ”„๋กœ์ ํŠธ ์ž…๋ฌธํŽธ] ๊ฐ์ฒด์ง€ํ–ฅ ์‚ฌ๊ณ ๋ ฅ ํ›ˆ๋ จ - ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ 3์ข… ์‹ค์Šต

์ž‘์€ ํ”„๋กœ์ ํŠธ๋ถ€ํ„ฐ ๊ตฌ์กฐ ์žก๋Š” ์—ฐ์Šต๊นŒ์ง€! Java ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์™€ ์‹ค์Šต ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•œ ๋ถ„๋“ค์„ ์œ„ํ•œ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด๋ฉฐ ์„ฑ์žฅํ•˜๋Š” ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ์‹ค์ „ ์ž…๋ฌธ ๊ฐ•์˜. ๊ธฐ๋ณธ๊ธฐ์—์„œ ๊ตฌ์กฐ์  ์‚ฌ๊ณ ๊นŒ์ง€, Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๊ตฌํ˜„ํ•ด๋ณด๋ฉฐ ์‹ค๋ ฅ์„ ํ‚ค์›Œ๋ณด์„ธ์š”.

(5.0) ์ˆ˜๊ฐ•ํ‰ 5๊ฐœ

์ˆ˜๊ฐ•์ƒ 64๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
๋ฐฑ์—”๋“œ
๋ฐฑ์—”๋“œ
์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
๋ฐฑ์—”๋“œ
๋ฐฑ์—”๋“œ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

5.0

5.0

Kevin

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ˆ˜๊ฐ•์ƒ ์—ฌ๋Ÿฌ๋ถ„ ์•ˆ๋…•ํ•˜์„ธ์š”! ์ด๋ฒˆ ๊ฐ•์˜๋„ ์ œ๊ฐ€ ์ œ์ผ ๋จผ์ € ์ˆ˜๊ฐ•ํ‰์„ ๋‚จ๊ธฐ๊ฒŒ ๋˜์—ˆ๋„ค์š”. ^^; ํŒ”์€ ์•ˆ์œผ๋กœ ๊ตฝ๋Š”๋‹ค๊ณ  ์ผ๋‹จ ์ € ๋‚˜๋ฆ„๋Œ€๋กœ ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•ด์„œ ๋งŒ๋“  ๊ฐ•์˜์ด๋‹ˆ๊นŒ ์ด๋ฒˆ์—” ๋ณ„ 5๊ฐœ ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. ^^ ์•„์ง ์ž˜ ์•Œ๋ ค์ง€์ง€๋Š” ์•Š์•˜์ง€๋งŒ ์ด๋ฒˆ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ์‹œ๋ฆฌ์ฆˆ ๊ฐ•์˜๋Š” ์ˆ˜๊ฐ•์ƒ๋“ค์—๊ฒŒ ์–ด๋А ์ •๋„ ๊ดœ์ฐฎ์€ Java ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—… ์ „์„ ์˜ ๋ฌธํ„ฑ์„ ๋„˜์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ˆจ๊ฒจ์ง„ ๋‚ด๊ณต์„ ๋“œ๋ฆด ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋‹น์—ฐํžˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆดํ…Œ๊ณ , ์ง์ ‘ ์ƒ๊ฐํ•˜๊ณ  ํƒ€์ดํ•‘์„ ํ•˜์…”์„œ ์ฝ”๋“œ๋ฅผ ์งœ ๋ณด์…”์•ผํ•ฉ๋‹ˆ๋‹ค. ์•”๊ธฐ๋ณด๋‹ค๋Š” `์‚ฌ๊ณ  + ์‹ค์ฒœ + ๋ฐ˜๋ณต + ์‘์šฉ`์ด ๋˜์–ด์•ผ ์ข‹์€ ๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—… ์ „์„ ์—์„œ ์Šน๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”. ํž˜์ด ๋“œ์‹œ๊ฒ ์ง€๋งŒ ์ด๋ฒˆ ๊ฐ•์˜๋ฅผ ๋งˆ์ง€๋ง‰๊นŒ์ง€ ์ž˜ ๋๋‚ด์‹œ๊ณ  ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ๊ตฌํ˜„ ๋Šฅ๋ ฅ์ด ํ•œ ๋‹จ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜๊ธธ ๋ฉ€๋ฆฌ์„œ ๊ธฐ์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ฐ•์˜์—์„œ ๋ต๊ฒŒ์š”. ํ™”์ดํŒ…์ž…๋‹ˆ๋‹ค!

5.0

ํ™ํƒœ๊ฒฝ

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

[ํ•ด๋‹น ๊ฐ•์˜์— ๊ธ์ •์ ์ธ ๋ฉด] ์Šคํ”„๋ง ํ˜น์€ ๋‹ค๋ฅธ ์ž๋ฐ” ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ  ์Šคํƒ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „ ๋ณธ์ธ์˜ ์ž๋ฐ” ๋ฌธ๋ฒ•์—์„œ ์–ด๋””๊ฐ€ ๋ถ€์กฑํ•œ์ง€์— ๋Œ€ํ•ด ์ž๊ฐ€์ง„๋‹จ ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์ง€ํ‘œ๊ฐ€ ๋˜๋Š” ๊ฐ•์˜ ์˜€์Šต๋‹ˆ๋‹ค ํ˜•ํŽธ์—†๋Š” ์ €๋Š” ์ž๋ฐ” ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์‹œ ๋‹ค๋“ฌ์€ ํ›„ ์ด๊ฐ•์˜๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์žฌ์ˆ˜๊ฐ• ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค [๊ฐ•์˜์ˆ˜์ค€] ์ €๋ฅผ ํฌํ•จํ•ด์„œ ์ž๋ฐ”8, ์ต๋ช…ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๋‹คํ˜•์„ฑ๋“ฑ ์ „๋ฐ˜์ ์ธ ์ž๋ฐ” ๊ธฐ๋ณธ๊ธฐ๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด ์‰ฝ์ง€ ์•Š์€ ๊ฐ•์˜ ๊ฐ™์Šต๋‹ˆ๋‹ค ์ž๋ฐ” ์ž…๋ฌธ์ด๋ผ๋Š” ํƒ€์ดํ‹€๋กœ ๋ง‰์ƒ ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋ณด์•˜์„๋•Œ ์ตœ์ƒ๋‹จ์— ๊ฐ์ฒด์ง€ํ–ฅ, ์ž๋ฐ”8์ด ์ตœ ์ƒ๋‹จ์— ์žˆ๋Š”๊ฑฐ ๋ณด๊ณ  ์–ด? ๋‚œ ์ž…๋ฌธ ๋–ผ๋ ค๋ฉด ๋ช‡ ๋…„ ๋” ๊ฑธ๋ฆฌ๊ฒ ๋Š”๋ฐ??.. ํ•˜๋ฉฐ ๊ตฌ๋งค๋ฅผ ๊ณ ๋ ค ํ–ˆ์œผ๋‹ˆ๊นŒ์š” [๊ฐœ์ธ์ ์ธ ๋ฐ”๋žจ] ๊ฐœ์ธ์ ์ธ ๋ฐ”๋žจ์œผ๋กœ๋Š”, ์ง€๊ธˆ๋„ ๋„ˆ๋ฌด ํ›Œ๋ฅญํ•˜์ง€๋งŒ ๋‹จ๊ณ„๋ณ„๋กœ ๋” ๋‹ค์–‘ํ•œ ๊ฐ•์˜๋“ค์ด ์žˆ์—ˆ์Œ ์ข‹์„๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค ๋นฝ์—”๋“œ ์›น ๊ฐœ๋ฐœ ๊ตญ๋น„ ํ˜น์€, ๋ถ€ํŠธ์บ ํ”„ ์ˆ˜๋ฃŒ ํ›„ ์Šคํ”„๋ง์œผ๋กœ ์›น ํŽ˜์ด์ง€๋Š” ๋งŒ๋“ค์—ˆ์ง€๋งŒ, ์ •์ž‘ ํž™์˜์—ญ์ด ๋ญ”์ง€, ๋ฉ”์†Œ๋“œ ์˜์—ญ์ด ๋ญ”์ง€, ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํž™์˜์—ญ์— ์ฐธ์กฐ๊ฐ’์ด ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ด๋Ÿฐ ์ž๋ฐ” ๊ธฐ๋ณธ๊ธฐ๋Š” ์•ฝํ•˜์ง€ ์•Š๋‚˜ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ์ •๋ง ์ฐ ์ž๋ฐ” ์ž…๋ฌธ ๊ฐ•์˜๋กœ ์ž๋ฐ”8, ๋‚ด๋ถ€ํด๋ž˜์Šค, ์ต๋ช…, ์ž๋ฐ”8 ์ด๋Ÿฐ ์ฝ”๋“œ ์ค„์ด๋Š”๊ฑด ํ•ด๋‹น ๊ฐ•์˜๋„ ์ถฉ๋ถ„ํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค, ๊ตฌํ˜„ ํด๋ž˜์Šค, ๋ฉ”์ธ ํ•จ์ˆ˜ ๋“ฑ ์ฝ”๋“œ์ˆ˜ ๋Š” ๊ธธ์ง€๋งŒ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ฝƒ์ธ ๋‹คํ˜•์„ฑ, ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์ด ๋‹ค์ˆ˜ ์žˆ๋Š” ๊ฐ•์˜๊ฐ€ ๋ก ์นญ๋˜๋ฉด ๋‹ค์ˆ˜์˜ ์ž๋ฐ” ์ž…๋ฌธ์ž ๋ถ„๋“ค์ด ๊ตฌ๋งคํ•˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•ด๋ด…๋‹ˆ๋‹ค ์ €๋Š” ์ง€๊ธˆ๋„ stream api๋ฅผ ๋ณต์Šต ํ•˜์ง€๋งŒ ์•„์ง๋„ ์ธํ„ฐํŽ˜์ด์Šค , ๊ตฌํ˜„์ฒด ์„ ํ•œ ํด๋ž˜์Šค์— ๋‹ด๋Š”๊ฑฐ ์ž์ฒด๊ฐ€ ๋„ˆ๋ฌด ํ˜ผ๋ž€์ด ์˜ค๊ณ  ์ ์‘์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ใ… ใ…  ๋‚ด๋…„์— ์กฐ๊ธˆ ๋” ๊ธฐ๋ณธ๊ธฐ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ด ์กฐ์ฐจ๋„ ์ ์‘์ด ๋˜๊ฒ ์ฃ ? ใ… 

5.0

doomco

8% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ƒˆ๋กœ์šดํ˜•ํƒœ์˜ ์ž๋ฐ”๊ฐ•์˜ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ์ž์‹ ๊ฐ

  • ์ง€๋ฃจํ–ˆ๋˜ Java์— ๋Œ€ํ•œ ์ฆ๊ฑฐ์›€

  • ์ œ๋Œ€๋กœ ๋œ Java ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์ž…๋ฌธํ•˜๊ธฐ ์œ„ํ•œ ์‹œ์ž‘ ์œ„์น˜

  • Java์˜ Stream API์˜ ํ™œ์šฉ๋ฒ•

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์–ด๋””์„œ๋ถ€ํ„ฐ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•

  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ํ•„์š”์„ฑ

  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์–ด๋””์„œ๋ถ€ํ„ฐ ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•

  • ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ถ„์„ํ•˜๋Š” ์—ฐ์Šต

  • ์œ ํšจ์„ฑ ๊ฒ€์ฆ์˜ ์ค‘์š”์„ฑ๊ณผ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์„ ์‹ค์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ๋„๋ฉ”์ธ ๊ทœ์น™์˜ ์ค‘์š”์„ฑ๊ณผ ๋„๋ฉ”์ธ ๊ทœ์น™์„ ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•˜๋Š” ์—ฐ์Šต

  • ๋„๋ฉ”์ธ ๊ทœ์น™์„ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜๋Š” ์—ฐ์Šต

  • Java์˜ Exception์„ ํ™œ์šฉํ•œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋ฐฉ๋ฒ•

  • Custom Exception์„ ํ™œ์šฉํ•˜๋Š” ์—ฐ์Šต

  • Layered Architecture์˜ ๊ฐœ๋…๊ณผ ์ ์šฉ ๋ฐฉ๋ฒ•

  • Generic ํ™œ์šฉ ๋ฐฉ๋ฒ•

  • DIP์˜ ๊ฐœ๋…๊ณผ DIP๊ฐ€ ํ•„์š”ํ•œ ์ด์œ , ์ ์šฉ ์‚ฌ๋ก€

  • Google Tasks API์˜ ํ™œ์šฉ ๋ฐฉ๋ฒ•

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š”

Java ๋ฌธ๋ฒ•์€ ๋ฐฐ์› ์ง€๋งŒ, ์‹ค์ œ๋กœ ์–ด๋””์„œ๋ถ€ํ„ฐ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๋Š” ๋ถ„

Java ํ”„๋กœ์ ํŠธ ์‹ค์Šต ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•œ ๋ถ„

Spring์„ ๋ฐฐ์šฐ๊ธด ํ–ˆ์ง€๋งŒ, Java ๊ธฐ๋ณธ๊ธฐ๊ฐ€ ์•ฝํ•ด ํ”„๋กœ์ ํŠธ์—์„œ ์ขŒ์ ˆํ–ˆ๋˜ ๋ถ„

๐Ÿ“Œ ์ˆ˜๊ฐ• ์ „ vs ์ˆ˜๊ฐ• ํ›„, ์ด๋ ‡๊ฒŒ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค!

๐Ÿ”ธ "์š”๊ตฌ์‚ฌํ•ญ์„ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๊ธฐ ์–ด๋ ค์› ์–ด์š”"

โ†’ ๊ธฐ๋Šฅ์„ ๋‚˜๋ˆ„๊ณ  ํด๋ž˜์Šค๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

๐Ÿ”ธ "๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„๊ฐ€ ๋ง‰๋ง‰ํ•ด์š”"

โ†’ OOP ์‚ฌ๊ณ ๋กœ ๊ตฌ์กฐํ™”๋œ ์ฝ”๋“œ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค

๐Ÿ”ธ "ํ”„๋กœ์ ํŠธ ์‹ค์Šต ๊ฒฝํ—˜์ด ๋ถ€์กฑํ–ˆ์–ด์š”"

โ†’ 3๊ฐ€์ง€ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ์™„์„ฑ์œผ๋กœ ์‹ค์ „ ๊ฐ๊ฐ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค

๐Ÿ”ธ "๊ทธ๋ƒฅ ๋ˆˆ์œผ๋กœ๋งŒ ๋ฐฐ์šฐ๊ณ  ์žˆ์—ˆ์–ด์š”"

โ†’ ๋ถ„์„ โ†’ ์„ค๊ณ„ โ†’ ๊ตฌํ˜„ โ†’ ํ…Œ์ŠคํŠธ ์ „ ๊ณผ์ •์„ ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

๐Ÿ’ก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„์ด ์•ˆ๋˜๋Š” ๋ถ„๋“ค์„ ์œ„ํ•œ ์•„์ฃผ ํŠน๋ณ„ํ•œ ๊ฐ•์˜



๋ถ€ํŠธ ์บ ํ”„์—์„œ 1000๋ช… ๊ฐ€๊นŒ์šด ํ•™์ƒ๋“ค์„ ๊ฐ€๋ฅด์น˜๋ฉฐ ํ•™์ƒ๋“ค์—๊ฒŒ ๋“ฃ๊ฒŒ ๋œ ํ”ํ•œ ์ด์•ผ๊ธฐ

"๊ฐœ๋…์€ ์ดํ•ด๊ฐ€ ๋˜๋Š”๋ฐ ๊ตฌํ˜„์„ ๋ชปํ•˜๊ฒ ์–ด์š”"

"Java์˜ ๋ฌธ๋ฒ•์€ ์ด์ œ ์ข€ ์•Œ๊ฒ ๋Š”๋ฐ, Java๋กœ ๋ญ˜ ๋งŒ๋“ค์–ด ๋ณด๋ผ๊ณ  ํ•˜๋ฉด ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์–ด์š”"

"Java๋ฅผ ๋งˆ์น˜๊ณ  Spring์œผ๋กœ ๋„˜์–ด์™”๋Š”๋ฐ ์‹ค์Šต์— ์†์„ ๋ชป ๋Œ€๊ฒ ์–ด์š”"

"ํ•™์Šต ์ž๋ฃŒ์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ํƒ€์ดํ•‘ํ•ด ๋ดค๋Š”๋ฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋„ˆ๋ฌด ๋‘๋ ค์›Œ์š”"


๊ทธ ๋•Œ, ์ œ๊ฐ€ ํ•™์ƒ๋“ค์—๊ฒŒ ํ•ด ์ฃผ์—ˆ๋˜ ์ด์•ผ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

"๋ˆˆ์œผ๋กœ๋งŒ ํ•™์Šตํ•˜๋ ค ํ•˜์ง€ ๋ง๊ณ , ์†๊ฐ€๋ฝ๊ณผ ๋จธ๋ฆฌ๋กœ ํ•™์Šตํ•˜์„ธ์š”"

"์ฝ”๋“œ๋ฅผ ํƒ€์ดํ•‘ํ•  ๋•Œ, ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๋ฉฐ ํƒ€์ดํ•‘ํ•˜์„ธ์š”"

"๊ธฐ๋ณธ์„ ๋จผ์ € ๋‹ค์ง€์„ธ์š”. ๊ทธ๋‹ค์Œ์—” ์‘์šฉ์„ ์œ„ํ•ด ์—ฐ์Šต์— ์—ฐ์Šต์„ ๊ฑฐ๋“ญํ•˜์„ธ์š”"


์ด์ฒ˜๋Ÿผ ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๋ฉด์„œ ์–ธ์–ด์™€ ๊ธฐ์ˆ ์˜ ๊ธฐ๋ณธ์„ ๋‹ค์ง€๊ณ , ์‘์šฉ์„ ์œ„ํ•œ ์—ฐ์Šต์— ์—ฐ์Šต์„ ๊ฑฐ๋“ญํ•˜๋ฉด "์ด๋ฒˆ์—” ๋ญ˜ ๋งŒ๋“ค์–ด ๋ณผ๊นŒ?"๋ผ๋Š” ๋‘๊ทผ๊ฑฐ๋ฆผ์— ๋‘˜๋Ÿฌ์‹ธ์—ฌ ์žˆ๋Š” ์ž์‹ ์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์ด๋Ÿฐ ๋‘๊ทผ๊ฑฐ๋ฆผ์„ ๋А๋ผ๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ญ˜๊นŒ์š”?

โญ ์•„์ฃผ ์ž‘์€ ์‚ฌ์ด์ฆˆ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋”๋ผ๋„ ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๊ณ , ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ง์ ‘ ๋งŒ๋“ค์–ด ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


โญ ๋ฌด์—‡์„ ๋งŒ๋“ค์–ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋Š” ๋ถ„, ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋Š” ๋ถ„๋“ค์€ ์ด ๊ฐ•์˜๋ฅผ ๋“ค์œผ์„ธ์š”.

์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„ ๋Šฅ๋ ฅ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋‘๋ ค์›€์ด ์•„๋‹Œ ์„ค๋ ˆ๋Š” ๋‘๊ทผ๊ฑฐ๋ฆผ์„ ๋А๋‚„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ Java 1๋ถ€์—์„œ๋Š” Java์™€ ์•ฝ๊ฐ„์˜ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, Google Tasks API๋ฅผ ์ด์šฉํ•ด ์ฝ˜์†”์—์„œ ๋™์ž‘ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ด…๋‹ˆ๋‹ค.


"์ฝ˜์†” ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์“ธ๋ฐ๋„ ์—†๋Š”๋ฐ ๋ญฃํ•˜๋Ÿฌ ๋งŒ๋“ค์ง€?"๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ^^;

๋ฌผ๋ก  ์ €๋„ ์ด ๋ง์— 100ํผ์„ผํŠธ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์ถฉ๋ถ„ํžˆ ๊ณต๊ฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ฝ˜์†” ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข€ ๋ถˆํŽธํ•ด์„œ ๊ทธ๋ ‡์ง€ Java์˜ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง€๋Š” ๋ฐ ์žˆ์–ด ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.


"์„ค๋งˆ ์ฝ˜์†” ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋งŒ ๋งŒ๋“ค์–ด๋ณด๊ณ  ๋๋‚˜๋Š” ๊ฑด ์•„๋‹ˆ๊ฒ ์ง€?"๋ผ๊ณ  ์ƒ๊ฐ๋˜์‹ ๋‹ค๋ฉด?

์•„๋‹™๋‹ˆ๋‹ค. ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ Java 3๋ถ€์—์„œ๋Š” UI(JavaFX)๋„ ๊ตฌํ˜„ํ•ด ๋ด…๋‹ˆ๋‹ค. ^^;


"JavaFX๋Š” ์‹ค๋ฌด์—์„œ ์ž˜ ์•ˆ ์“ฐ๋Š” ๊ธฐ์ˆ ์ธ๊ฑฐ ์•„๋ƒ? ๊ทผ๋ฐ ์™œ ๋ฐฐ์›Œ??"๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ ๋‹ค๋ฉด?

โญ ์ข‹์€ Java ๊ฐœ๋ฐœ์ž๋กœ ์˜ค๋žซ๋™์•ˆ ์‹ค๋ฌด์—์„œ ์ž˜ ์‚ด์•„๋‚จ์œผ๋ ค๋ฉด UI๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด๋ฉด์„œ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„ ๋ฐฑ์—”๋“œ ๊ฐ€๋ฆด ๊ฒƒ ์—†์ด ์–‘์ชฝ์˜ ์ž…์žฅ์„ ๋‹ค ์ดํ•ดํ•ด ๋ณด๋Š” ๊ฒŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์ธก์˜ ์ž…์žฅ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋” ๋‚˜์€ ์„œ๋ฒ„ ์ธก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ์š”? ^^;

์ผ๋‹จ ํ•ด๋ณด๋ฉด ์žฌ๋ฏธ์žˆ์„ ๊ฑฐ์˜ˆ์š”. ^^

โญ ๊ฐ•์˜ ์ง„ํ–‰ ๋ฐฉ์‹

  • ์ด 3๊ฐ€์ง€ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

    1. Stream API ๊ตฌ๊ตฌ๋‹จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

    2. Todo ๋ฆฌ์ŠคํŠธ ๊ด€๋ฆฌ ์•ฑ (1): ์š”๊ตฌ์‚ฌํ•ญ ๊ธฐ๋ฐ˜ ์„ค๊ณ„, ๊ตฌํ˜„ ๋ฐ ํ…Œ์ŠคํŠธ

    3. Todo ๋ฆฌ์ŠคํŠธ ๊ด€๋ฆฌ ์•ฑ (2): Google Tasks API ์—ฐ๋™

  • ๊ฐ ํ”„๋กœ์ ํŠธ๋Š” ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ
    ์ˆ˜๊ฐ•์ƒ์ด ์Šค์Šค๋กœ ์„ค๊ณ„ โ†’ ๊ตฌํ˜„ โ†’ ํ…Œ์ŠคํŠธ๊นŒ์ง€ ๋จผ์ € ์‹œ๋„ํ•˜๊ณ ,
    Kevin์˜ ๊ตฌํ˜„ ๋ฒ„์ „๊ณผ ๋น„๊ตํ•˜๋ฉฐ ๋” ๋‚˜์€ ๊ตฌ์กฐ์™€ ์‚ฌ๊ณ ๋ฅผ ๋ฐฐ์šฐ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๐Ÿ“ถ ๊ตฌํ˜„ ์—ญ๋Ÿ‰ ํŒŒ์›Œ ์—… ๋‹จ๊ณ„ ๊ฐ€์ด๋“œ

โœ… 100% ํŒŒ์›Œ ์—…

  • ์Šค์Šค๋กœ ์ „ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณธ ๋’ค ๊ฐ•์˜์™€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

    • "๋„์ €ํžˆ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ์•ˆ ๋ณผ ์ˆ˜ ์žˆ์ง€?"๋ผ๋Š” ์ƒ๊ฐ์ด ๋‹น์—ฐํžˆ ๋“ค ํ…๋ฐ ์ธํ„ฐ๋„ท์„ ์ฐพ์•„์„œ ๋’ค์ง€๋“  Chat GPTํ•œํ…Œ ๋ฌผ์–ด๋ณด๋“  ์–ด์จŒ๋“  ์Šค์Šค๋กœ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ด…๋‹ˆ๋‹ค.

  • ๊ฐ€์žฅ ํฐ ์„ฑ์žฅ๊ณผ ๋ฟŒ๋“ฏํ•จ์„ ๋А๋‚„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ… 80% ํŒŒ์›Œ ์—…

  • ํ•  ์ˆ˜ ์žˆ๋Š” ๋งŒํผ ์ตœ๋Œ€ํ•œ ์Šค์Šค๋กœ ๊ตฌํ˜„ํ•ด๋ณด๊ณ ,

    ๋ง‰ํžˆ๋Š” ๋ถ€๋ถ„์€ ๊ฐ•์˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•ด ์ ์šฉํ•ด ๋ด…๋‹ˆ๋‹ค.

โœ… 50% ํŒŒ์›Œ ์—…

  • ๊ฐ•์˜๋ฅผ ๋จผ์ € ๋ณด๊ณ  ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ์น˜๋ฉฐ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.


  • ๊ทธ ๋‹ค์Œ ๋นˆ ํ”„๋กœ์ ํŠธ์— ๋‹ค์‹œ ์Šค์Šค๋กœ ์ฝ”๋”ฉํ•ด ๋ด…๋‹ˆ๋‹ค.

โŒ 0% ํŒŒ์›Œ ์—…

  • ๊ทธ๋ƒฅ ๋ˆˆ์œผ๋กœ ๊ฐ•์˜๋ฅผ ๋ณด๊ธฐ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด๋ ‡๊ฒŒ ํ•˜์‹œ๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ๋ง์”€์ž…๋‹ˆ๋‹ค. ^^;

    • ํ”„๋กœ์ ํŠธ๋ผ๋Š” ๊ฑด ์•„์ฃผ ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ผ๋„ ๋ฐ˜๋“œ์‹œ ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ํƒ€์ดํ•‘ํ•˜๋Š” ๊ณผ์ •์ด ๋ฐ˜๋ณต๋˜๊ณ  ๋ˆ„์ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ๊ทธ๋ž˜์•ผ ๊ทธ ๊ณผ์ •์—์„œ ๋‚ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“œ๋Š” ์ง€์‹๋“ค์ด ์กฐ๊ธˆ์”ฉ ์Œ“์—ฌ๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœจ ์ด ๊ฐ•์˜์—์„œ ์–ป๋Š” ๊ฒƒ

  • Java ๊ฐ์ฒด์ง€ํ–ฅ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ฐ๊ฐ

  • ์„ค๊ณ„ โ†’ ๊ตฌํ˜„ โ†’ ํ…Œ์ŠคํŠธ ํ๋ฆ„ ์ „์ฒด ๊ฒฝํ—˜

  • ์ž‘๊ณ  ๋‹ค์–‘ํ•œ ํ”„๋กœ์ ํŠธ ์‹ค์Šต์„ ํ†ตํ•œ ์ฝ”๋“œ ์ž์‹ ๊ฐ ํ–ฅ์ƒ

  • Spring์„ ๋ฐฐ์šฐ๊ธฐ ์ „, Java๋ฅผ ๋‹จ๋‹จํžˆ ๋‹ค์งˆ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฐ˜


  • Java๊ฐ€ ์žฌ๋ฏธ์žˆ์–ด์ง

์ด ๊ฐ•์˜ ์ดํ›„์— ์•„๋ž˜์™€ ๊ฐ™์€ ํ›„์† ์‹œ๋ฆฌ์ฆˆ๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์ผ€์ด์Šค์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ์—ฐ์Šต์„ ํ•˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • Java 1๋ถ€(์˜คํ”ˆ)

  • Java 2๋ถ€(์˜คํ”ˆ)

  • Java 3๋ถ€(๊ณง ์˜คํ”ˆ ์˜ˆ์ •)

  • Spring MVC ํŽธ(์˜ˆ์ •)

  • ํ…Œ์ŠคํŒ… ํŽธ(์˜ˆ์ •)

  • Spring Rest Docs ํŽธ(์˜ˆ์ •)

  • Spring Security ํŽธ(์˜ˆ์ •)

  • Spring WebFlux ํŽธ(์˜ˆ์ •)


- ํด๋ฆฐ์ฝ”๋“œ - ์ €์ž์˜ ๋ง์„ ์ž ๊น ์ธ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ^^

โญ ์ž์ „๊ฑฐ ํƒ€๋Š” ๋ฒ•์— ์ต์ˆ™ํ•ด์ง€๋ฉด ์ž์ „๊ฑฐ๊ฐ€ ๋ชธ์˜ ์ผ๋ถ€์ฒ˜๋Ÿผ ์›€์ง์ด๋“ฏ, ์ด ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„์ด ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ํŽธ์•ˆํ•œ ์ผ์ƒ์œผ๋กœ ๋‹ค๊ฐ€์˜ฌ ์ˆ˜ ์žˆ๊ธธ ๋ฐ”๋ž˜๋ด…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋ฐฐ์›Œ์š”

๐Ÿ’กIntroduction ์„น์…˜์„ ์ œ์™ธํ•œ ์„น์…˜ ์ˆœ์„œ์ด๋ฏ€๋กœ ์ฐฉ์˜ค ์—†์œผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์„น์…˜ 1: Stream API๋ฅผ ์ด์šฉํ•œ ๊ตฌ๊ตฌ๋‹จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์ž‘

์„น์…˜ 1์—์„œ๋Š” ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ๋จธ๋ฆฌ์™€ ์†๊ฐ€๋ฝ์— ์‹œ๋™์„ ๊ฑธ ์ˆ˜ ์žˆ๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ด…๋‹ˆ๋‹ค.

"๋ญ์•ผ? ๊ตฌ๊ตฌ๋‹จ ํ”„๋กœ๊ทธ๋žจ์ด๋ฉด ๋„ˆ๋ฌด ๊ฐ„๋‹จํ•œ ๊ฑฐ ์•„๋ƒ?"๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ตฌ๋‹จ ํ”„๋กœ๊ทธ๋žจ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ๋„ ๋‹จ๊ณจ๋กœ ๋‚˜์˜ค๋Š” ๊ธฐ์ดˆ์ ์ธ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ด๋‹ˆ๊นŒ์š”.


ํ•˜์ง€๋งŒ ์ž˜ ๋Œ์•„๊ฐ€๋Š” ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ ๋‹ค๋Š” ๊ด€์ ์—์„œ ๊ณ ๋ฏผ์„ ํ•ด๋ณด์•„์•ผ ํ•˜๊ณ , Java์˜ Stream API๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌ๊ตฌ๋‹จ ํ”„๋กœ๊ทธ๋žจ์ด ์ƒ‰๋‹ค๋ฅด๊ฒŒ ๋‹ค๊ฐ€์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ^^


โœ… ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

  1. Java์˜ ๋žŒ๋‹ค ํ‘œํ˜„์‹๊ณผ ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  2. Stream API์˜ ํŠน์„ฑ๊ณผ ๊ธฐ๋ณธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  3. ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์˜ ์ค‘์š”์„ฑ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  4. ๋ฉ”์„œ๋“œ ์ถ”์ถœ(Extract)์„ ํ†ตํ•ด ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ฉ”์„œ๋“œ์˜ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  5. ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ์—ญํ•  ๋ถ„๋ฆฌ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.


์„น์…˜ 2: ํ•  ์ผ ๊ด€๋ฆฌ(Todo list) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์ž‘ (1)

์„น์…˜ 2์—์„œ๋Š” ํ•  ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ด…๋‹ˆ๋‹ค.

ํ•  ์ผ ๊ด€๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ TodoList๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ์œผ๋ฉฐ, ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ž…๋ฌธํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ฃผ์ œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.


ํ•  ์ผ์„ ๋“ฑ๋กํ•˜๊ณ , ๋“ฑ๋ก๋œ ํ•  ์ผ์„ ์™„๋ฃŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ์„ ๋ง‰์ƒ ์ง์ ‘ ๊ตฌํ˜„ํ•ด ๋ณด๋ผ๊ณ  ํ•˜๋ฉด ๋ง์„ค์ด๋Š” ๋ถ„๋“ค์ด ๊ฝค ์žˆ์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ”๋“œ ํ€„๋ฆฌํ‹ฐ๋‚˜ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊นŒ์ง€ ๊ณ ๋ คํ•œ๋‹ค๋ฉด ๋งŒ๋งŒํ•˜๊ฒŒ ๋ณผ ์ˆ˜๋งŒ๋„ ์—†์Šต๋‹ˆ๋‹ค. ^^;

๊ฐ•์˜์—์„œ๋Š” ๊ทธ๋ƒฅ ๋‹จ์ˆœํžˆ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์—์„œ ๊ทธ์น˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฝค๋‚˜ ์ค‘์š”ํ•œ ๊ฒƒ๋“ค์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ… ์„น์…˜ 2์—์„œ ์•Œ๊ฒŒ ๋˜๋Š” ๊ฒƒ๋“ค

  1. ๋งŒ๋“ค์–ด์•ผ ํ•  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋Œ€๋žต์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ์„ ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ์˜ ํ‹€๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ด๋ ‡๊ฒŒ ํ‘œํ˜„ํ•˜๋ฉด ์–ด๋–ค ์žฅ์ ์ด ์žˆ๋Š”์ง€๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ƒ๊ฐ์˜ ํ๋ฆ„์„ ์ฝ”๋“œ๋กœ ๋จผ์ € ํ‘œํ˜„ํ•œ ํ›„์— ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ์™„์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ๋„๋ฉ”์ธ ๊ทœ์น™์ด ์ ์šฉ๋œ ๋„๋ฉ”์ธ ๋กœ์ง์„ ์„œ๋น„์Šค ์ฝ”๋“œ์—์„œ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋ถ„๋ฆฌํ•˜๋ฉด ์™œ ์ข‹์€์ง€๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. ๋„๋ฉ”์ธ ์ฃผ๋„ ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉํ•˜๋Š” D.I.P(Dependency Inversion Principle, ์˜์กด์„ฑ ์—ญ์ „์˜ ์›์น™) ์„ค๊ณ„ ์›์น™์˜ ๊ธฐ๋ณธ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ… ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

  • ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ์˜ ํ‹€์„ ์ด์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํ•  ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•ด ๊ฐ„๋‹จํ•œ ํ•  ์ผ ๋“ฑ๋ก ๋กœ์ง์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜(Layered Architecture)๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Java์˜ Map์„ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋นˆ์•ฝํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ(Anemic Domain Model)๊ณผ ํ’๋ถ€ํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ(Rich Domain Model)์˜ ์ฐจ์ด์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  • D.I.P(Dependency Inversion Principle) ์„ค๊ณ„ ์›์น™์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์ด ์›์น™์„ ์ ์šฉํ•˜๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.


์„น์…˜ 3: ํ•  ์ผ ๊ด€๋ฆฌ(Todo list) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ œ์ž‘ (2)

์„น์…˜ 3์—์„œ๋Š” Google Tasks API ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด ์„น์…˜ 2์—์„œ ๋งŒ๋“  ํ•  ์ผ ๊ด€๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•  ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์† ๊ฐ€๋Šฅํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์—…๊ทธ๋ ˆ์ด๋“œํ•ด ๋ด…๋‹ˆ๋‹ค.


๋ฌผ๋ก  ์ฒ˜์Œ๋ถ€ํ„ฐ Google Tasks API๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•  ์ผ ๊ด€๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด๋ณผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋™์•ˆ ๋„ˆ๋ฌด ๋งŽ์€ ์ง€์‹๋“ค์„ ๋จธ๋ฆฌ์†์— ์ง‘์–ด ๋„ฃ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.


์–ด์จŒ๋“  ์„น์…˜ 2์—์„œ ํ•  ์ผ ๊ด€๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž˜ ๋งŒ๋“ค์–ด ๋†“์•˜๋‹ค๋ฉด ์„น์…˜ 3์—์„œ ๋‹ค์Œ ๋‚ด์šฉ๋“ค์„ ํ•™์Šตํ•˜๋Š”๋ฐ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ… ์„น์…˜ 2์—์„œ ์•Œ๊ฒŒ ๋˜๋Š” ๊ฒƒ๋“ค

  1. Google์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค(Google Tasks, Google Drive, Google Calendar ๋“ฑ)๋“ค์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ณตํ†ต๋œ ์ ˆ์ฐจ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. Google์—์„œ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ ๊ณผ์ •์„ ํฐ ํ๋ฆ„์—์„œ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ํŠน์ • ๊ธฐ์ˆ ์„ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ด์œ ์™€ ์žฅ์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. ํ…Œ์ŠคํŠธ ๊ณผ์ •์—์„œ์˜ ์ „์ฒ˜๋ฆฌ, ํ›„์ฒ˜๋ฆฌ ๊ณผ์ •์ด ํ•„์š”ํ•œ ์ด์œ ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ , ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. D.I.P(Dependency Inversion Principle) ์„ค๊ณ„ ์›์น™์ด ์ ์šฉ๋œ ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด์—์„œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์„ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

  6. ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๊ฐ์ฒด๋“ค ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•œ Converter๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  7. Object Factory + Singleton ํŒจํ„ด์„ ์ด์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด๋ฅผ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ… ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

  • ํŠน์ • ๊ธฐ์ˆ ์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ํ•™์Šต ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์™ธ๋ถ€ API ์„œ๋น„์Šค์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Google Tasks API ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด ํ•  ์ผ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • DIP(Dependency Inversion Principle)๋ฅผ ์ ์šฉํ•ด ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด์˜ ๊ธฐ์ˆ ์„ ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํŒฉํ† ๋ฆฌ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ  Factory๋ฅผ ์ด์šฉํ•ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

  • RFC-3339์— ๋ช…์‹œ๋œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ  Java API๋ฅผ ์ด์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‚˜์š”?

Q. Java 1๋ถ€ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ ค๋ฉด Java๋งŒ ํ•  ์ค„ ์•Œ๋ฉด ๋˜๋‚˜์š”? Java๋ฅผ ์–ด๋А ์ˆ˜์ค€๊นŒ์ง€ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์œผ๋ฉด ๋ ๊นŒ์š”?

Java 1๋ถ€ ๊ฐ•์˜์—์„œ๋Š” ์ด ์„ธ ๊ฐœ์˜ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ๊ทธ ์ค‘์— ๋‘ ๊ฐœ ํ”„๋กœ์ ํŠธ๋Š” ์ˆœ์ˆ˜ํ•˜๊ฒŒ Java๋งŒ ์‚ฌ์šฉํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋ฉฐ, ๋‚˜๋จธ์ง€ ํ•œ ๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๋Š” Google Tasks API๋ผ๋Š” ๊ธฐ์ˆ ์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

Google Tasks API์— ๋Œ€ํ•œ ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ์—†์œผ์‹  ๋ถ„๋“ค์ด ๋‹ค์ˆ˜ ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Google Tasks API์˜ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ๊ฐ•์˜ ์•ˆ์— ์ผ์ • ๋ถ€๋ถ„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


๊ฒฐ๋ก ์„ ๋ง์”€๋“œ๋ฆฌ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ Java์˜ ๊ธฐ๋ณธ(๋ณ€์ˆ˜, ๋ฐ์ดํ„ฐ ํƒ€์ž…, ํ‘œ์ค€ ์ž…์ถœ๋ ฅ, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐœ๋… ๋“ฑ) ์ง€์‹๋งŒ ์ผ์ • ๋ถ€๋ถ„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ์ด๋ฒˆ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๋‹ค๋งŒ, ๊ฐ•์˜ ์ค‘๊ฐ„ ์ค‘๊ฐ„์— ํ•™์ƒ๋“ค์ด ์ฒ˜์Œ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ(ํ…Œ์ŠคํŠธ ๊ธฐ๋ฒ•, ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ๊ธฐ๋ฒ• ๋“ฑ)๋“ค์ด ํฌํ•จ์ด ๋˜์–ด ์žˆ์ง€๋งŒ ์ด๋Ÿฐ ๋‚ด์šฉ๋“ค์€ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ์•Œ์•„๊ฐ€๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Q. ์ด ๊ฐ•์˜๋ฅผ ์™œ ๋“ค์–ด์•ผ ํ• ๊นŒ์š”?

์•ž์—์„œ๋„ ์ž ๊น ๋ง์”€๋“œ๋ ธ์ง€๋งŒ ๋ถ€ํŠธ์บ ํ”„๋‚˜ ์ปดํ“จํ„ฐ ํ•™์› ๋“ฑ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋ฐฐ์šธ ๋•Œ ๊ฐ€์žฅ ๋ง‰๋ง‰ํ•œ ๋ถ€๋ถ„์€ ๋ฐ”๋กœ ๋‚ด๊ฐ€ ํ•™์Šตํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ด์šฉํ•ด ๋ˆˆ์— ๋ณด์ด๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž‘์€ ๋ฏธ๋‹ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๊ธดํ•˜์ง€๋งŒ ํ•™์ƒ๋“ค ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๊ณ , ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์ง์ ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•จ์œผ๋กœ ์ธํ•ด "๋‚˜๋„ ๋ฌด์–ธ๊ฐ€๋ฅผ ์Šค์Šค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค" ๋ผ๋Š” ์ž์‹ ๊ฐ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ ๊ทธ๋ฆฌ๊ณ  "๊ฐœ๋ฐœ์ž๋กœ์„œ ์•ž์œผ๋กœ ๊ฐ€์•ผํ•  ๋ฐฉํ–ฅ์„ฑ์„ ๊นจ๋‹ซ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ"์ด ์ด๋ฒˆ ๊ฐ•์˜ ์‹œ๋ฆฌ์ฆˆ์˜ ํ•ต์‹ฌ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„์— ์–ด๋ ค์›€์„ ๊ฒช๋Š” ๋ถ„์—๊ฒŒ๋Š” ๊ดœ์ฐฎ์€ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์œผ๋ฆฌ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Q. Java ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Spring Framework์„ ํ•„์ˆ˜๋กœ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋˜๋ฐ ์ •๋ง Spring์„ ๋ชฐ๋ผ๋„ ๊ดœ์ฐฎ๋‚˜์š”?

Spring์— ๋Œ€ํ•œ ์ง€์‹์ด ์ „ํ˜€ ์—†์–ด๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค.

Java ๊ธฐ๋ฐ˜์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์ด์•ผ๊ธฐํ•˜๋Š”๋ฐ ์žˆ์–ด Spring Framework์„ ๋นผ๋†“๊ณ  ์ด์•ผ๊ธฐํ•  ์ˆ˜๋Š” ์—†๊ฒ ์ง€๋งŒ Java์˜ ๊ธฐ๋ณธ์ด ๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ Spring Framework์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋‹ค ๋ฒฝ์— ๋ถ€๋”ช์น˜๋Š” ํ•™์ƒ๋“ค์„ ๋งŽ์ด ๋ด์™”์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ฒŒ ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๋ฐ”๋žจ์ด ํฌํ•จ๋œ ๊ฐ•์˜๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์•„์š”.

Q. Java๋ฅผ ์ด์šฉํ•ด์„œ ์Šค์Šค๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋งŒ๋“ ๋‹ค๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ๋„ˆ๋ฌด ๋ง‰์—ฐํ•˜๊ธฐ๋„ ํ•˜๊ณ  ์กฐ๊ธˆ์€ ๋‘๋ ต๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด ์ด๋Ÿฐ ๊ธฐ๋ถ„์ด ์‚ฌ๋ผ์งˆ๊นŒ์š”?

์ด ๊ฐ•์˜๋ฅผ ๊ทธ๋ƒฅ ๋“ฃ๊ธฐ๋งŒ ํ•ด์„œ๋Š” ๊ทธ๋Ÿฐ ๊ธฐ๋ถ„์ด ์‚ฌ๋ผ์ง€์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.^^;

๋‹ค๋งŒ, ์ œ๊ฐ€ ๊ถŒ์žฅ ๋“œ๋ฆฌ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ•์˜๋ฅผ ๋๊นŒ์ง€ ์ˆ˜๊ฐ•ํ•˜์‹œ๊ณ  ๊ฐ•์˜์— ๋‚˜์˜ค๋Š” ๋‚ด์šฉ๋“ค์„ ๋‚ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ ์–ด๋„ ๊ตฌํ˜„์— ๋Œ€ํ•œ ๋‘๋ ค์›€์€ ํ™•์‹คํžˆ ์—†์•จ ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค.

Q. ์ œ๊ฐ€ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ์™€ ๊ฐ•์‚ฌ๋‹˜์ด ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๊ฐ€ ๋งŽ์ด ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์€๋ฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

์•„๋ฌด๋ž˜๋„ ์—ฌ๋Ÿฌ๋ถ„๋“ค๋ณด๋‹ค ์ œ๊ฐ€ ๊ฐœ๋ฐœ์„ ๋” ๋งŽ์ด ํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์กฐ๊ธˆ ๋” ๋‚˜์€ ์ฝ”๋“œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.(๊ทธ๋ ‡์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐ๋œ๋‹ค๋ฉด ์–ธ์ œ๋“  ์˜๊ฒฌ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌ๋“œ๋ฆด๊ฒŒ์š”. ^^;)

๋งŒ์•ฝ ์ œ๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์กฐ๊ธˆ ๋” ๋‚˜์€ ์ฝ”๋“œ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค๋ฉด ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ์— ์ œ๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•ด ๋ณด์‹œ๊ธธ ๊ถŒ์žฅ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๋” ๋‚˜์€ ์ฝ”๋“œ์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จ์ด ์„œ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๊ณ , ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด ๊ฝค๋‚˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜๋„ ์žˆ์–ด์š”.

ํ•˜์ง€๋งŒ ์ง์ ‘ ์ ์šฉ์„ ํ•ด๋ด์•ผ ์ด๊ฒŒ ์ข‹์€ ์ฝ”๋“œ์ธ์ง€ ๋‚˜์œ ์ฝ”๋“œ์ธ์ง€์— ๋Œ€ํ•œ ํŒ๋‹จ๋„ ๋” ์ž˜ํ•  ์ˆ˜ ์žˆ๊ณ , ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์‹ค๋ ฅ๋„ ๋” ํ–ฅ์ƒ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.


Q. ๊ฐ•์˜์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ฐ•์˜ ์ž๋ฃŒ ๋ฐ ์†Œ์Šค ์ฝ”๋“œ๋Š” ์–ด๋””์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”?

  • ๊ฐ•์˜์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ฐ•์˜ ์ž๋ฃŒ ๋ฐ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•˜์‹œ๋ ค๋ฉด ์•„๋ž˜์˜ ํ•™์Šต ์ž๋ฃŒ ํ•ญ๋ชฉ์— ๊ธฐ์žฌ๋œ Github ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์‹  ํ›„ ํ•ด๋‹น Repository์—์„œ ๋‹ค์šด๋กœ๋“œ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS)

    • PC ํ™˜๊ฒฝ์˜ OS๋ผ๋ฉด ์–ด๋–ค OS๋“  ์ƒ๊ด€ ์—†์Šต๋‹ˆ๋‹ค.

    • ๋‹ค๋งŒ JDK 17 ์ด์ƒ์ด ์„ค์น˜ ๊ฐ€๋Šฅํ•ด์•ผํ•˜๋ฉฐ, IntelliJ IDE๊ฐ€ ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ๋ฌด๋ฆฌ ์—†์„ ์ •๋„์˜ ์ปดํ“จํŒ… ํŒŒ์›Œ(CPU, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ)๋ฅผ ๊ฐ–์ถ”๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ ๋„๊ตฌ

    • JDK 17(์ตœ์†Œ ์‚ฌ์–‘)

    • IntelliJ IDE

      • ๊ฐ•์˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” IntelliJ IDE๋Š” Ultimate ๋ฒ„์ „์ด์ง€๋งŒ ๋ฌด๋ฃŒ ๋ฒ„์ „์ธ Community ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์…”๋„ ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

      • IntelliJ IDE๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์ž˜ ๋‹ค๋ฃจ๋Š” ์ฝ”๋“œ ํŽธ์ง‘ ํˆด(Visual Studio Code ๋“ฑ)์ด ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉํ•˜์…”๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.

    • Gradle 7.3(์ตœ์†Œ ์‚ฌ์–‘) ์ด์ƒ

      • JDK 17์— ํ˜ธํ™˜๋˜๋Š” Gralde ๋ฒ„์ „์ด 7.3์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜ ์‚ฌ์ด์˜ ๋ฒ„์ „์„ ๋งž์ถ”์–ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

      • ๋ฒ„์ „ ํ˜ธํ™˜์„ฑ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด Java Compatibility๋ฅผ ์ฐธ๊ณ ํ•˜์…”์„œ ๊ฐ€๊ธ‰์  ๋ฒ„์ „์„ ๋งž์ถฐ์ฃผ์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • JUnit 5(์ตœ์†Œ ์‚ฌ์–‘) ์ด์ƒ


ํ•™์Šต ์ž๋ฃŒ

์œ ์˜์‚ฌํ•ญ

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

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • Java๋ฅผ ๊ณต๋ถ€ํ–ˆ์ง€๋งŒ Java๋กœ ๋ฌด์–ผํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ

  • Java์˜ ๋ฌธ๋ฒ• ํ•™์Šต์œผ๋กœ ์ง€๋ฃจํ•จ์„ ๋А๋ผ๋Š” ์‚ฌ๋žŒ

  • Java์˜ ๋ฌธ๋ฒ•์€ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋ญ˜ ๊ตฌํ˜„ํ•ด๋ณด๋ผ๊ณ  ํ•˜๋ฉด ์–ด๋””์„œ๋ถ€ํ„ฐ ๊ตฌํ˜„ํ•ด์•ผ ํ• ์ง€ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ

  • ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด Java์˜ ๊ธฐ๋ณธ์„ ํ™•์‹คํžˆ ๋‹ค์ง€๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ์ฆ๊ฑฐ์›€์„ ๋А๋ผ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๊ณ , ๊ณ ๋ฏผํ•˜๋ฉด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ์—ฐ์Šต์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„ ๊ด€์ ์—์„œ Java๋ฅผ ์ž˜ ๋‹ค๋ฃจ์ง€ ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Java

  • ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๋Š” ์—ฐ์Šต

์•ˆ๋…•ํ•˜์„ธ์š”
Kevin์ž…๋‹ˆ๋‹ค.

6,530

๋ช…

์ˆ˜๊ฐ•์ƒ

260

๊ฐœ

์ˆ˜๊ฐ•ํ‰

110

๊ฐœ

๋‹ต๋ณ€

4.8

์ 

๊ฐ•์˜ ํ‰์ 

9

๊ฐœ

๊ฐ•์˜

- ์ฃผ๋ ฅ ์–ธ์–ด ๋˜๋Š” ๊ธฐ์ˆ  : Java, Spring Framework, RxJava, Reactor, Spring WebFlux

- (์ฃผ)์ฝ”๋“œ์Šคํ…Œ์ด์ธ (https://www.codestates.com)์—์„œ Senior Educational Software Engineer(Backend)๋กœ ํ™œ๋™
(From 2022.03 To 2024.01.31)

- ํ”„๋ฆฌ๋žœ์„œ ๊ฐœ๋ฐœ์ž ๋ฐ ๊ฐ•์‚ฌ๋กœ ํ™œ๋™(From 2024.02)

- ์ €์„œ

์•ˆ๋…•ํ•˜์„ธ์š”? Kevin์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ^^

์ธํ”„๋Ÿฐ์—์„œ ์ด๋ ‡๊ฒŒ ๊ฐ•์‚ฌ๋กœ์„œ ์—ฌ๋Ÿฌ๋ถ„๋“ค์„ ๋งŒ๋‚˜๊ฒŒ ๋˜์–ด์„œ ๋„ˆ๋ฌด ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ๋ถ„์•ผ๋“  ๋งˆ์ฐฌ๊ฐ€์ง€๊ฒ ์ง€๋งŒ ํŠนํžˆ๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋Š” ๋Š์ž„์—†์ด ๋ณ€ํ™”ํ•˜๋Š” ํŠธ๋ Œ๋“œ์— ๋’ค์ฒ˜์ง€์ง€ ์•Š๋„๋ก ํ•ญ์ƒ ์ž๊ธฐ ์ž์‹ ์„ ๊ฐˆ๊ณ  ๋‹ฆ๋Š”๊ฒƒ์ด ๊ฐœ๋ฐœ์ž๋กœ์จ ์‚ด์•„๋‚จ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ํ•ญ์ƒ ๋ฐฐ์šฐ๋Š” ์ž์„ธ๋กœ ์ฆ๊ฒ๊ฒŒ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ๋ช…์ž…๋‹ˆ๋‹ค.

์ œ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ง€์‹๊ณผ ๊ฒฝํ—˜์ด ๋‹ค๋ฅธ ๋ถ„๋“ค์—๊ฒŒ ์กฐ๊ธˆ์ด๋‚˜๋งˆ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉด์„œ ์ธํ”„๋Ÿฐ์—์„œ ๊ฐ•์ขŒ๋ฅผ ์‹œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์•ž์œผ๋กœ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค์—๊ฒŒ ํ˜„์‹ค์ ์œผ๋กœ ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ๊ฐ•์ขŒ๋กœ ๊พธ์ค€ํžˆ ์ฐพ์•„๋ต™๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

์งˆ๋ฌธ์ด๋‚˜ ์˜๊ฒฌ์€ ์–ธ์ œ๋“ ์ง€ ํ™˜์˜ํ•˜๋‹ˆ, ์ด๋ฉ”์ผ(it.village.host@gmail.com)๋กœ ํŽธํ•˜๊ฒŒ ์–˜๊ธฐํ•ด์ฃผ์„ธ์š”.

 

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

40๊ฐœ โˆ™ (13์‹œ๊ฐ„ 52๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

5๊ฐœ

5.0

5๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • ์˜ค์žฌ๊ถŒ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์˜ค์žฌ๊ถŒ

    ์ˆ˜๊ฐ•ํ‰ 3

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    30% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    • doomco๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      doomco

      ์ˆ˜๊ฐ•ํ‰ 31

      โˆ™

      ํ‰๊ท  ํ‰์  4.9

      5

      8% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      ์ƒˆ๋กœ์šดํ˜•ํƒœ์˜ ์ž๋ฐ”๊ฐ•์˜ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

      • Kevin
        ์ง€์‹๊ณต์œ ์ž

        ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๊ฑธ๋ฆฌ์‹œ๋”๋ผ๋„ ๊ฐ•์˜๋ถ€ํ„ฐ ๋จผ์ € ์ญ‰ ๋ณด์‹œ๋Š”๊ฒƒ ๋ณด๋‹ค๋Š” `๊ธฐ๋Šฅ ๊ตฌํ˜„ ์š”๊ตฌ์‚ฌํ•ญ`, `์‚ฌ์ „ ์ง€์‹`๊นŒ์ง€๋งŒ ๋จผ์ € ๋“ค์œผ์‹œ๊ณ  ์Šค์Šค๋กœ ๊ตฌํ˜„ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ผญ ๊ฐ€์ง€์‹œ๊ธธ ๋ฐ”๋ž˜๋ณผ๊ฒŒ์š”. ^^; ์„ฑ์žฅํ•˜์‹œ๋Š”๋ฐ ๋„์›€์ด ๋˜์…จ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค!

    • smc78๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      smc78

      ์ˆ˜๊ฐ•ํ‰ 12

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      30% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      • Kevin๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        Kevin

        ์ˆ˜๊ฐ•ํ‰ 4

        โˆ™

        ํ‰๊ท  ํ‰์  5.0

        ์ˆ˜์ •๋จ

        5

        100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        ์ˆ˜๊ฐ•์ƒ ์—ฌ๋Ÿฌ๋ถ„ ์•ˆ๋…•ํ•˜์„ธ์š”! ์ด๋ฒˆ ๊ฐ•์˜๋„ ์ œ๊ฐ€ ์ œ์ผ ๋จผ์ € ์ˆ˜๊ฐ•ํ‰์„ ๋‚จ๊ธฐ๊ฒŒ ๋˜์—ˆ๋„ค์š”. ^^; ํŒ”์€ ์•ˆ์œผ๋กœ ๊ตฝ๋Š”๋‹ค๊ณ  ์ผ๋‹จ ์ € ๋‚˜๋ฆ„๋Œ€๋กœ ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•ด์„œ ๋งŒ๋“  ๊ฐ•์˜์ด๋‹ˆ๊นŒ ์ด๋ฒˆ์—” ๋ณ„ 5๊ฐœ ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. ^^ ์•„์ง ์ž˜ ์•Œ๋ ค์ง€์ง€๋Š” ์•Š์•˜์ง€๋งŒ ์ด๋ฒˆ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ์‹œ๋ฆฌ์ฆˆ ๊ฐ•์˜๋Š” ์ˆ˜๊ฐ•์ƒ๋“ค์—๊ฒŒ ์–ด๋А ์ •๋„ ๊ดœ์ฐฎ์€ Java ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—… ์ „์„ ์˜ ๋ฌธํ„ฑ์„ ๋„˜์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ˆจ๊ฒจ์ง„ ๋‚ด๊ณต์„ ๋“œ๋ฆด ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋‹น์—ฐํžˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆดํ…Œ๊ณ , ์ง์ ‘ ์ƒ๊ฐํ•˜๊ณ  ํƒ€์ดํ•‘์„ ํ•˜์…”์„œ ์ฝ”๋“œ๋ฅผ ์งœ ๋ณด์…”์•ผํ•ฉ๋‹ˆ๋‹ค. ์•”๊ธฐ๋ณด๋‹ค๋Š” `์‚ฌ๊ณ  + ์‹ค์ฒœ + ๋ฐ˜๋ณต + ์‘์šฉ`์ด ๋˜์–ด์•ผ ์ข‹์€ ๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—… ์ „์„ ์—์„œ ์Šน๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์š”. ํž˜์ด ๋“œ์‹œ๊ฒ ์ง€๋งŒ ์ด๋ฒˆ ๊ฐ•์˜๋ฅผ ๋งˆ์ง€๋ง‰๊นŒ์ง€ ์ž˜ ๋๋‚ด์‹œ๊ณ  ์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ๊ตฌํ˜„ ๋Šฅ๋ ฅ์ด ํ•œ ๋‹จ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜๊ธธ ๋ฉ€๋ฆฌ์„œ ๊ธฐ์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๊ฐ•์˜์—์„œ ๋ต๊ฒŒ์š”. ํ™”์ดํŒ…์ž…๋‹ˆ๋‹ค!

        • ํ™ํƒœ๊ฒฝ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
          ํ™ํƒœ๊ฒฝ

          ์ˆ˜๊ฐ•ํ‰ 31

          โˆ™

          ํ‰๊ท  ํ‰์  5.0

          ์ˆ˜์ •๋จ

          5

          100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

          [ํ•ด๋‹น ๊ฐ•์˜์— ๊ธ์ •์ ์ธ ๋ฉด] ์Šคํ”„๋ง ํ˜น์€ ๋‹ค๋ฅธ ์ž๋ฐ” ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ  ์Šคํƒ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „ ๋ณธ์ธ์˜ ์ž๋ฐ” ๋ฌธ๋ฒ•์—์„œ ์–ด๋””๊ฐ€ ๋ถ€์กฑํ•œ์ง€์— ๋Œ€ํ•ด ์ž๊ฐ€์ง„๋‹จ ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์ง€ํ‘œ๊ฐ€ ๋˜๋Š” ๊ฐ•์˜ ์˜€์Šต๋‹ˆ๋‹ค ํ˜•ํŽธ์—†๋Š” ์ €๋Š” ์ž๋ฐ” ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์‹œ ๋‹ค๋“ฌ์€ ํ›„ ์ด๊ฐ•์˜๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์žฌ์ˆ˜๊ฐ• ํ•ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค [๊ฐ•์˜์ˆ˜์ค€] ์ €๋ฅผ ํฌํ•จํ•ด์„œ ์ž๋ฐ”8, ์ต๋ช…ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๋‹คํ˜•์„ฑ๋“ฑ ์ „๋ฐ˜์ ์ธ ์ž๋ฐ” ๊ธฐ๋ณธ๊ธฐ๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด ์‰ฝ์ง€ ์•Š์€ ๊ฐ•์˜ ๊ฐ™์Šต๋‹ˆ๋‹ค ์ž๋ฐ” ์ž…๋ฌธ์ด๋ผ๋Š” ํƒ€์ดํ‹€๋กœ ๋ง‰์ƒ ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋ณด์•˜์„๋•Œ ์ตœ์ƒ๋‹จ์— ๊ฐ์ฒด์ง€ํ–ฅ, ์ž๋ฐ”8์ด ์ตœ ์ƒ๋‹จ์— ์žˆ๋Š”๊ฑฐ ๋ณด๊ณ  ์–ด? ๋‚œ ์ž…๋ฌธ ๋–ผ๋ ค๋ฉด ๋ช‡ ๋…„ ๋” ๊ฑธ๋ฆฌ๊ฒ ๋Š”๋ฐ??.. ํ•˜๋ฉฐ ๊ตฌ๋งค๋ฅผ ๊ณ ๋ ค ํ–ˆ์œผ๋‹ˆ๊นŒ์š” [๊ฐœ์ธ์ ์ธ ๋ฐ”๋žจ] ๊ฐœ์ธ์ ์ธ ๋ฐ”๋žจ์œผ๋กœ๋Š”, ์ง€๊ธˆ๋„ ๋„ˆ๋ฌด ํ›Œ๋ฅญํ•˜์ง€๋งŒ ๋‹จ๊ณ„๋ณ„๋กœ ๋” ๋‹ค์–‘ํ•œ ๊ฐ•์˜๋“ค์ด ์žˆ์—ˆ์Œ ์ข‹์„๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค ๋นฝ์—”๋“œ ์›น ๊ฐœ๋ฐœ ๊ตญ๋น„ ํ˜น์€, ๋ถ€ํŠธ์บ ํ”„ ์ˆ˜๋ฃŒ ํ›„ ์Šคํ”„๋ง์œผ๋กœ ์›น ํŽ˜์ด์ง€๋Š” ๋งŒ๋“ค์—ˆ์ง€๋งŒ, ์ •์ž‘ ํž™์˜์—ญ์ด ๋ญ”์ง€, ๋ฉ”์†Œ๋“œ ์˜์—ญ์ด ๋ญ”์ง€, ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํž™์˜์—ญ์— ์ฐธ์กฐ๊ฐ’์ด ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ด๋Ÿฐ ์ž๋ฐ” ๊ธฐ๋ณธ๊ธฐ๋Š” ์•ฝํ•˜์ง€ ์•Š๋‚˜ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ์ •๋ง ์ฐ ์ž๋ฐ” ์ž…๋ฌธ ๊ฐ•์˜๋กœ ์ž๋ฐ”8, ๋‚ด๋ถ€ํด๋ž˜์Šค, ์ต๋ช…, ์ž๋ฐ”8 ์ด๋Ÿฐ ์ฝ”๋“œ ์ค„์ด๋Š”๊ฑด ํ•ด๋‹น ๊ฐ•์˜๋„ ์ถฉ๋ถ„ํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค, ๊ตฌํ˜„ ํด๋ž˜์Šค, ๋ฉ”์ธ ํ•จ์ˆ˜ ๋“ฑ ์ฝ”๋“œ์ˆ˜ ๋Š” ๊ธธ์ง€๋งŒ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ฝƒ์ธ ๋‹คํ˜•์„ฑ, ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋“ค์ด ๋‹ค์ˆ˜ ์žˆ๋Š” ๊ฐ•์˜๊ฐ€ ๋ก ์นญ๋˜๋ฉด ๋‹ค์ˆ˜์˜ ์ž๋ฐ” ์ž…๋ฌธ์ž ๋ถ„๋“ค์ด ๊ตฌ๋งคํ•˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•ด๋ด…๋‹ˆ๋‹ค ์ €๋Š” ์ง€๊ธˆ๋„ stream api๋ฅผ ๋ณต์Šต ํ•˜์ง€๋งŒ ์•„์ง๋„ ์ธํ„ฐํŽ˜์ด์Šค , ๊ตฌํ˜„์ฒด ์„ ํ•œ ํด๋ž˜์Šค์— ๋‹ด๋Š”๊ฑฐ ์ž์ฒด๊ฐ€ ๋„ˆ๋ฌด ํ˜ผ๋ž€์ด ์˜ค๊ณ  ์ ์‘์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ใ… ใ…  ๋‚ด๋…„์— ์กฐ๊ธˆ ๋” ๊ธฐ๋ณธ๊ธฐ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ด ์กฐ์ฐจ๋„ ์ ์‘์ด ๋˜๊ฒ ์ฃ ? ใ… 

          Kevin๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

          ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

          ๋น„์Šทํ•œ ๊ฐ•์˜

          ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

          ์ง€์‹๊ณต์œ ์ž์˜ ๊นœ์งํ• ์ธ ์ค‘ (8์ผ ๋‚จ์Œ)

          โ‚ฉ49,500

          25%

          โ‚ฉ66,000