XP ๊ธฐ๋ฒ์ด๋?
์ ์์ผ ๋ชจํ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ค ํ๋.
๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ์ ์ ์ฐํ๊ฒ ๋์ํ๊ธฐ ์ํด ๊ฐ๋ฐ ๊ณผ์ ์ ๋ฐ๋ณต์ ๊ทน๋ํํ์ฌ ๊ฐ๋ฐ ์์ฐ์ฑ์ ํฅ์์ํค๋ ๋ฐฉ๋ฒ.
- ์งง๊ณ ๋ฐ๋ณต์ ์ธ ๊ฐ๋ฐ์ฃผ๊ธฐ, ๋จ์ํ ์ค๊ณ, ๊ณ ๊ฐ์ ์ ๊ทน์ ์ธ ์ฐธ์ฌ๊ฐ ์ค์ํ๋ค.
- ๋ฆด๋ฆฌ์ฆ์ ๊ธฐ๊ฐ์ ์งง๊ฒ ๋ฐ๋ณตํ๋ฉด์, ๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ์ ์ ๊ทน ๋ฐ์ํ๋ค.
- ํ
์คํธ๋ง๋ค ๊ณ ๊ฐ์ ์ง์ ์ฐธ์ฌ์ํด์ผ๋ก์จ ๊ณ ๊ฐ์ด ์ง์ ๊ธฐ๋ฅ์ ํ์ธํ ์ ์๋ค.
- ๋น๊ต์ ์ผ๋ก ์๊ท๋ชจ ์ธ์์ ๊ฐ๋ฐ ํ๋ก์ ํธ์ ํจ๊ณผ์ ์ด๋ค.
์ฌ์ฉ์ ์คํ ๋ฆฌ (User Story)
๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ์ ๊ฐ๋จํ ์๋๋ฆฌ์ค๋ก ํํํ ๊ฒ. (์ฌ์ฉ์ ์ ๋ณด, ๋ชฉ์ (์ํ๋ ๊ธฐ๋ฅ), ์ด์ ๋ฑ๋ฑ)
๋ด์ฉ์ ๊ธฐ๋ฅ ๋จ์๋ก ๊ตฌ์ฑํ๋ฉฐ ํ์ํ ๊ฒฝ์ฐ ๊ฐ๋จํ ํ
์คํธ ์ฌํญ (test case) ๋ ๊ธฐ์ฌํ๋ค.
๋ฆด๋ฆฌ์ฆ ๊ณํ ์๋ฆฝ (Release Planning)
๋ช ๊ฐ์ ์คํ ๋ฆฌ๊ฐ ์ ์ฉ๋์ด ๋ถ๋ถ์ ์ผ๋ก ๊ธฐ๋ฅ์ด ์๋ฃ๋ ์ ํ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ฆด๋ฆฌ์ฆ(์ถ์)๋ผ๊ณ ํ๋ค
๋ถ๋ถ ํน์ ์ ์ฒด ๊ฐ๋ฐ ์๋ฃ ์์ ์ ๋ํ ์ผ์ ์ ์๋ฆฝํ๋ ๊ฒ์.
์คํ์ดํฌ (Spike)
์๊ตฌ์ฌํญ์ ์ ๋ขฐ์ฑ์ ๋์ด๊ณ , ๊ธฐ์ ๋ฌธ์ ์ ๋ํ ์ํ์ ๊ฐ์์ํค๊ธฐ ์ํด ๋ณ๋๋ก ๋ง๋๋ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ.
์ฒ๋ฆฌํ ๋ฌธ์ ์ธ์ ๋ค๋ฅธ ์กฐ๊ฑด์ ๋ชจ๋ ๋ฌด์ํ๊ณ ์์ฑํ๋ค.
์ดํฐ๋ ์ด์
(Iteration)
Iteration - (๊ณ์ฐ, ์ปดํจํฐ ์ฒ๋ฆฌ ์ ์ฐจ์ ) ๋ฐ๋ณต, repetition of process
ํ๋์ ๋ฆด๋ฆฌ์ฆ๋ฅผ ํ ๋ฒ ๋ ์ธ๋ถํํ ํ ๋จ์
์ผ๋ฐ์ ์ผ๋ก 1~3์ฃผ ์ ๋์ ๊ธฐ๊ฐ์ผ๋ก ์งํ๋๋ค.
์ด ๊ธฐ๊ฐ ์ค์ ์๋ก์ด ์คํ ๋ฆฌ๊ฐ ์์ฑ๋ ์ ์๋ค.
์น์ธ ๊ฒ์ฌ (Acceptance Test)
ํ๋์ ์ดํฐ๋ ์ด์
์์์ ๋ฆด๋ฆฌ์ฆ ๋จ์์ ๋ถ๋ถ ์๋ฃ ์ ํ์ด ๊ตฌํ๋๋ฉด ์ํํ๋ ํ
์คํธ์ด๋ค.
Q.์ดํฐ๋ ์ด์
3๊ฐ์ 1๊ฐ์ ๋ฆด๋ฆฌ์ฆ์ผ๋ 3๊ฐ์ ์ดํฐ๋ ์ด์
์ด ๋๋๋ฉด ์น์ธ ๊ฒ์ฌ ์งํํ๊ธฐ. ์ด๋ฐ ๋๋์ธ๊ฑด๊ฐ?
A. no ๊ทธ ๊ฒฝ์ฐ ์น์ธ๊ฒ์ฌ๊ฐ ์๋๋ผ ๋ฆด๋ฆฌ์ฆ ํ
์คํธ์.
์ฌ์ฉ์ ์คํ ๋ฆฌ์ ๊ธฐ์ฌํ ํ
์คํธ ์ฌํญ์ ๋ํด ๊ณ ๊ฐ์ด ์ง์ ์ํํ๋ค.
ํ
์คํธ ์ค ๋ฐ๊ฒฌํ ์ค๋ฅ ์ฌํญ์ ๋ค์ ์ดํฐ๋ ์ด์
์ ๋ฐ์ํ๋ค.
์๊ท๋ชจ ๋ฆด๋ฆฌ์ฆ (Small release)
๋ฆด๋ฆฌ์ฆ๋ฅผ ์๊ท๋ชจ๋ก ํ๊ฒ ๋๋ฉด ๊ณ ๊ฐ์ ๋ฐ์์ ๊ธฐ๋ฅ๋ณ๋ก ํ์ธํ ์ ์์ด์ ์๊ตฌ์ฌํญ์ ์ ์ฐํ๊ฒ ๋์ํ ์ ์๋ค.
๋ฆด๋ฆฌ์ฆ ๊ธฐ๊ฐ ๋์ ๊ณํ๋ ์ดํฐ๋ ์ด์
์ด ๋ชจ๋ ์๋ฃ ๋๋ฉด ๋ฆด๋ฆฌ์ฆ = ์๊ท๋ชจ ๋ฆด๋ฆฌ์ฆ ํ ๋ค์ ๋ฆด๋ฆฌ์ฆ๋ก ๋์ด๊ฐ๋ค.
๋ง์ง๋ง ๋ฆด๋ฆฌ์ฆ๊ฐ ๋๋ฌ์ ๊ฒฝ์ฐ ์ต์ข
ํ
์คํธ ํ ์ต์ข
๊ฒฐ๊ณผ๋ฌผ์ ๊ณ ๊ฐ์๊ฒ ์ ๋ฌํ๋ค.
XP ์ ์ฃผ์ ์ค์ฒ ๋ฐฉ๋ฒ
- ์ง ํ๋ก๊ทธ๋๋ฐ(Pair Programming), ๊ณต๋ ์ฝ๋ ์์ (Collective Ownership), ํ
์คํธ ์ฃผ๋ ๊ฐ๋ฐ (Test - Driven Development), ์ ์ฒด ํ (Whole team), ๊ณ์์ ์ธ ํตํฉ, ๋์์ธ ๊ฐ์ ๋๋ ๋ฆฌํฉํ ๋ง, ์๊ท๋ชจ ๋ฆด๋ฆฌ์ฆ ๋ฑ