프록시 패턴
- 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴
- 보안, 데이터 검증, 캐싱, 로깅에 사용하며 객체가 아닌 서버로도 활용됨
프록시 서버
- 서버와 클라이언트 사이에서 작동
- 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 시스템 혹은 프로그램
대표적인 예시로 Apache, Nginx, CloudFlare 등이 존재함
프록시 서버의 사용 예시
- 프록시를 거치기 때문에 실제 사용하는 포트를 숨길 수 있음
- Nginx를 통해 정적 자원을 gzip하거나, 메인 서버 앞단 로깅하는 것이 가능
- CloudFlare의 경우, HTTPS 구축에 용이함을 제공하며 DDOS 공격 방어가 가능
- 프론트엔드 프록시 서버를 통해 Cross Origin Resource Sharing (CORS) 에러를 방지할 수 있음
이터레이터 패턴
이터레이터를 통해 컬렉션의 요소들에 접근하는 디자인 패턴
- 자료형들의 구조와 관계없이 이터레이터라는 하나의 인터페이스로 순회가 가능하다는 장점이 있음
- 보통 이터러블한 객체를 이터레이터 프로토콜을 통해 순회할 수 있음
노출모듈 패턴
즉시 실행 함수를 통해 private, public과 같은 접근 제어자를 만드는 패턴
- JS의 경우에는 따로 접근 제어자가 존재하지 않기 때문에 이를 구현하여 구축하기도 함