코드 분해

거의 모든 프로그래머는 시스템의 코드를 분해합니다.
당연시되는 코드 분해의 목적과 방법을 한 번 더 생각해 봅시다.


문제의 크기

  • 프로그래머가 한 번에 다룰 수 있는 문제의 크기는 한계를 가짐
  • 프로그래머는 더 큰 문제를 자주 마주함
  • 시스템의 크기는 점점 커짐
  • 큰 문제는 작은 문제로 분해할 수 있음
  • 작은 문제의 일부는 반복됨


코드 재사용

  1. 반복되는 문제의 풀이는 재사용 가능
  2. 소프트웨어 개발 비용 절감 (엔지니어링)


모듈화

모든 모듈은 인터페이스와 구현으로 작성 가능

분해

  • 큰 시스템은 더 작은 하위 시스템으로 분해 가능
  • 교체가능

조립

  • 작은 시스템은 더 큰 상위 시스템으로 조립 가능
    • 인터페이스를 고려해서 설계
  • 모듈 재사용
  • 라이브러리

단위테스트


느낀점

  • 지금도 인터페이스와 구현을 작성해서 하고는 있지만 좋은 설계인지는 의문이고 테스트까지 가능하게 설계된 것인지는 미지수다.
  • 어떻게 인터페이스 설계를 하고 테스트 가능한 모듈을 만들 수 있을지 기대됩니다.



« 테스트 기법 단위 테스트 »


참고

패스트 캠퍼스 - The RED: 이규원의 현실 세상의 TDD: 안정감을 주는 코드 작성 방법.

TDD HandsOn