전체 목록
설계Medium#278

SOLID 원칙을 간단히 설명하고 왜 중요한지 말해주세요.

#설계#SOLID#OOP#아키텍처

답변 포인트

객체지향 설계의 변경 용이성를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.

정답 및 해설

빠른 요약

SOLID는 단일 책임, 개방-폐쇄, 리스코프 치환, 인터페이스 분리, 의존성 역전 원칙입니다. 변경에 강하고 테스트하기 쉬운 구조를 만드는 판단 기준입니다.

SOLID는 단일 책임, 개방-폐쇄, 리스코프 치환, 인터페이스 분리, 의존성 역전 원칙입니다. 변경에 강하고 테스트하기 쉬운 구조를 만드는 판단 기준입니다.

핵심 개념

핵심 기준은 객체지향 설계의 변경 용이성입니다. 이 개념은 단순한 용어가 아니라, 실제 코드나 시스템에서 반복적으로 생기는 문제를 다루기 위해 등장했습니다.

설계는 앞으로의 변경을 감당하기 쉬운 구조를 만드는 일입니다. 책임, 의존성, 경계, 일관성을 기준으로 판단해야 합니다.

동작 흐름

  1. 먼저 어떤 문제가 있는지 확인합니다.
  2. 이 개념이 그 문제를 어떤 기준으로 나누거나 해결하는지 봅니다.
  3. 실제 코드에서는 입력, 상태, 실행 순서, 비용이 어떻게 바뀌는지 확인합니다.
  4. 마지막으로 한계와 부작용을 함께 점검합니다.

실제 예시

Text
  
-     
-      
-    
-     

설계 판단은 정답을 고르는 일이 아니라 현재 문제의 변경 가능성과 운영 비용을 비교하는 일입니다.

실무에서 주의할 점

  • 패턴을 위한 패턴은 오히려 복잡도를 키웁니다.
  • 변경 가능성이 낮은 곳에 과한 추상화를 두면 읽기만 어려워집니다.
  • 아키텍처 경계는 코드뿐 아니라 팀의 배포와 운영 방식도 함께 고려해야 합니다.

함께 연결해서 보면 좋은 키워드

설계, SOLID, OOP, 아키텍처

면접에서 짚으면 좋은 포인트

  • 패턴을 적용하는 이유를 변경 용이성, 테스트 가능성, 운영 비용 관점에서 설명하면 좋습니다.
  • 현재 문제보다 과한 추상화가 될 수 있는 상황도 함께 말하면 균형 잡힌 답변이 됩니다.

정리

한 줄로 정리하면, SOLID는 단일 책임, 개방-폐쇄, 리스코프 치환, 인터페이스 분리, 의존성 역전 원칙입니다. 변경에 강하고 테스트하기 쉬운 구조를 만드는 판단 기준입니다. 실무에서는 개념을 적용하는 조건과 적용하지 않았을 때 생기는 문제까지 함께 이해하는 것이 중요합니다.

관련 질문

같은 카테고리/태그 기준