C샵 객체지향 설계 연습

작동하는 코드를 만드는 것은 기본이고, 수정하기 쉬운 코드를 만드는 것이 실력이다.

변화에 유연하게 대응하기 위한 객체지향 설계 원칙을 전략 패턴(Strategy Pattern) 사례와 함께 분석한다.

설계의 본질: 변화의 캡슐화

“무엇이 자주 변하는가?”를 파악하는 것이 설계의 시작이다.

가변적인 로직은 인터페이스로 추상화하여 구체적인 구현체와 분리해야 한다.

인터페이스 기반 협력의 가치

구체적인 클래스에 직접 의존하지 않고 추상화된 약속에 의존함으로써, 기존 코드를 수정하지 않고도 새로운 기능을 부품 갈아 끼우듯 추가할 수 있게 한다.

(OCP 준수)

설계가 주는 장기적 이점

  • 유지보수 비용 절감: 기능 변경 시 미치는 영향력을 최소화한다.
  • 테스트 용이성: 외부 의존성을 가짜 객체(Mock)로 대체하여 정밀한 단위 테스트를 수행할 수 있다.

P.S

좋은 설계는 초기 구축 비용이 높을 수 있으나, 프로젝트의 규모가 커질수록 시스템의 수명을 결정짓는 핵심 요소가 된다.

끊임없는 고민을 통해 기술 부채를 줄이는 설계 역량을 길러야 하는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts