TDD 입문하기 - 테스트 주도 개발 기초: 코드 분해
코드 분해
거의 모든 프로그래머는 시스템의 코드를 분해합니다.
당연시되는 코드 분해의 목적과 방법을 한 번 더 생각해 봅시다.
문제의 크기
- 프로그래머가 한 번에 다룰 수 있는 문제의 크기는 한계를 가짐
- 프로그래머는 더 큰 문제를 자주 마주함
- 시스템의 크기는 점점 커짐
- 큰 문제는 작은 문제로 분해할 수 있음
- 작은 문제의 일부는 반복됨
코드 재사용
- 반복되는 문제의 풀이는 재사용 가능
- 소프트웨어 개발 비용 절감 (엔지니어링)
모듈화
모든 모듈은 인터페이스와 구현으로 작성 가능
분해
- 큰 시스템은 더 작은 하위 시스템으로 분해 가능
- 교체가능
조립
- 작은 시스템은 더 큰 상위 시스템으로 조립 가능
- 인터페이스를 고려해서 설계
- 모듈 재사용
- 라이브러리
단위테스트
느낀점
- 지금도 인터페이스와 구현을 작성해서 하고는 있지만 좋은 설계인지는 의문이고 테스트까지 가능하게 설계된 것인지는 미지수다.
- 어떻게 인터페이스 설계를 하고 테스트 가능한 모듈을 만들 수 있을지 기대됩니다.