본문 바로가기
  • 개발공부 및 일상적인 내용을 작성하는 블로그 입니다.
이론/디자인패턴

디자인패턴 - 개요

by 방구석 대학생 2022. 1. 29.

 

디자인 패턴이란 일종의 설계 기법이며, 설계 방법이다.

 

디자인 패턴을 사용하는 목적

SW의 재사용성, 호환성, 유지 보수성을 보장할 수 있다.

 

디자인 패턴의 특징

- 디자인 패턴은 아이디어 이지, 특정한 구현이 아니다.

- 프로젝트에 항상 적용해야 하는 것은 아니지만, 추후 재사용, 호환, 유지 보수 시 발생하는 문제 해결을 예방하기 위해 패턴을 만들어 둔 것이다.

 

원칙 - SOLID(객체지향 설계 원칙)

1. Single Responsibility Principle

: 하나의 클래스는 하나의 역할만 해야 한다.

 

2. Open - Close Principle

: 확장(상속) 에는 열려있고, 수정에는 닫혀 있어야 한다.

 

3. Liskov Substitution Principle

: 자식이 부모의 자리에 항상 교체될 수 있어야 한다.

 

4. Interface Segregation Principle

: 인터페이스가 잘 분리되어서, 클래스가 꼭 필요한 인터페이스만 구현하도록 해야 한다.

 

5. Dependency Inversion Property

: 상위 모듈이 하위 모듈에 의존하면 안된다. 둘 다 추상화에 의존하며, 추상화는 세부 사항에 의존하면 안된다.

 

 

분류

3가지 패턴의 목적을 이해해야 한다.

 

1. 생성 패턴(Creational) : 객체의 생성 방식 결정

: 클래스 생성 패턴(Class - creational patterns), 객체 생성 패턴(Object - creational patterns)

- 예시 : DBConnection 을 관리하는 Instance 를 하나만 만들 수 있도록 제한하여, 불필요한 연결을 막는다.

 

2. 구조 패턴(Structural) : 객체간의 관계를 조직

- 예시 : 2개의 인터페이스가 서로 호환이 되지 않을 때, 둘을 연결해주기 위해서 새로운 클래스를 만들어서 연결시킬 수 있도록 한다.

 

3. 행위 패턴(Behavioral) : 객체의 행위를 조직, 관리, 연합

- 예시 : 하위 클래스에서 구현해야 하는 함수 및 알고리즘 들을 미리 선언하여, 상속 시 이를 필수로 구현하도록 한다.

 

 

참조 : https://gyoogle.dev/blog/

 

👨🏻‍💻 Tech Interview

 

gyoogle.dev