SlideShare une entreprise Scribd logo
1  sur  11
Test-Driven Development
TDD의 개요와 활용예시
기술연구소 송진호
기존 개발방법론의 문제점
. 설계 시 구현작업의 난이도 예측의 어려움
. 설계 및 요구사항 변경에 따른 대응이 어려움
. 완성된 결과물이 고객의 요구를 충족하지 못함.
애자일 선언
절차와 도구를 넘어선 개성과 화합
문서화를 넘어선 동작하는 소프트웨어
계약과 협상을 넘어선 고객과의 협력
계획 준수를 넘어서 변화에의 대응
새로운 개발방법론이 아닌
새로운 가치와 철학
그래서 애자일(Agile)
. 1. 날렵한, 민첩한 2. (생각이) 재빠른, 기민한
. 문서가 아닌 코드에 기반한 개발
. 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내며, 요구를 더하고 수정
하는 점진적인 개발
. 익스트림 프로그래밍, 스크럼, FDD
TDD Overview
. Test-FirstDevelopment
. 보다 명확한 프로그래밍 목적을 디자인 단계에서 반드시 정의하고, 무엇을 테스
트 해야할지 미리 정의한다
어떻게?
. 실패를 포함하는 테스트 코드의 작성
. 앞서 작성된 코드를 통과 할 수 있는 ‘최소한의 구현 코드’ 작성
. 구현 코드에 대한 리팩토링
. 테스트코드 작성 - 최소한의 구현코드 - 리팩토링 주기를 반복
왜, TDD 인가?
1.목표의 구체화
2.짧은 개발 패턴을 통한 리듬
• 짧고 명확한 문제정의로 집중력 향상
• 테스트 코드를 통과하는 구현체 코드작성은 개발자에게 성취감을 줌
3.테스트 코드는 그 자체로 매뉴얼, 혹은 API 문서
• 점점 거짓말을 하는 문서 vs 살아있는 문서
4.개발하고 있는 코드의 문제점을 빠르게 잡아낼 수 있음
오해 - 결과적으로 비용은 더 들고, 개발기간이 길어진다?
• 테스트와 테스트 자동화를 지원하는 프레임워크에 대한 추가적인 학습
└> 모든 프레임워크의 도입은 추가적인 학습 및 시간이 필수.
• 테스트코드 추가 작성으로 인해 결과적으로 작성해야 하는 코드 증가
└> 실제 코드를 작성하는 시간보다, 변경사항 반영, 디버깅 등에 시간을 더
투자하는 많은 경우가 많음. 이를 개선하고 예방하는 측면에서 감수할 수 있는
투자
TDD의 함정
• 테스트의 오버헤드
• 모든 코드의 테스트코드 작성을 의무화하고, 쓸데없는 테스트케이스 작성에 시간을
빼앗기게되는 상황 유발
• 설계를 망치는 TDD
• 유닛테스트를 작성하기 쉬운 설계를 은연 중에 강요. 시스템을 횡단하는 기능을 기피하게해서
설계를 기형적으로 만들 수 있음
예시
TDD를 통한 ArkSQL Library 구현
Q&A

Contenu connexe

Tendances

Test Driven Development (TDD) basic
Test Driven Development (TDD) basicTest Driven Development (TDD) basic
Test Driven Development (TDD) basicCurt Park
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법선협 이
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스철민 신
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종guest7178884
 
Deview nhn애자일개발 ci
Deview nhn애자일개발 ciDeview nhn애자일개발 ci
Deview nhn애자일개발 ciNAVER D2
 
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개Young-Ho Cha
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in FlittoYongjun Kim
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013호정 이
 
테스트 케이스와 SW 품질
테스트 케이스와 SW 품질테스트 케이스와 SW 품질
테스트 케이스와 SW 품질도형 임
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법도형 임
 
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)SangIn Choung
 
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018SangIn Choung
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅영기 김
 
testing for agile?, agile for testing
testing for agile?, agile for testingtesting for agile?, agile for testing
testing for agile?, agile for testingSangIn Choung
 
유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발도형 임
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유agilekorea
 

Tendances (18)

Test Driven Development (TDD) basic
Test Driven Development (TDD) basicTest Driven Development (TDD) basic
Test Driven Development (TDD) basic
 
Tdd with JUnit 1
Tdd with JUnit 1Tdd with JUnit 1
Tdd with JUnit 1
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스[AUG]개발자와 QA가 상생하는 테스트 프로세스
[AUG]개발자와 QA가 상생하는 테스트 프로세스
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종
 
Deview nhn애자일개발 ci
Deview nhn애자일개발 ciDeview nhn애자일개발 ci
Deview nhn애자일개발 ci
 
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개코드 리뷰 시스템 소개
코드 리뷰 시스템 소개
 
C++과 TDD
C++과 TDDC++과 TDD
C++과 TDD
 
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
 
Code Review - DevOn2013
Code Review - DevOn2013Code Review - DevOn2013
Code Review - DevOn2013
 
