CodeGym/Java Course/๋ชจ๋“ˆ 3/์ข‹์€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์˜ ๊ธฐ์ค€

์ข‹์€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์˜ ๊ธฐ์ค€

์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋Šฅ๋ฅ 

์ˆ™๋ จ๋œ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ข‹์€ ์•„ํ‚คํ…์ฒ˜์™€ ๋‚˜์œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ช‡ ๋งˆ๋””๋กœ ์„ค๋ช…ํ•˜๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ข‹์€ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ๋‹จ์ผ ๊ธฐ์ค€์ด๋‚˜ ๋‹จ์ผ ์ •์˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ž˜ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ข‹์€ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋งŒ์กฑํ•ด์•ผ ํ•  ์—ฌ๋Ÿฌ ๊ธฐ์ค€์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ์ข‹์€ ์•„ํ‚คํ…์ฒ˜๋Š” ๋ฌด์—‡๋ณด๋‹ค๋„ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋” ๊ฐ„๋‹จํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋…ผ๋ฆฌ์  ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์˜ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์–‘ํ˜ธํ•˜๋ฉด ์ž‘๋™ ๋ฐฉ์‹๊ณผ ์ฝ”๋“œ ์ž‘์„ฑ ์œ„์น˜๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž˜ ์„ค๊ณ„๋œ ํ”„๋กœ๊ทธ๋žจ์€ ๋ณ€๊ฒฝ, ํ…Œ์ŠคํŠธ, ๋””๋ฒ„๊ทธ ๋ฐ ๊ฐœ๋ฐœ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋˜‘๋˜‘ํ•œ ์‚ฌ๋žŒ๋“ค์€ ์ข‹์€ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ์ค€์„ ๊ณต์‹ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋Šฅ๋ฅ ;
  • ์œ ์—ฐ์„ฑ;
  • ํ™•์žฅ์„ฑ;
  • ํ™•์žฅ์„ฑ
  • ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ;
  • ์ฝ”๋“œ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ.

์‹œ์Šคํ…œ ํšจ์œจ์„ฑ. ๋ฌผ๋ก  ํ”„๋กœ๊ทธ๋žจ์€ ํ• ๋‹น๋œ ์ž‘์—…์„ ํ•ด๊ฒฐํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์—์„œ ๊ธฐ๋Šฅ์„ ์ž˜ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ํ•ด์•ผ ํ•  ์ผ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ(์ž‘์„ฑ๋œ ๊ฒฝ์šฐ) ์ข…์ข… ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž์‹ ์ด ์ฃผ์žฅํ•˜๋Š” ๋ฐ”๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ง€์†์ ์œผ๋กœ ๋ณด๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • Libre Office๋Š” Microsoft Office๋ฅผ ์™„์ „ํžˆ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
  • Edge ๋ธŒ๋ผ์šฐ์ €๋Š” ๋ชจ๋“  ์›น ํ‘œ์ค€์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(์‹ค์ œ๋กœ๋Š” ์•„๋‹˜).
  • ์€ํ–‰์€ ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์„ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Œ).

๊ทธ๋ฆฌ๊ณ  ์•„์ง ์„ฑ๋Šฅ, ์•ˆ์ •์„ฑ, ์‹œ๊ธฐ ์ ์ ˆํ•œ ๋ฒ„๊ทธ ์ˆ˜์ • ๋˜๋Š” ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์— ๋Œ€ํ•œ ์ •๋ณด ๊ฒŒ์‹œ์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

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

์œ ์—ฐ์„ฑ

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

์ข…์ข… ์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ/์„ค๊ณ„์ž๋Š” ํ˜„์žฌ ์ž‘์—…์— ์ด์ƒ์ ์ธ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์š”. 1๋…„ ํ›„์— ๋ฐœํ‘œ๋  ์ž‘์—…์— ๋Œ€ํ•œ ์ด์ƒ์ ์ธ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ฏธ๋ž˜์˜ ์ž‘์—…์„ ์•Œ์ง€ ๋ชปํ•˜๋Š” ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•ญ์ƒ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ผ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ธกํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Ÿฌํ•œ ์ž‘์—…์ด ๋‚˜ํƒ€๋‚  ๊ฒƒ์ด๋ผ๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š”์ง€ ์ธก๋ฉด์—์„œ ์–ป์€ ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

