그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Architecture
Architecture

SOLID 원칙에 대해 설명해 주세요.

실무4/5
설계4/5
인간3/5
기초3/5

면접관의 질문 의도

다섯 원칙의 약자를 외워 왔는지, 아니면 각 원칙을 자기 경험·도메인 사례로 풀고 과적용의 부작용까지 말할 수 있는지를 가른다.

큐레이션 답변

학습 자료

SOLID는 객체지향 설계에서 변경 비용을 낮추기 위한 다섯 원칙이다 — SRP(단일 책임), OCP(개방-폐쇄), LSP(리스코프 치환), ISP(인터페이스 분리), DIP(의존 역전). 핵심은 "무엇이 같이 바뀌어야 하는지"를 한 군데로 모으고(SRP), 새로운 요구가 들어와도 기존 코드를 뜯어고치지 않고 확장으로 흡수하며(OCP), 구체 클래스에 직접 매달리지 않고 추상에 의존하도록(DIP) 흐름을 정리하는 것이다. 다섯 원칙은 따로 외워도 의미가 약하다 — "변경 축을 어디에 두는가"라는 한 가지 질문의 다섯 가지 답이다.

좋은 답변 구조

  1. 01SOLID를 "변경 비용을 낮추기 위한 다섯 기준"으로 한 줄 정의한다
  2. 02SRP·OCP·LSP·ISP·DIP를 각각 짧게 풀되 "이 원칙이 막는 사고가 무엇인지"로 설명한다
  3. 03OCP·DIP가 어떻게 "기존 코드 수정 없이 확장"을 가능하게 하는지 실제 패턴 사례로 든다
  4. 04과적용 시 생기는 비용(추상 폭증, 인터페이스 남발)을 균형 있게 마무리한다

자주 실수하는 포인트

다섯 원칙의 약자만 나열하고 의미를 풀지 못한다
SRP를 "클래스에 메서드 하나만 둔다"로 단순화한다
OCP를 "항상 상속을 써라"로 잘못 외운다
SOLID를 무조건 적용해야 한다고 단정하고 과적용 비용을 다루지 못한다

실무 맥락

  • 결제·할인·쿠폰 같은 정책이 자주 추가되는 도메인에서 정책별 클래스 + 인터페이스 분리로 OCP를 적용하는 결제 모듈
  • 외부 API 클라이언트를 인터페이스로 추상화해 테스트 더블로 갈아끼우는 DIP 적용 코드베이스
  • 한 서비스 클래스에 검증·저장·알림·이벤트 발행이 다 들어가 있어 SRP 관점에서 다시 쪼개는 리팩터링

본인 경험에 녹이는 힌트

기능 한두 개 추가할 때마다 if 분기가 늘던 코드를 전략 패턴·인터페이스 분리로 정리한 경험이 있다면 OCP의 실제 효과로 풀어낼 수 있다

외부 API 클라이언트를 인터페이스로 빼서 단위 테스트가 쉬워진 경험이 있다면 DIP·테스트 용이성 이야기로 이어갈 수 있다

SRP 명목으로 너무 잘게 쪼갠 클래스 때문에 오히려 흐름 추적이 어려워진 경험이 있다면 "과적용의 비용" 사례로 균형 있게 보여 줄 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1SOLID를 과하게 적용하면 어떤 부작용이 생기나요
Q2OCP를 현실 코드에서 어떻게 적용하나요
Q3DIP와 테스트 용이성은 어떤 관계가 있나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문