[1Day-1CS] 프록시 패턴 & 이터레이터 패턴 & 노출모듈 패턴

TraceofLight·2023년 3월 28일
0

ComputerScience

목록 보기
3/20
post-thumbnail

프록시 패턴

  • 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴
  • 보안, 데이터 검증, 캐싱, 로깅에 사용하며 객체가 아닌 서버로도 활용됨

프록시 서버

  • 서버와 클라이언트 사이에서 작동
  • 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 시스템 혹은 프로그램

    대표적인 예시로 Apache, Nginx, CloudFlare 등이 존재함

프록시 서버의 사용 예시

  • 프록시를 거치기 때문에 실제 사용하는 포트를 숨길 수 있음
  • Nginx를 통해 정적 자원을 gzip하거나, 메인 서버 앞단 로깅하는 것이 가능
  • CloudFlare의 경우, HTTPS 구축에 용이함을 제공하며 DDOS 공격 방어가 가능
  • 프론트엔드 프록시 서버를 통해 Cross Origin Resource Sharing (CORS) 에러를 방지할 수 있음

이터레이터 패턴

이터레이터를 통해 컬렉션의 요소들에 접근하는 디자인 패턴

  • 자료형들의 구조와 관계없이 이터레이터라는 하나의 인터페이스로 순회가 가능하다는 장점이 있음
  • 보통 이터러블한 객체를 이터레이터 프로토콜을 통해 순회할 수 있음

노출모듈 패턴

즉시 실행 함수를 통해 private, public과 같은 접근 제어자를 만드는 패턴

  • JS의 경우에는 따로 접근 제어자가 존재하지 않기 때문에 이를 구현하여 구축하기도 함
profile
24시간은 부족한 게 맞다

0개의 댓글