Study/computer science

행동패턴 - 이터레이터/전략/옵저버, 구조패턴 - 프록시

오후 6시의 봄 2024. 1. 7. 16:31
이터레이터패턴
  • 이터레이터를 사용하여 컨테이너(배열, 맵)의 요소에 접근하는 패턴
    (javascript for를 이용해 배열, 맵 모두 조회 가능)
  • 장점 : 같은 인터페이스로 쉽게 데이터 조회가 가능
전략패턴
  • 특정 행위를 각각 다른 전략으로 실행해야할 때 전략을 쉽게 교체가능할 수 있도록 구현한 패턴
    ex) passport 라이브러리 - 로그인이라는 행위를 다양한 전략으로 적용할 수 있도록 함(구글, 페이스북, 트위터 등)
  • 각 전략은 캡슐화되어있지만 알고리즘은 컨텍스트 내부에서 다양하게 변경하여 사용할 수 있음
옵저버패턴
  • 주체가 어떤 객체의 상태변화를 관찰하다가 변화가 있을 때마다 다른 옵저버들에게 변화를 알려주는 디자인 패턴
    ex) 트위터의 메인 로직, MVC 패턴에도 적용됨
프록시패턴
  • 객체에 대한 접근의 흐름을 다른 계층인 프록시에서 먼저 인터페이스해주는 디자인패턴
    ex) 클라이언트와 http서버 사이의 https 프록시 서버를 두기도 함(cloudflare)
  • 객체의 속성, 변환 등을 보완하고 보안, 데이터 검증, 캐싱, 로깅에 활용