๋‚˜๋งŒ์˜ ์˜ค๋ž˜๋‹ฌ๋ฆฌ๊ธฐ๋ฅผ ํ•˜๋Š” ์‚ฌ๋žŒ

Become a ghost

Computer Science/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๊ณต๋ถ€๊ธฐ๋ก

[240617] XP (eXtreme Programming, ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ๊ธฐ๋ฒ•์ด๋ž€

jennnnna 2024. 6. 18. 11:34

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), ๊ณ„์†์ ์ธ ํ†ตํ•ฉ, ๋””์ž์ธ ๊ฐœ์„  ๋˜๋Š” ๋ฆฌํŒฉํ† ๋ง,  ์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์ฆˆ ๋“ฑ