테스트 케이스와 SW 품질
테스트 케이스와 SW 품질테스트 케이스와 SW 품질
테스트 케이스와 SW 품질
 
프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법프로젝트 Xxx에 적용하고 싶은 개발방법
프로젝트 Xxx에 적용하고 싶은 개발방법
 
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
애자일 테스트 프랙티스와 사례들 (부제: 협업의 힘)
 
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
코드 테스트와 커버리지 관련 설문 및 개선계획수립 in 2018
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅
 
testing for agile?, agile for testing
testing for agile?, agile for testingtesting for agile?, agile for testing
testing for agile?, agile for testing
 
유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발유지보수를 고려한 SW 개발
유지보수를 고려한 SW 개발
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유
 

En vedette

글로벌 ITSM시장 트렌드, Global ITSM Market trends
글로벌 ITSM시장 트렌드, Global ITSM Market trends글로벌 ITSM시장 트렌드, Global ITSM Market trends
글로벌 ITSM시장 트렌드, Global ITSM Market trendsHyunmyung Kim
 
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)Kay Kim
 
애자일, 소프트웨어와 인간을 말하다(eXtreme Programming, XP)
애자일, 소프트웨어와 인간을 말하다(eXtreme Programming, XP)애자일, 소프트웨어와 인간을 말하다(eXtreme Programming, XP)
애자일, 소프트웨어와 인간을 말하다(eXtreme Programming, XP)윤성 이
 
Itsm팀 내부세미나 익스트림프로그래밍_정희찬
Itsm팀 내부세미나 익스트림프로그래밍_정희찬Itsm팀 내부세미나 익스트림프로그래밍_정희찬
Itsm팀 내부세미나 익스트림프로그래밍_정희찬정 희찬
 
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)Kay Kim
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Naotoshi Seo
 
익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)영기 김
 

En vedette (7)

글로벌 ITSM시장 트렌드, Global ITSM Market trends
글로벌 ITSM시장 트렌드, Global ITSM Market trends글로벌 ITSM시장 트렌드, Global ITSM Market trends
글로벌 ITSM시장 트렌드, Global ITSM Market trends
 
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
실전 애자일 게임 개발 (Agile Game Agile Game Development From The Trenches)
 
애자일, 소프트웨어와 인간을 말하다(eXtreme Programming, XP)
애자일, 소프트웨어와 인간을 말하다(eXtreme Programming, XP)애자일, 소프트웨어와 인간을 말하다(eXtreme Programming, XP)
애자일, 소프트웨어와 인간을 말하다(eXtreme Programming, XP)
 
Itsm팀 내부세미나 익스트림프로그래밍_정희찬
Itsm팀 내부세미나 익스트림프로그래밍_정희찬Itsm팀 내부세미나 익스트림프로그래밍_정희찬
Itsm팀 내부세미나 익스트림프로그래밍_정희찬
 
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014
 
익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)익스트림 프로그래밍(Xp)
익스트림 프로그래밍(Xp)
 

Similaire à Test driven development

애자일 하라
애자일 하라애자일 하라
애자일 하라진수 허
 
Learning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingLearning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingJongchan Kim
 
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824AWSKRUG - AWS한국사용자모임
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDDSunghyouk Bae
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)영기 김
 
Dev rookie codecomplete-1
Dev rookie codecomplete-1Dev rookie codecomplete-1
Dev rookie codecomplete-1대영 노
 
시간 있으면 설계나 합시다
시간 있으면 설계나 합시다시간 있으면 설계나 합시다
시간 있으면 설계나 합시다codevania
 
Agile SW 개발
Agile SW 개발Agile SW 개발
Agile SW 개발혁 권
 
Wwc2016 기획디자인개발그리고프로토
Wwc2016 기획디자인개발그리고프로토Wwc2016 기획디자인개발그리고프로토
Wwc2016 기획디자인개발그리고프로토keesung kim
 
모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용Kevin Kim
 
CI/CD in embedded dev process
CI/CD in embedded dev processCI/CD in embedded dev process
CI/CD in embedded dev processJaejoon Jung
 
아키텍트대회 유엔진-장진영-Sw공학표준을 기반한 alm
아키텍트대회 유엔진-장진영-Sw공학표준을 기반한 alm아키텍트대회 유엔진-장진영-Sw공학표준을 기반한 alm
아키텍트대회 유엔진-장진영-Sw공학표준을 기반한 almuEngine Solutions
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 
midas NFX catalog 2014
midas NFX catalog 2014midas NFX catalog 2014
midas NFX catalog 2014midasnfx
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스Hee Jae Lee
 
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기Ji-Woong Choi
 
협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0Sangcheol Hwang
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)SangIn Choung
 
토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드Justin Park
 

Similaire à Test driven development (20)

애자일 하라
애자일 하라애자일 하라
애자일 하라
 
