면접을 위해 CS 스터디에서 진행하는 CS 정리용입니다.
'면접을 위한 CS 전공지식 노트' 책을 챕터별 공부하고 요약정리를 하고 있습니다.
< 디자인 패턴 >
- 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것
팩토리 패턴
- 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴
- 상속 관계에 있는 두 클래스에서
- 상위클래스가 중요한 뼈대를 결정
- 하위클래스에서 객체 생성에 관한 구체적인 내용을 결정
- 느슨한 결합 : 상위 클래스가 하위 클래스가 분리
- 유연성 : 상위클래스는 인스턴스 생성 방식에 대해 알 필요가 없다
- 유지 보수성 : 객체 생성 로직이 따로 떼어져 있어서 리팩터링 할 때 한 곳만 수정 가능
전략 패턴(정책 패턴)
- 객체의 행위를 바꾸고 싶은 경우 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴
- passport 라이브러리 : Node.js에서 인증 모둘 구현 시 사용하는 미들웨어 라이브러리
- 컨텍스트 : 개발자가 어떠한 작업을 완료하는 데 필요한 모든 관련 정보
옵저버 패턴
- 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 패턴
- 주체 : 객체의 상태 변화를 보고 있는 관찰자
- 옵저버 : 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들
- 주체와 객체를 따로 두지 않고 상태가 변경되는 객체를 기반으로 구축하기도 한다.
- ex) 트위터
- 주로 이벤트 기반 시스템에 사용
- MVC 패턴에도 사용
- 주체에 해당하는 모델(model)에 변경사항이 생기면
- 메서드로 옵저버에 해당하는 뷰에 알려주고
- 컨트롤러가 작동한다.
'CS > 디자인패턴&프로그래밍패러다임' 카테고리의 다른 글
디자인 패턴 - 프록시 패턴 (0) | 2023.05.01 |
---|---|
디자인 패턴 - 싱글톤 패턴 (0) | 2023.05.01 |