본문으로 건너뛰기
객체지향 설계 · 디자인 패턴LESSON 07

SOLID 1: 단일 책임과 개방-폐쇄 원칙

난이도중급 → 심화
예상 시간65분
선수지식이전 강의

7강. SOLID 1: 단일 책임과 개방-폐쇄 원칙

1. 이번 강의에서 해결할 문제​

알림 유형을 추가할 때 거대한 switch와 기존 테스트를 모두 수정한다면 변경 축이 한 함수에 닫혀 있습니다. 그러나 미래 알림 하나를 상상해 미리 플러그인 구조를 만들 필요도 없습니다.

2. 학습 목표​

3. 핵심 개념​

SRP는 클래스가 한 줄 일이라는 뜻이 아니라 같은 이유로 변하는 요소를 묶는 원칙입니다. OCP는 검증된 안정 코드를 덜 수정하며 새 변형을 추가하는 방향입니다. 변형이 두 개뿐이고 닫혀 있으면 switch가 더 명확할 수 있습니다.

4. 구현​

Notifier.h
class Notifier { public: virtual ~Notifier() = default;
virtual void send(const Notification&) = 0; };
class ConsoleNotifier final : public Notifier {
public: void send(const Notification& value) override;
};

5. 코드가 동작하는 이유​

TaskService는 완료 유스케이스만 바뀌고 새 알림 구현은 Notifier 계약 아래 추가됩니다. 구체 생성은 조립 지점에 남습니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

SOLID 1: 단일 책임과 개방-폐쇄 원칙 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“SOLID 1: 단일 책임과 개방-폐쇄 원칙” 구현을 설계할 때 책임과 구조를 올바르게 나눈 선택은 무엇인가요?
  2. 문제 2“SOLID 1: 단일 책임과 개방-폐쇄 원칙” 실습 중 ‘기존 계약을 계속 수정하면서 OCP라고 부름’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

7강. SOLID 1: 단일 책임과 개방-폐쇄 원칙 미완료 상태