정처기 감자정처기 감자
SW 설계객체지향

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

객체 지향 설계 원칙 - SOLID

SW설계앱설계객체지향
읽는데 4분 소요
처음 쓰인 날: 2025-10-08
마지막 수정일: 2025-10-11
조회수: —
선수학습(1개)
  • 객체와 클래스 - 클래스, 인스턴스, 생성자

요약

정보처리기사 실기 단골 문제인 객체 지향 설계 원칙 SOLID를 표로 요약하여 쉽게 암기하는 방법을 알아봅니다. 정처기 대비를 위한 주관식 문제가 포함되어 있습니다.

용어키워드
SOLID객체 지향 설계 원칙, 유지보수성, 확장성, 재사용성
단일 책임 원칙(SRP)하나의 책임, 클래스 분리, 기능 분리
개방-폐쇄 원칙(OCP)확장에 대해 열려있고, 변경에 대해 닫혀있어야 함
리스코프 치환 원칙(LSP)서브타입, 기반 타입, 교체 가능
인터페이스 분리 원칙(ISP)특정 기능, 인터페이스, 사용하지 않는 메소드, 의존 관계
의존성 역전 원칙(DIP)고수준 모듈, 저수준 모듈, 추상화

SOLID 원칙이란?

SOLID는 객체 지향 프로그래밍과 설계에서 중요한 5가지 원칙을 나타내는 약어입니다. 이 원칙들은 소프트웨어의 유지보수성, 확장성, 재사용성을 높이기 위해 개발되었습니다.


단일 책임 원칙(SRP) - Single Responsibility Principle

단일 책임 원칙은 "하나의 클래스는 하나의 책임만 가져야 한다"는 원칙입니다. 클래스가 여러 개의 책임을 가지면 변경 사유가 많아지고, 한 기능의 변경이 다른 기능에 영향을 줄 수 있습니다.

핵심 키워드: 하나의 책임, 클래스 분리, 기능 분리

클래스의 책임이 너무 많다면 해당 클래스를 여러 개로 분리하여 각 클래스에 하나의 책임만을 부여해야 합니다. 클래스에서 수행하는 기능을 분리하고, 클래스가 하나의 책임을 수행하기 위해 여러 개의 기능을 수행한다면 해당 기능을 다른 클래스로 분리하는 것이 좋습니다.

개방-폐쇄 원칙(OCP) - Open-Closed Principle

개방-폐쇄 원칙은 "소프트웨어 개체는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다"는 원칙입니다. 즉, 새로운 기능을 추가할 때는 기존 코드를 수정하지 않고 확장할 수 있어야 합니다.

핵심 키워드: 확장에 대해 열려있고, 변경에 대해 닫혀있어야 함

이 원칙을 통해 기존 코드의 안정성을 유지하면서도 새로운 기능을 추가할 수 있습니다.

리스코프 치환 원칙(LSP) - Liskov Substitution Principle

리스코프 치환 원칙은 "서브타입은 언제나 기반 타입으로 교체할 수 있어야 한다"는 원칙입니다. 즉, 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 대체해도 프로그램이 정상적으로 동작해야 합니다.

인터페이스 분리 원칙(ISP) - Interface Segregation Principle

인터페이스 분리 원칙은 "클라이언트는 자신이 사용하지 않는 메소드와 의존 관계를 맺으면 안 된다"는 원칙입니다. 클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안 됩니다.

핵심 키워드: 특정 기능, 인터페이스, 사용하지 않는 메소드, 의존 관계

객체를 설계할 때 특정 기능을 위한 인터페이스는 그 기능과 관련 없는 부분이 변경되어도 영향을 받지 않아야 합니다. 예를 들어, 복합기 객체가 있고 프린터, 복사기, 스캐너 기능을 각각 사용하는 사용자가 있다면, 프린터 기능의 인터페이스는 복사기나 스캐너 기능이 변경되어도 문제가 없어야 합니다.

의존성 역전 원칙(DIP) - Dependency Inversion Principle

의존성 역전 원칙은 "고수준 모듈1은 저수준 모듈2에 의존하면 안 되고, 둘 다 추상화에 의존해야 한다"는 원칙입니다. 즉, 구체적인 클래스보다는 추상화(인터페이스나 추상 클래스)에 의존해야 합니다.

SOLID 원칙의 장점

  • 유지보수성 향상: 코드 변경 시 영향 범위를 최소화
  • 확장성 증대: 새로운 기능 추가가 용이
  • 재사용성 증대: 모듈화된 코드로 재사용 가능
  • 테스트 용이성: 각 원칙이 독립적으로 테스트 가능
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.

