๏ฃฟ Apple Lover Developer & Artist

์˜์†์ ์ธ ๋””์ž์ธ์— ํ˜„๋Œ€์˜ ๊ณต๊ฐ์„ ์ฑ„์›Œ๋„ฃ๋Š” ๊ณต๋ฐฉ์ž…๋‹ˆ๋‹ค

๐Ÿถ Experience/Life Story

[์ด์•ผ๊ธฐ] ์ธ๊ฐ„ ์ค‘์‹ฌ์˜ ๋””์ž์ธ ์„ค๊ณ„

singularis7 2022. 10. 16. 22:45
๋ฐ˜์‘ํ˜•

Overview

22๋…„ ๊ฐ€์„ ํ•™๊ธฐ, ํ•™๊ต ๊ฐ•์ขŒ ์ค‘ ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด ๊ณผ๋ชฉ์„ ์ˆ˜๊ฐ•ํ•˜๊ณ  ์žˆ๋‹ค. ์—‰ํด ๋ฐฅ ์„ ์ƒ๋‹˜๊ป˜์„œ ์“ฐ์‹  Agile Software Development , ์˜ค๋ ๋ฆฌ์˜ ํ—ค๋“œ ํผ์ŠคํŠธ ๋””์ž์ธ ํŒจํ„ด ์ฑ…์„ ์ฝ์œผ๋ฉด์„œ ๊น€์ธ๊ทœ ๊ต์ˆ˜๋‹˜๊ณผ ํ•™์šฐ๋ถ„๋“ค์ด ์„œ๋กœ ์ƒ๊ฐ์„ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค.

๋‚˜๋Š” ์–ธ์–ด ์‚ฌ์šฉ๋ฒ• ์ง€์‹์„ "์—ด์‹ฌํžˆ" ๊ณต๋ถ€ํ–ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์› ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ๋ฌธ์ œ์˜€์Œ์„ ์ธ์‹ํ–ˆ๋‹ค. ์ธํ„ฐ๋„ท์— ๋– ๋„๋Š” ์ •๋ณด๋ฅผ ๋ณด๊ณ  ํ”ผ์ƒ์ ์ธ ์ง€์‹๋งŒ ์ฐพ์•„๋‹ค๋‹Œ ๊ฒƒ์€ ์•„๋‹Œ์ง€ ์ƒ๊ฐํ•ด๋ณด์•˜๋‹ค. ์ธ๊ฐ„์ด ์ƒˆ๋กœ์šด ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค ๋•Œ์—๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋” ์ž˜ํ•ด๋‚ด๊ธฐ ๋งŒ๋“ค์ง€๋Š” ์•Š์•˜์„๊นŒ? ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ํ•˜๋ ค๊ณ  ์ด๋Ÿฐ ๋ฉ”๋‰ด์–ผ ๋“ค์„ ๋“ค์ถฐ๋ณด๊ณ  ์žˆ๋˜ ๊ฒƒ์ผ๊นŒ?

Agile Software Development ๊ด€์Šต์„ ํ†ตํ•ด ์ธ๊ฐ„ ์ค‘์‹ฌ์˜ ๊ฐ€์น˜๊ด€์ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ด€์Šต์— ์ค€ ์˜ํ–ฅ์„ ์ผ๋ถ€ ์ถ”๋ ค๋ณด๊ณ  "๋ณ€ํ™”" ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์„ค๊ณ„๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœํ•œ๋‹ค.


์ธ๊ฐ„์„ ์ค‘์‹ฌ์œผ๋กœ ๊ฐ€์น˜๊ด€์„ ๋ฐ”๊พธ๋‹ค

A lot of times, people don't know that they want until you show it to them - Steve Jobs

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

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

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

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

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

(... ์ค‘๋žต ...)

๊ณต์ •๊ณผ ๋„๊ตฌ๋ณด๋‹ค ๊ฐœ์ธ๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํฌ๊ด„์ ์ธ ๋ฌธ์„œ๋ณด๋‹ค ์ž‘๋™ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ
๊ณ„์•ฝ ํ˜‘์ƒ๋ณด๋‹ค ๊ณ ๊ฐ๊ณผ์˜ ํ˜‘๋ ฅ์„
๊ณ„ํš์„ ๋”ฐ๋ฅด๊ธฐ๋ณด๋‹ค ๋ณ€ํ™”์— ๋Œ€์‘ํ•˜๊ธฐ๋ฅผ

