참고로 앞서 포스팅한 프록시객체는 프록시패턴이 녹아있는 객체이다.
1. 프록시패턴
- 대상 객체애 접근하기 전, 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴이다.
- 프록시란 ? '대리' / '대신' 의 의미이다.
- 이를 통해 객체의 속성, 변환 등을 보완하며, 보안, 검증, 캐싱, 로깅 등에 사용한다.
- 프록시 서버로도 활용된다.
2. 프록시서버
- NGINX : 비동기 이벤트 기반의 구조와 다수의 연결을 효과적으로 처리 가능한 웹 서버이고, 주로 Node.js의 앞단의 프록시서버로 활용.
- NodeJS의 창시자도 버퍼오버플로우의 취약점 예방을 위해 nginx를 프록시서버로 앞단에 놓는게 좋다고 했다.
- 버퍼오버플로우란 ? 버퍼는 메모리공간이며, 메모리 공간을 넘쳐 벗어나는 경우를 말한다. 이런 경우 데이터가 덮어씌워져 무슨 일이 일어날지 모르는 아주아주 위험한 공격이 발생하기도 한다.
- gzip이란 ? : 압축기술. 데이터 전송량을 줄일 수 있지만, 서버의 CPU오버헤드도 고려해야 한다.
- CloudFlare : CDN 서비스이며, DDOS 방어, HTTPS 구축이 쉽다.
- CDN이란 ? : (Content Delivery Network) 사용자마다 접속하는 곳과 물리적으로 가까운 곳에서 콘텐츠를 캐싱 또는 배포하는 서버 네트워크. 콘텐츠 다운로드 시간을 줄일 수 있다.
3. CORS와 프론트엔드의 프록시 서버
- CORS란 ? : Cross-Origin Resource Sharing이며, 서버가 웹 브라우저에서 리소스를 로드할 때 다른 오리진을 통해 로드하지 못하게 하는 HTTP 헤더 기반 메커니즘이다. 보안 정책이라고 보면 된다.
- 프론트엔드 개발 시 테스트서버에서 백엔드와 통신할 때 프록시 서버를 사용해서 CORS를 우회하고는 한다.
이런식으로 개발하면 된다(MERN)
[앱삼] 2. MERN 풀스택 환경 기본 세팅 - 1
1. 디렉토리/파일목록 세팅 2. Git 세팅 3. 라이브러리 세팅 4. node서버와 react 연결, 프록시 개발환경 설정 // 오늘 여기까지 5. 디렉토리에 따른 코드스플리팅과 라우터설계 6. DB세팅 7. 로그세팅 ...
victormeredith.tistory.com
- Origin 이란 ? : 프로토콜부터 호스트이름, 포트의 조합이다. ex) https//www.이름.com:8080 까지 (뒤에 /어쩌구 등 추가되는건 제외)
'ComputerScience > (짧)CS전공지식노트' 카테고리의 다른 글
1장-디자인 패턴) 노출모듈 패턴 (0) | 2023.02.27 |
---|---|
1장-디자인 패턴) 이터레이터 패턴 (0) | 2023.02.27 |
1장-디자인 패턴) 옵저버패턴 (0) | 2023.02.20 |
1장-디자인 패턴) 전략패턴 (정책 패턴) (0) | 2023.02.20 |
1장-디자인 패턴) Factory 패턴 (0) | 2023.02.20 |
댓글