728x90

디자인 패턴 : 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 ‘규약’ 형태로 만들어 놓은 것

 

 

싱글톤 패턴 

- 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴

- 보통 데이터베이스 연결 모듈에 많이 사용한다.

- 스프링에서는 @Component 어노테이션을 통해 이를 구현함

- 인스턴스 생성 비용이 줄지만 의존성이 높아진다는 단점 존재

- TDD를 할 때 단점임

- 의존성 주입을 통해 모듈 간의 결합을 조금 더 느슨하게 만들 수 있다.

- 의존성 주입을 통해 간접적으로 주입할 수 있다.

 

 

팩토리 패턴

- 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴

- 상위와 하위 클래스가 분리 -> 유연성을 가질 수 있다.

- 유지 보수성이 증가한다.

 

 

전략 패턴 

-  객체의 행위를 바꾸고 싶은 경우 ‘직접’ 수정하지 않고 전략이라고 부르는 ‘캡슐화한 알고리즘’을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴

 

 

 

옵저버 패턴 

- 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴

- 주로 이벤트 기반 시스템에 사용 ex)트위터, MVC 패턴

 

 

 

프록시 패턴 

- 객체의 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴

-

 

 

 

728x90

'🟢 개념 정리 > CS' 카테고리의 다른 글

AOP란?  (0) 2023.03.27
RESTful 서비스란?  (0) 2023.03.27
Access Token과 Refresh Token  (0) 2023.03.25
쿠키, 세션  (0) 2023.03.22
JWT  (0) 2023.03.22

+ Recent posts