-
테스트 주도 개발 - 둘째날Programmer/Etc 2013. 5. 7. 18:21
최대한 빨리 테스트에 통과하는 코드를 작성하는 방법 중에, 캐스팅의 남용이 있다. 돌아가고 나면 이러한 코드를 적절한 자리로 옮기거나 다형성을 사용하여 불필요한 캐스팅을 제거한다.
지난 번 포스팅한 글을 다시 불러와서 갱신해보자.
최종 목적은 잘 돌아가는 깔끔한 코드의 작성이다. 이를 위해서 아래 과정을 반복한다.
- 최대한 빨리 테스트에 통과하는 코드를 작성하는 것이 목적이다. 스텁 구현, 상수를 사용한 하드 코딩, 복사&붙여넣기 신공, 캐스팅을 마구 남용한다.
- 리펙토링을 통해서 스텁을 채우고, 상수와 중복을 제거하고, 캐스팅을 제거하기 위한 적절한 코드 옮김이나 다형성을 사용한다.
외부 프로토콜은 같으면서 내부 구현이 다른 객체를 정의하는 방법을 소개했다. 저자는 Money와 비슷하게 동작하지만 합을 나타내는 객체를 생성하였다. 사용자 입장에서 합의 객체와 Money를 동일하게 바라보게 되는 효과가 있었다. 마치, Lisp의 S-Expression을 보는 것 같았다.
이 글을 쓰는 싯점에서는 위 단락에서 설명한 방법의 쓰는 이유와 효과를 확실히 설명할 수 없다. 추후 디자인 패턴에 대한 고민과 경험이 이와 같은 부족한 부분을 채워주리라 기대한다.
'Programmer > Etc' 카테고리의 다른 글
암호화 확장자, 인코딩, 표준 관계 정리 (3) 2022.05.26 프로젝트 초반에 완벽한 설계에 공들이 필요가 없는 이유 (4) 2014.03.19 쉬우면서 다양한 기능을 제공하는 UI (0) 2013.06.27 테스트 주도 개발 - 첫째날 (0) 2013.05.06 댓글