1. TDD (Test Driven Development) λž€?

TDDλŠ” 'ν…ŒμŠ€νŠΈ 주도 개발'둜 μž‘μ€ λ‹¨μœ„μ˜ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•΄ ν”„λ‘œκ·Έλž¨μ΄ 잘λͺ»λ˜μ—ˆμŒμ„ 증λͺ…ν•˜κ³ ,

이λ₯Ό μˆ˜μ •ν•˜λ©΄μ„œ λͺ©ν‘œμ— λΆ€ν•©ν•˜λŠ” μ½”λ“œλ₯Ό μΆ”κ°€ν•˜λŠ” 단계λ₯Ό 반볡 κ΅¬ν˜„ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 방법둠이닀.

 

일반적인 κ°œλ°œλ°©μ‹μ€ 'μš”κ΅¬μ‚¬ν•­ 뢄석 > 섀계 > 개발 > ν…ŒμŠ€νŠΈ > 배포'의 ν˜•νƒœ.

μ΄λŸ¬ν•œ 방식은 μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ„ 느리게 ν•˜λŠ” 잠재적 μœ„ν—˜ 쑴재

μž‘μ€ λΆ€λΆ„μ˜ κΈ°λŠ₯ μˆ˜μ •μ—λ„ λͺ¨λ“  뢀뢄을 ν…ŒμŠ€νŠΈν•΄μ•Όν•˜λ―€λ‘œ 전체 버그 κ²€μΆœμ΄ μ–΄λ €μ›Œμ§

 

TDD의 λŒ€ν‘œμ μΈ Tool 'JUnit'은 κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” Java λ‹¨μœ„ ν…ŒμŠ€νŠΈ ν”„λ ˆμž„μ›Œν¬μ΄λ‹€.

μ΅œκ·Όμ—λŠ” λ™μž‘ ν…ŒμŠ€νŠΈ λΏλ§Œμ•„λ‹ˆλΌ jenkins(λΉŒλ“œμžλ™ν™”λ₯Ό μœ„ν•œ ) λ“±μ˜ ci 도ꡬλ₯Ό μ‚¬μš©ν•  λ•Œ

ν…ŒμŠ€νŠΈ μ½”λ“œμ˜ 성곡여뢀λ₯Ό 확인해 pr을 ν†΅κ³Όμ‹œν‚€κ±°λ‚˜ 운영브랜치둜 merge μ‹œν‚€λŠ” λ“±μ˜ μΆ”κ°€λ™μž‘μ—λ„ 많이 ν™œμš©λœλ‹€.

 

 

2. TDD 개발주기

- RED : μ‹€νŒ¨ν•˜λŠ” ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€.

- GREEN : ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ„±κ³΅μ‹œν‚€κΈ° μœ„ν•œ μ‹€μ œ μ½”λ“œλ₯Ό μž‘μ„±

- BLUE : 쀑볡 μ½”λ“œ 제거, μΌλ°˜ν™” λ“±μ˜ λ¦¬νŒ©ν† λ§ μˆ˜ν–‰- 

 

- TDD μ„ΈλΆ€ν”„λ‘œμ„ΈμŠ€

λ‹¨μœ„ ν…ŒμŠ€νŠΈ μž‘μ„± > λ‹¨μœ„ ν…ŒμŠ€νŠΈ μ‹€ν–‰ > 운영 μ½”λ“œ μž‘μ„± > λ‹¨μœ„ ν…ŒμŠ€νŠΈ μ‹€ν–‰ > 섀계 κ°œμ„ (λ¦¬νŒ©ν† λ§) > λ‹¨μœ„ν…ŒμŠ€νŠΈ ...반볡

 

 

3. μ–΄λ–€ μƒν™©μ—μ„œ TDDλ₯Ό ν•΄μ•Όν• κΉŒ?

TDDλŠ” μ‚¬μš©μ„€λͺ…μ„œμ΄μž μ˜μ‚¬μ†Œν†΅μ˜ μˆ˜λ‹¨μ΄ λ˜λ―€λ‘œ ν”Όλ“œλ°±κ³Ό ν˜‘λ ₯이 μ¦μ§„λ˜μ–΄, λΆˆν™•μ‹€μ„±μ— λŒ€λΉ„κ°€ κ°€λŠ₯ν•΄μ§„λ‹€.

처음 ν•΄λ³΄λŠ” ν”„λ‘œκ·Έλž¨ μ£Όμ œμ΄κ±°λ‚˜(λ‚΄λΆ€μ˜ λΆˆν™•μ‹€μ„±), 고객 μš”κ΅¬μ‘°κ±΄μ΄ λ°”λ€” 수 μžˆλŠ” ν”„λ‘œμ νŠΈ(μ™ΈλΆ€μ˜ λΆˆν™•μ‹€μ„±),

λˆ„κ°€ μœ μ§€λ³΄μˆ˜ν•  μ§€ λͺ¨λ₯΄λŠ” 경우 λ“±μ˜ 상황에 μ μš©ν•˜λ©΄ μ’‹λ‹€.

 

 

4. TDD μž₯점

- 개발자의 μ˜λ„λŒ€λ‘œ 둜직이 λ™μž‘ν•˜λŠ”μ§€ λͺ…ν™•νžˆ μ•Œ 수 μžˆλ‹€. (개발의 λ°©ν–₯성을 μžƒμ§€ μ•Šκ²Œ μœ μ§€)

- 잠재적 였λ₯˜λ₯Ό λ°©μ–΄ν•˜μ—¬ 디버깅 μ‹œκ°„κ³Ό μž¬μ„€κ³„ μ‹œκ°„μ„ 단좕할 수 μžˆλ‹€.

- 둜직 변경에 λŒ€ν•œ 영ν–₯도λ₯Ό λͺ…ν™•νžˆ μ•Œ 수 있고, μΆ”κ°€ κ΅¬ν˜„μ΄ μš©μ΄ν•˜λ‹€.

 

 

5. TDD 단점

- μƒμ‚°μ„±μ˜ μ €ν•˜

(SI ν”„λ‘œμ νŠΈμ—μ„œλŠ” μ†Œν”„νŠΈμ›¨μ–΄ ν’ˆμ§ˆλ³΄λ‹€ 납기일 μ€€μˆ˜κ°€ μ€‘μš”ν•˜λ―€λ‘œ TDD 방식을 잘 μ‚¬μš©ν•˜μ§€ μ•ŠμŒ)

- 기쑴의 κ°œλ°œλ°©μ‹μ„ 많이 바꾸어야함

- ꡬ쑰에 얽맀인닀.

+ Recent posts