CS/시스템아키텍쳐

디자인 패턴(대표적인 디자인패턴)

씩씩한 IT블로그 2023. 1. 18. 00:21
반응형

디자인 패턴 이란?

- 프로그램 설계 시 발생했던 문제점들을 상호관계 등을 이용하여 해결할 수 있도록 규약형태로 만들어 놓은 것

 

싱글톤 패턴

- 하나의 클래스에 하나의 패턴을 가짐

- 데이터베이스 연결모듈에 많이 사용

- 하나의 인스턴스를 만들어 놓고 다른모듈들이 공유하며 사용하므로 비용이 줄어듦

- 의존성이 높아지는  단점 -> TDD테스트 어려움 -> 디커플링을 통해 의존성 주입

* 의존성 주입 원칙 : 상위모듈은 하위모듈의 어떤것도 가져와선 안됨. 추상화에 의존해야 하며 추상화는 세부사항에 의존 x

 

팩토리 패턴

- 객체생성부분을 떼어내 추상화 한 패턴

- 상속관계의 두 클래스에서 상위 클래스가 중요한 뼈대 결정, 하위클래스에서 구체적인 내용을 결정하는 패턴

 

전략패턴(정책패턴)

- 객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 전략이라고 부르는 캡슐화한 알고리즘을 컨텍스트안에서 바꿔줌( ex- 결재시 국민카드클래스와 카카오카드 클래스 중 결재할 수단을 선택)

 

옵저버 패턴

- 주체가 객체이 상태변화를 관찰하다가 상태변화가 있을 때 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 패턴

 

MVC패턴

- Model View Controoler로 이루어진 디자인 패턴

- 재사용성, 확장성 용이

- 모델 : 어플리케이션의 데이터인 DB, 상수, 변수등을 의미 

  ex) 사각형 모양안에 글자가 있다면 사각형 모양 박스위치정보, 글자내용, 글자위치, 글자 포맷등에 관한 정보

- 뷰 : inputbox, checkbox, textarea등 사용자 인터페이스 요소 나타냄 모델이 가지고 있는 정보를 따로 저장하지 않아야 하며, 단순히 사각형 모양등 화면에 표시하는 정보만 가져야함

- 컨트롤러 : 하나이상의 모델과 뷰를 있는 다리역할. 이벤트등 메인로직 담당. 모델 뷰의 생명주기 관리. 각각 구성요소에 변경내용을 통지하여 알려 줌

 

MVVM패턴

- MVC의 C에 해당하는 컨트롤러가 뷰 모델로 바뀐 패턴

- 도식화 C

- ex) Vue.js (반응형이 특징인 프런트엔드 프레임워크)

 

MVP 패턴

- MVC 패턴으로 부터 파생, C에 해당하는 컨트롤러가 프레젠터로 교체

- 도식화

 

반응형