| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 1주차
- 프로그래머스
- 2주차
- Commpot
- 마스킹
- WebSocket
- 프로젝트
- resnet50
- REDIS
- 장고
- sql
- 파이썬
- WHERE절
- 채팅
- 미니프로젝트
- 정보처리기사실기
- js
- poetry
- channels
- 백준
- github
- WIL
- 정보처리기사
- 개발일지
- vscode
- 가상환경
- re-id
- Class
- 알고리즘
- Git
Archives
- Today
- Total
개발일기
[정보처리기사 실기 이론정리7] 객체 지향 설계 본문
1. 객체 지향 언어 특징 :
- 캡슐화(Encapsulation) : 속성과 속성을 조작하는 매서드를 하나로 묶은 것
- 정보은닉(Information Hiding) : 다른 객체들이 객체의 내부 데이터에 직접 접근할 수 있도록 제한, 오직 공개된 메서드를통해서만 내부 상태에 접근할 수있게 한다.
- 상속(Inheritance) : 상위 클래스의 모든 속성과 메서드를 하위 클래스가 물려받는 것
- 다형성(Polymorphism) : 하나의 메시지에 대해 각 객체가 가지고 있는 여러 가지 방법으로 응답할 수있는 개념
- 추상화(Abstraction) : 실체의 핵심적인 개념만을 추출하여 간결한 형태로 표현
2. 객체 지향 설계 원칙 SOLID:
- 단일 책임 원칙(SRP) : 한 클래스는 하나의 책임만을 가져야 한다.
- 개방 폐쇄 원칙(OCP) : 소프트웨어 엔티티는 확장에 대해서는 열려있어야 하지만, 수정에 대해서는 닫혀 있어야 한다.
- 리스코프 치환 원칙(LSP) : 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야 한다.
- 인터페이스 분리 원칙(ISP) : 자신이 사용하지 않는 인터페이스에 의존하지 않아야 한다.
- 의존성 역전 원칙(DIP) : 구체적인 클래스보다 인터페이스나 추상 클래스와 의존 관계를 맺어야 한다. 상위 모듈은 하위 모듈에 의존해서는 안 되며, 양쪽 모두 추상화에 의존해야 한다는 것을 의미
3. 디자인패턴 : 객체지향 프로그래밍 설계를 할 때 자주 발생하는 문제들에 대해 재사용할 수 있도록 만들어놓은 패턴들의 모음
4. GoF 디자인 패턴

5. 생성패턴
- 추상 팩토리(Abstract Factory) : 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴, 연관성이 있는 객체 군이 여러 개 있을 경우 이들을 묶어 추상화하고 어떤 구체적인 상황이 주어지면 팩토리 객체에서 집합으로 묶은 객체 군을 구현
- 빌더(Builder) : 복잡한 객체의 생성 과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만듦
- 팩토리 메서드(Factory Method) : 객체 생성을 서브클래스로 위임하여 캡슐화함, Virtual-Constructor 패턴
- 프로토타입(Prototype) : 원본 객체를 복사함으로써 객체를 생성
- 싱글톤(Singleton) : 어떤 클래스의 인스턴스는 하나임을 보장하고 어디서든 참조할 수 있도록 함
6. 구조패턴
- 어댑터(Adapter) : 클래스의 인터페이스를 다른 인터페이스로 변환하여 다른 클래스가 이용할 수 있도록 함
- 브리지(Bridge) : 구현부에서 추상층을 분리하여 각자 독립적으로 확장할 수 있게 함
- 컴포지트(Composite) : 객체들의 관계를 트리 구조로 구성하여 복합 객체와 단일 객체를 구분없이 다룸
- 데코레이터(Decorator) : 주어진 상황 및 용도에 따라 어떤 객체에 다른 객체를 덧붙이는 방식
- 퍼사드(Facade) : 서브시스템에 있는 인터페이스 집합에 대해 하나의 통합된 인터페이스를 제공(Wrapper)
- 플라이웨이트(Flyweight) : 크기가 작은 여러 개의 객체를 매번 생성하지 않고 가능한 한 공유할 수 있도록 하여 메모리를 절약함
- 프록시(Proxy) : 접근이 어려운 객체로의 접근을 제어하기 위해 객체의 대리나 대체글을 제공
7. 행위패턴
- 책임연쇄(Chain of Responsibility) : 한 객체가 처리할 수 없는 요청을 다음 객체로 전달하는 방식
- 커맨드(Command) : 실행될 기능을 캡슐화함으로써 주어진 조건을 만족하는 기능을 실행할 수 있는 유연성 제공
- 인터프리터(Interpreter) : 주어진 언어에 대해 그 언어의 문법에 대한 표현을 정의하고 해당 언어를 해석하는 해석자를 위한 패턴
- 반복자(Iterator) : 객체 내부 구조를 노출시키지 않고도 그 원소들에 접근할 수 있는 방법을 제공
- 중재자(Mediator) : 객체 간의 복잡한 상호작용을 캡슐화하고, 객체들이 서로 직접 참조하지 않도록 중재자 객체를 통해 통신하도록 한다.
- 메멘토(Memento) : 객체의 상태 정보를 저장하고 필요에 따라 이전 상태로 복원할 수 있는 기능을 제공
- 옵서버(Observer) : 객체의 상태 변화가 있을 때마다 메서드를 통해 객체가 직접 목록의 각 관찰자에게 통지하도록 함
- 상태(State) : 객체의 내부 상태에 따라 동일한 작업이 상태에 따라 다르게 작동하도록 상태를 객체로 표현
- 전략(Strategy) : 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 만든다.
- 템플릿 메서드(Template Method) : 상위 클래스는 알고리즘의 골격만을 작성하고, 구체적인 처리는 서브클래스로 위임
- 방문자(Visitor) : 객체 구조를 이루는 원소에 대한 연산을 정의하는 데 사용되는 패턴, 개방-폐쇄 원칙(OCP)를 적용
'정보처리기사 도전기' 카테고리의 다른 글
| [정보처리기사 실기 이론정리9] 패키징 & 데이터베이스 (0) | 2024.07.27 |
|---|---|
| [정보처리기사 실기 이론정리8] 테스트 (0) | 2024.07.27 |
| [정보처리기사 실기 이론정리6] 인터페이스 (0) | 2024.07.27 |
| [정보처리기사 실기 이론정리5] 서버 프로그램 (0) | 2024.07.27 |
| [정보처리기사 실기 이론정리4] 화면 설계, UI (0) | 2024.07.27 |