Learning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingLearning Unit Testing with Pair Programming
Learning Unit Testing with Pair Programming
 
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)린 소프트웨어 개발(Lean software development)
린 소프트웨어 개발(Lean software development)
 
Dev rookie codecomplete-1
Dev rookie codecomplete-1Dev rookie codecomplete-1
Dev rookie codecomplete-1
 
Custom assert
Custom assertCustom assert
Custom assert
 
시간 있으면 설계나 합시다
시간 있으면 설계나 합시다시간 있으면 설계나 합시다
시간 있으면 설계나 합시다
 
Agile SW 개발
Agile SW 개발Agile SW 개발
Agile SW 개발
 
Wwc2016 기획디자인개발그리고프로토
Wwc2016 기획디자인개발그리고프로토Wwc2016 기획디자인개발그리고프로토
Wwc2016 기획디자인개발그리고프로토
 
모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용모바일 앱 개발을 위한 Agile 적용
모바일 앱 개발을 위한 Agile 적용
 
CI/CD in embedded dev process
CI/CD in embedded dev processCI/CD in embedded dev process
CI/CD in embedded dev process
 
아키텍트대회 유엔진-장진영-Sw공학표준을 기반한 alm
아키텍트대회 유엔진-장진영-Sw공학표준을 기반한 alm아키텍트대회 유엔진-장진영-Sw공학표준을 기반한 alm
아키텍트대회 유엔진-장진영-Sw공학표준을 기반한 alm
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
midas NFX catalog 2014
midas NFX catalog 2014midas NFX catalog 2014
midas NFX catalog 2014
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
 
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
 
협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0
 
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
 
토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드토종 개발자가 바라본 실리콘밸리 개발 트랜드
토종 개발자가 바라본 실리콘밸리 개발 트랜드
 

Test driven development

  • 1. Test-Driven Development TDD의 개요와 활용예시 기술연구소 송진호
  • 2. 기존 개발방법론의 문제점 . 설계 시 구현작업의 난이도 예측의 어려움 . 설계 및 요구사항 변경에 따른 대응이 어려움 . 완성된 결과물이 고객의 요구를 충족하지 못함.
  • 3. 애자일 선언 절차와 도구를 넘어선 개성과 화합 문서화를 넘어선 동작하는 소프트웨어 계약과 협상을 넘어선 고객과의 협력 계획 준수를 넘어서 변화에의 대응 새로운 개발방법론이 아닌 새로운 가치와 철학
  • 4. 그래서 애자일(Agile) . 1. 날렵한, 민첩한 2. (생각이) 재빠른, 기민한 . 문서가 아닌 코드에 기반한 개발 . 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내며, 요구를 더하고 수정 하는 점진적인 개발 . 익스트림 프로그래밍, 스크럼, FDD
  • 5. TDD Overview . Test-FirstDevelopment . 보다 명확한 프로그래밍 목적을 디자인 단계에서 반드시 정의하고, 무엇을 테스 트 해야할지 미리 정의한다
  • 6. 어떻게? . 실패를 포함하는 테스트 코드의 작성 . 앞서 작성된 코드를 통과 할 수 있는 ‘최소한의 구현 코드’ 작성 . 구현 코드에 대한 리팩토링 . 테스트코드 작성 - 최소한의 구현코드 - 리팩토링 주기를 반복
  • 7. 왜, TDD 인가? 1.목표의 구체화 2.짧은 개발 패턴을 통한 리듬 • 짧고 명확한 문제정의로 집중력 향상 • 테스트 코드를 통과하는 구현체 코드작성은 개발자에게 성취감을 줌 3.테스트 코드는 그 자체로 매뉴얼, 혹은 API 문서 • 점점 거짓말을 하는 문서 vs 살아있는 문서 4.개발하고 있는 코드의 문제점을 빠르게 잡아낼 수 있음
  • 8. 오해 - 결과적으로 비용은 더 들고, 개발기간이 길어진다? • 테스트와 테스트 자동화를 지원하는 프레임워크에 대한 추가적인 학습 └> 모든 프레임워크의 도입은 추가적인 학습 및 시간이 필수. • 테스트코드 추가 작성으로 인해 결과적으로 작성해야 하는 코드 증가 └> 실제 코드를 작성하는 시간보다, 변경사항 반영, 디버깅 등에 시간을 더 투자하는 많은 경우가 많음. 이를 개선하고 예방하는 측면에서 감수할 수 있는 투자
  • 9. TDD의 함정 • 테스트의 오버헤드 • 모든 코드의 테스트코드 작성을 의무화하고, 쓸데없는 테스트케이스 작성에 시간을 빼앗기게되는 상황 유발 • 설계를 망치는 TDD • 유닛테스트를 작성하기 쉬운 설계를 은연 중에 강요. 시스템을 횡단하는 기능을 기피하게해서 설계를 기형적으로 만들 수 있음
  • 10. 예시 TDD를 통한 ArkSQL Library 구현
  • 11. Q&A