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 ๋ก ์ ์ํ์ฌ ํ์ฉํ๋ค.
- ๊ฐ์ฑ (Rigidity) - ๋์์ธ์ ๋ณ๊ฒฝ์ด ์ด๋ ต๋ค.
- ์ทจ์ฝ์ฑ (Fragility) - ๋์์ธ์ด ๊นจ์ง๊ธฐ ์ฝ๋ค.
- ๋ถ๋์ฑ (Immobility) - ๋์์ธ์ ์ฌ์ฌ์ฉํ๊ธฐ ์ด๋ ต๋ค.
- ์ ๋ (Viscosity) - ์ฌ๋ฐ๋ฅธ ์ผ์ ํ๊ธฐ๊ฐ ์ด๋ ต๋ค.
- ๋ถํ์ํ ๋ณต์ก์ฑ (Needless Complexity) - ๊ณผ์ ์ค๊ณ๋ฅผ ํผํ๋ผ.
- ๋ถํ์ํ ๋ฐ๋ณต (Needless Repetition) - ๋ง์ฐ์ค์ ์ค์ฉ.
- ๋ถํฌ๋ช ๋ (Opacity) - ๋ฌด์ง์ํ ํํ.
์์ ๊ฐ์ ๋์์ธ ๋ฌธ์ ์ ์ ๊ฐ์ ํ๊ธฐ ์ํด SOLID Principle ์ ํ์ฉํ์ฌ Code Smell ์ ๊ฐ์ ํ๋ค. ๋ค๋ง, ๊ณผ์ ๋ถ๊ธ์ผ๋ก ๋ณํ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ์ ์ ํ๊ฒ ํ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๋ณํ์ ๋์ํ๋ ๋ฏผ์ฒฉํ ๋ฐ๋ณต
ํ๋ก๊ทธ๋จ์ ๊ธฐํ, ์ค๊ณ, ๊ฐ๋ฐ ๋ชจ๋ ์ฌ๋์ ์ค์ฌ์ผ๋ก ์ด๋ค์ง๋ค.
์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ(XP) ์์ ๊ณ ๊ฐ๊ณผ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ์์ ๊ธด๋ฐํ ์์ฌ์ํต์ ์งํํ์ฌ ์๊ตฌ์ฌํญ์ ๋์ถํ๊ณ ์ํํธ์จ์ด๋ฅผ ์์ฑํ๋ ์์ ์ ๋ฐ๋ณตํ๋ค. ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ํตํด ์์ฌ ์ํต ๋๊ตฌ๋ณด๋ค ์ฌ๋์ ์ง์คํ์ฌ ์์ฐ์ฑ์ ๋์ด์ฌ๋ฆฐ๋ค.
์ด๊ธฐ ๋ถํฐ ๋๋ฌด ๋ง์ ๊ฒ์ ๊ณํํ์ง ์๊ณ ๋ณํ์ ๋น ๋ฅด๊ฒ ํผ๋๋ฐฑ์ ํ ์ ์๋ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ค.
Code Smell ์ ํตํด ์ข์ง ๋ชปํ ๋์์ธ์ ๋ฌธ์ ๋ฅผ ์๋ณํ๋ค. ์ด๋ฅผ SOLID ๋ฑ์ ์ค๊ณ ์์น์ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ์ง๋จํ๊ณ ์ ์ ํ ๋์์ธ ํจํด์ ํ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์ด๋ฐ ์ํํธ์จ์ด ๊ฐ๋ฐ, ๊ฐ์ ๊ณผ์ ์ ๋งค์๊ฐ ๋ฐ๋ณตํ๋ฉด์ ์์คํ ์ ๋์์ธ์ ๊ฐ๋ฅํ ๋จ์ํ๊ณ ๊นจ๋ํ๊ณ ํํ๋ ฅ ์๊ฒ ์ ์งํ ์ ์๋๋ก ๋ ธ๋ ฅํ๋ค.
'๐ถ Experience > Life Story' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฐ๋ง ๊ฒฐ์ฐ] 2022๋ 3๋ถ์ - 1๋ถ ์ข์ ๋ฐฉ๋ฒ (0) | 2022.12.25 |
---|---|
[ํ๊ณ ] ํ์ด์ฌ ํ ์ด ํ๋ก์ ํธ ์ฝ๋ ๋ฆฌ๋ทฐ (2) | 2022.12.11 |
[ํ๊ณ ] ๋์ ์ด์ ์ค๋ ๋ด์ผ (0) | 2022.10.02 |
[์ํ] ์ํ์ผ๋ก ์๊ฐํ๊ธฐ - ์ค์ฆํค ๊ฐํ๋ก ์ง์, ์ต์ง์ ์ฎ๊น (0) | 2022.09.04 |
[์ํ] Tim Cook - ๋ฆฐ๋ ์นด๋ ์ง์ (0) | 2019.06.26 |