프록시 서버란? 어떤 역할을 하는가?

wonway·2024년 2월 13일
0
post-thumbnail

요약

클라이언트와 서버 사이에서 보안과 데이터 관리를 위한 중계 역할을 한다.

특징

  1. 보안 강화 : 클라이언트의 IP를 숨김
  2. 캐싱 : 웹 페이지나 파일을 저장하여 빠르게 제공
  3. 접근 제어 및 필터링 : 데이터 관리 역할
  4. 모니터링 및 로깅 : 데이터 관리 역할

클라이언트와 서버의 중간에서 역할을 하는 개념이 많이 사용되는 것 같다.

종류와 역할

  • 프록시 서버 : 보안 강화, 캐싱, 접근 제어
  • VPN : 전체 인터넷 보안 강화
  • CDN : 로딩 속도 개선
  • 로드 밸런서 : 서버 과부하 방지
  • 웹 어플리케이션 방화벽 : SQL 인젝션, XSS 등의 공격으로부터 네트워크 방어

보안 기능의 공통점을 가진 프록시 서버, VPN, 그리고 방화벽의 주요 특징과 차이점을 비교

기능/특징프록시 서버VPN (Virtual Private Network)방화벽
기본 목적클라이언트와 서버 사이의 중개자 역할로 특정 웹 페이지나 서비스에 대한 요청과 응답을 처리.인터넷 사용자의 전체 인터넷 연결을 암호화하고 보호하여 개인 정보 보호와 익명성 제공.네트워크와 외부 세계 사이의 보안 장벽 역할을 하여 시스템을 보호.
보안선택적 암호화(주로 사용자의 IP 주소 숨김).모든 데이터를 암호화하여 고급 보안과 개인 정보 보호 제공.들어오고 나가는 네트워크 트래픽을 기반으로 시스템 보호.
암호화일반적으로 제공하지 않음 (HTTPS 프록시는 예외).전체 인터넷 연결에 대해 끝에서 끝까지(end-to-end) 암호화 제공.암호화 기능 자체는 제공하지 않음, 트래픽 검사와 필터링에 초점.
익명성제한적 (IP 주소 숨김 가능).높음 (IP 주소 숨김 및 암호화된 연결).익명성 제공에 직접적으로 초점을 맞추지 않음.
성능VPN보다 빠를 수 있으나, 캐싱 외의 보안 기능은 제한적.암호화 과정 때문에 속도가 느려질 수 있음.트래픽 검사와 필터링으로 인해 네트워크 성능에 영향을 줄 수 있음.
주요 사용 사례지역 제한 콘텐츠 접근, 간단한 익명성 제공, 캐싱을 통한 성능 향상.보안이 중요한 온라인 활동, 안전한 원격 접속, 지리적 제한 우회.네트워크 보안 강화, 무단 접근 차단, 공격 및 위협 방지.

그런데 프론트엔드 개발 도중 사용하는 프록시 설정은 무엇일까?

목적 : CORS(Cross-Origin Resource Sharing) 문제를 해결하기 위한 수단


💡 CORS?

웹 보안 메커니즘으로, 브라우저가 다른 출처(origin)의 리소스에 접근하는 것을 제한함. 개발 과정에서 로컬 서버(예: localhost:3000)에서 다른 도메인 또는 포트를 가진 백엔드 서버(예: api.example.com)로 API 요청을 보내려고 하면, 이 정책에 의해 차단될 수 있다.


프록시 설정을 사용하면, 이러한 문제를 우회할 수 있다. 개발 서버의 프록시 설정을 통해, 로컬 서버에서 발생한 API 요청을 프록시 서버를 거쳐 백엔드 서버로 전송한다. 이 과정에서 프록시 서버는 요청을 중계하며, 요청이 마치 지정된 도메인(백엔드 서버)에서 발생한 것처럼 작동하게 한다. 즉, 개발자가 CORS 문제 없이 API 개발과 테스팅을 진행할 수 있다.

더 알아보기 : AWS 문서 '프록시와 VPN의 차이점은 무엇인가요?'

profile
문제를 컴퓨터로 해결하는 데서 즐거움을 찾는 프론트엔드 개발자

0개의 댓글