피드로 돌아가기
Dari OOP ke SOLID: Semua yang Perlu Kamu Tahu dalam Satu Artikel
Dev.toDev.to
Backend

SOLID 원칙 적용을 통한 Rigidity, Fragility, Immobility 해결 및 코드 유지보수성 극대화

Dari OOP ke SOLID: Semua yang Perlu Kamu Tahu dalam Satu Artikel

Sanudin2026년 5월 24일5intermediate

Context

객체 지향 설계의 부재로 인한 상호 의존성 증가와 모듈 간 강한 결합이 시스템의 Rigidity와 Fragility를 유발한 상황. 특정 기능 수정 시 예상치 못한 모듈의 장애가 발생하고 컴포넌트 재사용이 불가능한 Immobility 상태의 아키텍처적 한계 분석.

Technical Solution

  • SRP 적용을 통해 클래스당 책임 범위를 단일 Actor로 제한하여 변경 영향도 최소화
  • OCP 기반의 확장 구조 설계를 통해 기존 코드 수정 없이 새로운 기능 추가가 가능한 Open-Extension 구조 구현
  • LSP 준수로 부모 클래스와 자식 클래스 간의 행위 일관성을 보장하여 타입 교체 시 런타임 오류 방지
  • ISP를 통한 Interface 세분화로 클라이언트가 불필요한 메서드 의존성을 갖지 않도록 설계
  • DIP 적용을 통해 고수준 모듈이 저수준 모듈의 구체 클래스가 아닌 Abstraction에 의존하게 함으로써 인프라 교체 유연성 확보

1. 클래스가 여러 그룹의 Stakeholder를 위해 수정되는지 확인하여 SRP 위반 여부 검토

2. 신규 기능 추가 시 기존 코드를 수정하는 대신 확장(Extension) 가능한 구조인지 확인

3. 상속 관계에서 빈 메서드나 Not-Supported 예외가 발생하는 LSP 위반 사례 제거

4. 비대한 Interface를 작은 단위로 분리하여 클라이언트의 의존성 범위 축소

5. 비즈니스 로직이 DB나 API 같은 구체적인 인프라 구현체에 직접 의존하는지 확인 후 Interface 도입

원문 읽기