๊ฐ€์น˜ ์žˆ๊ฒŒ ์—ฌ๊ธด๋‹ค.

(... ํ›„๋žต ...)

์†Œํ”„ํŠธ์›จ์–ด ์ถ”์ƒํ™” ์„ค๊ณ„์˜ ์—ญ์„ค

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

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

๋งŒ์•ฝ ์ธ๋ฅ˜๊ฐ€ ์„ธ์ƒ์˜ ๋ณ€ํ™”๋ฅผ ์•Œ๋ฉด์„œ๋„ ์•„๋ฌด๋Ÿฐ ๋Œ€์‘์„ ํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๊ณ ๋Œ€ ์ธ๋ฅ˜๋กœ๋ถ€ํ„ฐ ๋‘๋‡Œ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋ถ€๋ถ„์—์„œ ๊ณ„์† ์ง„ํ™”ํ–ˆ๋‹ค๋ฉด ๊ณผ์—ฐ ์ธ๋ฅ˜๋Š” ์‚ด์•„๋‚จ์„ ์ˆ˜ ์žˆ์—ˆ์„๊นŒ?

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

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

  1. ๊ฐ•์„ฑ (Rigidity) - ๋””์ž์ธ์˜ ๋ณ€๊ฒฝ์ด ์–ด๋ ต๋‹ค.
  2. ์ทจ์•ฝ์„ฑ (Fragility) - ๋””์ž์ธ์ด ๊นจ์ง€๊ธฐ ์‰ฝ๋‹ค.
  3. ๋ถ€๋™์„ฑ (Immobility) - ๋””์ž์ธ์€ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
  4. ์ ๋„ (Viscosity) - ์˜ฌ๋ฐ”๋ฅธ ์ผ์„ ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.
  5. ๋ถˆํ•„์š”ํ•œ ๋ณต์žก์„ฑ (Needless Complexity) - ๊ณผ์ž‰ ์„ค๊ณ„๋ฅผ ํ”ผํ•˜๋ผ.
  6. ๋ถˆํ•„์š”ํ•œ ๋ฐ˜๋ณต (Needless Repetition) - ๋งˆ์šฐ์Šค์˜ ์˜ค์šฉ.
  7. ๋ถˆํˆฌ๋ช…๋„ (Opacity) - ๋ฌด์งˆ์„œํ•œ ํ‘œํ˜„.

์œ„์™€ ๊ฐ™์€ ๋””์ž์ธ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด SOLID Principle ์„ ํ™œ์šฉํ•˜์—ฌ Code Smell ์„ ๊ฐœ์„ ํ•œ๋‹ค. ๋‹ค๋งŒ, ๊ณผ์œ ๋ถˆ๊ธ‰์œผ๋กœ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์ ์ ˆํ•˜๊ฒŒ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๋ณ€ํ™”์— ๋Œ€์‘ํ•˜๋Š” ๋ฏผ์ฒฉํ•œ ๋ฐ˜๋ณต

ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐํš, ์„ค๊ณ„, ๊ฐœ๋ฐœ ๋ชจ๋‘ ์‚ฌ๋žŒ์„ ์ค‘์‹ฌ์œผ๋กœ ์ด๋ค„์ง„๋‹ค.

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

์ดˆ๊ธฐ ๋ถ€ํ„ฐ ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์„ ๊ณ„ํšํ•˜์ง€ ์•Š๊ณ  ๋ณ€ํ™”์— ๋น ๋ฅด๊ฒŒ ํ”ผ๋“œ๋ฐฑ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•œ๋‹ค.

Code Smell ์„ ํ†ตํ•ด ์ข‹์ง€ ๋ชปํ•œ ๋””์ž์ธ์˜ ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ•œ๋‹ค. ์ด๋ฅผ SOLID ๋“ฑ์˜ ์„ค๊ณ„ ์›์น™์„ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จํ•˜๊ณ  ์ ์ ˆํ•œ ๋””์ž์ธ ํŒจํ„ด์„ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค. ์ด๋Ÿฐ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ, ๊ฐœ์„  ๊ณผ์ •์„ ๋งค์ˆœ๊ฐ„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์‹œ์Šคํ…œ์˜ ๋””์ž์ธ์„ ๊ฐ€๋Šฅํ•œ ๋‹จ์ˆœํ•˜๊ณ  ๊นจ๋—ํ•˜๊ณ  ํ‘œํ˜„๋ ฅ ์žˆ๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•