✔️ 디자인 패턴
디자인 패턴이란?
- 일종의 설계 기법이자 설계 방법
- 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 수 있는 훌륭한 해결책
- 디자인 패턴은 특정한 구현이 아닌, 아이디어이므로 프로젝트에 항상 적용해야 하는 것은 아니지만,
추후 재사용성, 호환성, 유지 보수시 발생하는 문제 발생을 예방하기 위해 패턴을 만들어둔 것 - 객체지향 설계 원칙인 SOLID 원칙을 따르게 됨
- GoF 디자인 패턴은 23가지의 디자인 패턴을 정리하고, 각각의 디자인 패턴을 생성, 구조, 행위 3가지로 분류함
- 생성 패턴 : 객체의 생성 방식을 결정
예) 인스턴스의 생성을 하나만 만들 수 있도록 제한하여 불필요한 연결을 막음 - 구조 패턴 : 객체 간의 관계를 조직
예) 2개의 인터페이스가 서로 호환되지 않을 때, 둘을 연결해주기 위해서 새로운 클래스를 만들어서 연결함 - 행위 패턴: 객체의 행위를 조직, 관리, 연합
예) 하위 클래스에서 구현해야 하는 함수 및 알고리즘을 미리 선언하여 상속 시 이를 필수로 구현하도록 함
- 생성 패턴 : 객체의 생성 방식을 결정
SOLID란?
- Single Responsibility Principle (SRP, 단일 책임 원칙)
하나의 클래스는 하나의 역할만 해야 함 - Open-Close Principle (OCP, 개방 폐쇄 원칙)
확장에는 열려있고, 수정에는 닫혀 있어야 함 - Liskov Substitution Principle (LSP, 리스코프 치환 원칙)
자식이 부모의 자리에 항상 교체될 수 있어야 함 - Interface Segregation Principle (ISP, 인터페이스 분리 원칙)
인터페이스가 잘 분리되어서, 클래스가 꼭 필요한 인터페이스만 구현해야 함 - Dependency Inversion Property (DIP, 의존 역전 원칙)
상위 모듈이 하위 모듈레 의존하면 안 됨
'Tech Interview > Design Pattern' 카테고리의 다른 글
[Design Pattern] 옵저버 패턴 (0) | 2024.01.13 |
---|---|
[Design Pattern] 팩토리 메소드 패턴 (0) | 2024.01.12 |
[Design Pattern] 템플릿 메소드 패턴 (0) | 2024.01.12 |
[Design Pattern] 싱글톤 패턴 (0) | 2024.01.12 |
[Design Pattern] 어댑터 패턴 (0) | 2024.01.12 |