Footnotes

  1. 고수준 모듈: 비즈니스 로직을 담당하는 모듈 (예: 주문 서비스가 음식 종류에 상관없이 주문을 처리) ↩

  2. 저수준 모듈: 구체적인 구현을 담당하는 모듈 (예: 햄버거 주문 클래스, 피자 주문 클래스) ↩


메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)

관련 글

(42개)
제목태그업데이트시험
럼바우 객체 모델링 - 객(정)동기
객체지향SW설계앱설계객체지향
2025-10-08-
앱 설계(디자인패턴, 응집도-결합도,객체지향) 정보처리기사 실기 모의 시험
앱설계SW설계앱설계
2025-10-08응시
소프트웨어 모듈 응집도와 결합도
응집도/결합도SW설계앱설계응집도/결합도
2025-09-24-
객체지향1개
제목태그업데이트시험
럼바우 객체 모델링 - 객(정)동기
객체지향SW설계앱설계객체지향
2025-10-08-
앱설계3개
제목태그업데이트시험
앱 설계(디자인패턴, 응집도-결합도,객체지향) 정보처리기사 실기 모의 시험
앱설계SW설계앱설계
2025-10-08응시
소프트웨어 모듈 응집도와 결합도
응집도/결합도SW설계앱설계응집도/결합도
2025-09-24-
정보처리기사 실기를 위한 디자인 패턴 암기 방법
앱설계SW설계앱설계
2026-09-22-
SW설계38개
제목태그업데이트시험
디자인패턴 정보처리기사 실기 모의 시험
디자인패턴SW설계디자인패턴
2026-07-10응시
릴리스 노트 작성 항목
제품 소프트웨어 패키징SW설계제품 소프트웨어 패키징
2026-06-26-
UI 정보처리기사 실기 모의 시험
UI/UXSW설계UI/UX
2026-05-04응시
애자일(Agile) 방법론
애자일SW설계방법론애자일
2026-10-01-
코딩 컨벤션과 표기법
코딩 스타일SW설계코딩 스타일
2026-10-01-
소프트웨어 비용 산정 기법
비용 산정SW설계비용 산정
2026-10-01-
비기능 요구사항
요구사항SW설계요구사항
2026-04-29-
리팩토링(Refactoring)
리팩토링SW설계리팩토링
2026-10-01-
UI 설계 원칙
UI/UXSW설계UI/UX
2026-10-01-
UI 종류 (CLI·GUI·NUI·OUI·VUI)
UI/UXSW설계UI/UX
2026-10-01-
SW 설계 왕감자 정보처리기사 실기 모의 시험
SW설계SW설계
2025-11-04응시
UML 정보처리기사 실기 모의 시험
UMLSW설계UML
2025-10-08응시
소프트웨어 아키텍처 4+1 뷰 모델
UMLSW설계UML
2025-09-26-
UML 클래스 다이어그램의 6가지 관계
UMLSW설계UML
2025-10-26-
UML 다이어그램
UMLSW설계UML
2025-09-26-
추상 팩토리 abstract factory 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-02-
빌더 builder 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-02-
팩토리 메서드 factory method 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-11-03-
프로토타입 prototype 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-02-
싱글톤 singleton 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-02-
책임 연쇄 chain of responsibility 패턴 - 타입스크립트 예시
디자인패턴SW설계디자인패턴
2025-11-03-
커맨드 command 패턴 - 타입스크립트 예시
디자인패턴SW설계디자인패턴
2025-09-01-
인터프리터 interpreter 패턴 - 타입스크립트 예시
디자인패턴SW설계디자인패턴
2025-09-01-
이터레이터 iterator 패턴 - 타입스크립트 예시
디자인패턴SW설계디자인패턴
2025-09-01-
중재자 mediator 패턴 - 타입스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
메멘토 memento 패턴 - 타입스크립트 예시
디자인패턴SW설계디자인패턴
2025-10-29-
옵저버 observer 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
상태 state 패턴 - 타입스크립트 예시
디자인패턴SW설계디자인패턴
2025-09-01-
전략 strategy 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
템플릿 메서드 template method 패턴 - 타입스크립트 예시
디자인패턴SW설계디자인패턴
2025-09-01-
방문자 Visitor 패턴 - 타입스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
어댑터 adapter 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-02-
브릿지 bridge 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
컴포지트 composite 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
데코레이터 decorator 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
퍼사드 facade 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
플라이웨이트 flyweight 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
프록시 proxy 패턴 - 자바스크립트 예제
디자인패턴SW설계디자인패턴
2025-09-01-
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999