"ํ˜„์žฌ ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์ด ์ž˜๋ชป๋œ ๊ฒƒ์œผ๋กœ ํŒ๋ช…๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ฉ๋‹ˆ๊นŒ?", "์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๊นŒ?" ์‹œ์Šคํ…œ์˜ ํ•œ ์กฐ๊ฐ์„ ๋ณ€๊ฒฝํ•ด๋„ ๋‹ค๋ฅธ ์กฐ๊ฐ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•  ๋•Œ๋งˆ๋‹ค ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์€ ํ™•์ •๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋ฉฐ ์•„ํ‚คํ…์ฒ˜ ์˜ค๋ฅ˜์˜ ๊ฒฐ๊ณผ๋Š” ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์ œํ•œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. "ํ›Œ๋ฅญํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฃผ์š” ๊ฒฐ์ •์„ ์ง€์—ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ"(Bob Martin) ์‹ค์ˆ˜์˜ "๋น„์šฉ"์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋…ผ๋ฆฌ๋ฅผ ๋ณ„๋„์˜ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ํ•˜๋‚˜์˜ ์ž‘์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๋ฒˆ์— 12๊ฐœ์˜ ์„œ๋น„์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ™•์žฅ์„ฑ

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

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

ํ™•์žฅ์„ฑ

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

์ด๊ฒƒ์€ ์†Œ์œ„ YAGNI ์›์น™์ž…๋‹ˆ๋‹ค. "๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค." ๋™์‹œ์— ์•„ํ‚คํ…์ฒ˜๋Š” ํ•„์š”์— ๋”ฐ๋ผ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ€์žฅ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋„์ž…ํ•˜๋Š” ๋ฐ ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์˜ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค๋Š” ์š”๊ตฌ ์‚ฌํ•ญ(์ฆ‰, ๋ณ€๊ฒฝ ๋ฐ ์ง„ํ™” ๊ฐ€๋Šฅ)์€ ๋งค์šฐ ์ค‘์š”ํ•˜์—ฌ "๊ฐœ๋ฐฉํ˜•/ํ์‡„ํ˜• ์›์น™"์ด๋ผ๋Š” ๋ณ„๋„์˜ ์›์น™์œผ๋กœ ๊ณต์‹ํ™”๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค . Open-Closed ์›์น™์€ 5๊ฐ€์ง€ SOLID ์›์น™ ์ค‘ ๋‘ ๋ฒˆ์งธ์ž…๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ์—”ํ„ฐํ‹ฐ(ํด๋ž˜์Šค, ๋ชจ๋“ˆ, ํ•จ์ˆ˜)๋Š” ํ™•์žฅ์—๋Š” ์—ด๋ ค ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ์ˆ˜์ •์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค .

์ฆ‰, ์‹œ์Šคํ…œ์˜ ๊ธฐ์กด ๋ถ€๋ถ„์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค .

์ฆ‰, ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š” ์—†์ด ์ƒˆ ์ฝ”๋“œ(ํ™•์žฅ)๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์ƒˆ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ์š”๊ตฌ ์‚ฌํ•ญ์˜ ์ถœํ˜„์€ ๊ธฐ์กด ๋…ผ๋ฆฌ์˜ ์ˆ˜์ •์„ ์ˆ˜๋ฐ˜ํ•˜์ง€ ์•Š์ง€๋งŒ ์ฃผ๋กœ ํ™•์žฅํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์›์น™์€ "ํ”Œ๋Ÿฌ๊ทธ์ธ ์•„ํ‚คํ…์ฒ˜"(Plugin Architecture)์˜ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์€ ๋‚˜์ค‘์— ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ธ”๋ฆฟ๊ณผ ํ•„ํ„ฐ๋ฅผ ๊ธฐ์–ตํ•˜์‹ญ๋‹ˆ๊นŒ? ์‹ค์ œ๋กœ ์„œ๋ธ”๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋™์ผํ•œ ๋…ผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ•„ํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๋ณ„๋„์˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ค์–‘ํ•œ ์„œ๋น„์Šค ๊ธฐ๋Šฅ์„ ๋ณ„๋„์˜ ๊ณ„์ธต์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ ๊ฒƒ์€ ํ•„ํ„ฐ(์„œ๋น„์Šค ์„œ๋ธ”๋ฆฟ) ๊ฐœ๋…์˜ ๋ฐœ๋ช…์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•ž์œผ๋กœ ํ•„ํ„ฐ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์„œ๋ธ”๋ฆฟ์„ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•„ํ„ฐ๊ฐ€ ๋ฐœ๋ช…๋˜๊ธฐ ์ „์—๋Š” ์š”์ฒญ์„ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๋ชจ๋“  ์„œ๋น„์Šค ๋…ผ๋ฆฌ๊ฐ€ ์„œ๋ธ”๋ฆฟ ์ž์ฒด์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ข…์ข… ๋กœ์ง์˜ ์ž‘์€ ๋ณ€ํ™” ํ•˜๋‚˜๊ฐ€ ๋ชจ๋“  ์„œ๋ธ”๋ฆฟ์„ ๊ฒ€ํ† ํ•˜๊ณ  ๋ชจ๋“  ์„œ๋ธ”๋ฆฟ์— ๋‹ค์–‘ํ•œ ๋ณ€๊ฒฝ์„ ๊ฐ€ํ•  ํ•„์š”์„ฑ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ

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

