테스트는 어떻게 좋은 코드를 만드는가(feat. 험블 객체 패턴)
프론트엔드
테스트는 어떻게 좋은 코드를 만드는가(feat. 험블 객체 패턴)
두줄요약
테스트 코드가 어려워지는 원인을 고수준 목과 얽힌 설계 문제로 설명했습니다. 험블 객체 패턴과 인터페이스로 테스트하기 쉬운 구조를 만드는 방법을 다뤘습니다.
핵심 내용
- 테스트하기 어려운 코드와 테스트하기 쉬운 코드를 분리해야 테스트 코드와 설계가 함께 무너지지 않음
- 고수준 목에 의존하는 구조는 유지보수 비용과 기술 부채를 키우므로, 테스트 가능한 설계로 바꾸는 접근이 필요함
- 험블 객체 패턴과 인터페이스, 다형성을 활용해 외부 의존성을 격리하고 더미·스텁 중심 테스트로 낮출 수 있음
- 테스트 용이성 개선이 단일 책임 원칙, 개방 폐쇄 원칙 같은 설계 원칙과도 맞닿아 있음
적용해볼 점
- 글로벌 객체, 네트워크, 싱글턴처럼 테스트가 어려운 코드를 별도 객체로 분리
- 가능한 한 mock보다 dummy, stub, injection 중심으로 테스트 구성
- 테스트가 깨질 때 구현뿐 아니라 설계와 의존성 구조도 함께 점검