์ผ๋ฐ˜์ ์œผ๋กœ API ํ…Œ์ŠคํŠธ ๋ฒ”์œ„๋Š” ์ข‹์€ ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด API๊ฐ€ ์˜๋„ํ•œ ๋ฐ”๋ฅผ ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์„œ๋ฒ„ ๋กœ์ง์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ค์ˆ˜๋กœ ์•„๋ฌด๊ฒƒ๋„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š์•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค .

ํ…Œ์ŠคํŠธ ์ž‘์„ฑ์„ ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ๊ฐœ์ธ ๋ฉ”์„œ๋“œ, ๊ฐ•๋ ฅํ•œ ๊ฒฐํ•ฉ, ์ •์  ํด๋ž˜์Šค ๋ฐ ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ์ „ํ˜€ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

"์ฝ”๋“œ๊ฐ€ ์ž‘๋™ํ•˜๋Š”๋ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?"๋ผ๊ณ  ์ดˆ๋ณด์ž๊ฐ€ ๋ฌป์Šต๋‹ˆ๋‹ค.

"ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์—†๋Š” ์ž‘์—… ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?"๋ผ๊ณ  ์ „๋ฌธ๊ฐ€๊ฐ€ ๋ฌป์Šต๋‹ˆ๋‹ค.

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

์ด์ƒ์ ์ธ ์•„ํ‚คํ…์ฒ˜๋ผ๋Š” ์ฑ…์—์„œ ์ธ์šฉํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค: "ํด๋ž˜์Šค์˜ "ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ์„ฑ" ์›์น™์„ ์ข‹์€ ํด๋ž˜์Šค ๋””์ž์ธ์˜ "๋ฆฌํŠธ๋จธ์Šค ํ…Œ์ŠคํŠธ"๋กœ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„๋„ ์ž‘์„ฑํ•˜์ง€ ์•Š๋”๋ผ๋„ 90๋…„ ์•ˆ์— ์ด ์งˆ๋ฌธ์— ๋‹ตํ•˜์‹ญ์‹œ์˜ค. ์‚ฌ๋ก€์˜ %๋Š” ๊ทธ์˜ ๋””์ž์ธ์ด ์–ผ๋งˆ๋‚˜ ์ข‹์€์ง€ ๋˜๋Š” "๋‚˜์œ์ง€"๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค."

TDD(Test-Driven Development)๋ผ๊ณ  ํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ์ „์ฒด ๋ฐฉ๋ฒ•๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌผ๋ก  ๋‹ค๋ฅธ ๊ทน๋‹จ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜์„ฑ

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

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

๋”ฐ๋ผ์„œ ์ข‹์€ ์•„ํ‚คํ…์ฒ˜๋Š” ์ƒˆ๋กœ์šด ์‚ฌ๋žŒ๋“ค์ด ์‹œ์Šคํ…œ์„ ๋น„๊ต์  ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์ž‘์—… ์ค‘์ธ ํ”„๋กœ์ ํŠธ๋ฅผ 5์  ์ฒ™๋„๋กœ ์‰ฝ๊ฒŒ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ด๋Ÿฌํ•œ ์š”๊ตฌ ์‚ฌํ•ญ ๊ฐ๊ฐ์— ๋Œ€ํ•ด 2์ ๋งŒ ๊ณ„์‚ฐํ•˜์‹ญ์‹œ์˜ค . ๊ทธ๋ฆฌ๊ณ  5๊ฐœ ์ด์ƒ์„ ์–ป์œผ๋ฉด ์šด์ด ์ข‹์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ฝ”๋ฉ˜ํŠธ
  • ์ธ๊ธฐ
  • ์‹ ๊ทœ
  • ์ด์ „
์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
์ด ํŽ˜์ด์ง€์—๋Š” ์•„์ง ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค