생각해 보자 님의 블로그

프록시( Proxy )? 여기선 무슨 일이 일어 날까? 본문

테크 지식

프록시( Proxy )? 여기선 무슨 일이 일어 날까?

woohyuntak 2024. 12. 19. 16:49

웹에서 데이터를 요청할 때, 우리는 보통 클라이언트와 서버 간에 직접적인 통신이 이루어진다고 생각합니다. 하지만 실제로는 그 중간에서 다양한 역할을 하는 '프록시 서버'가 존재할 수 있습니다. 프록시 서버는 클라이언트와 서버 간의 요청 및 응답을 중계하면서 중요한 작업을 수행하는데, 그 역할은 무엇일까요? 프록시 서버의 종류와 그 사용 이유를 통해 그 비밀을 알아보겠습니다.


1. 프록시란 무엇인가?

프록시 서버는 클라이언트의 요청을 받아 서버에 전달하고, 서버의 응답을 다시 클라이언트에게 전달하는 중개자 역할을 합니다. 클라이언트와 서버 간의 직접적인 연결을 차단하고, 여러 가지 중요한 작업을 처리함으로써 보안, 성능 향상, 그리고 시스템 관리에 기여합니다.


2. 프록시의 종류


프록시 서버는 주로 **포워드 프록시(Forward Proxy)**와 **리버스 프록시(Reverse Proxy)**로 나눠집니다. 각 프록시는 그 용도와 역할이 다릅니다.

 

- 포워드 프록시

  • 포워드 프록시는 클라이언트와 API 서버 간의 요청을 대신 처리하는 서버로, 클라이언트가 요청을 프록시 서버로 보내면 프록시 서버가 이를 API 서버로 전달하고, 응답을 다시 클라이언트로 전달합니다. 주로 클라이언트 측에서 사용됩니다.
  • 사용 이유:
    데이터 캐싱: 자주 요청되는 데이터를 캐시하여, API 서버의 부담을 줄이고 응답 시간을 단축시킵니다.
    CORS 문제 해결: 클라이언트와 API 서버의 오리진이 다를 때 발생하는 CORS 문제를 우회할 수 있습니다.

 

-  리버스 프록시

  • 리버스 프록시는 서버 측에서 사용되는 프록시로, 클라이언트의 요청을 받아 내부 서버로 전달하는 역할을 합니다. 이 서버는 요청을 다른 서버나 서비스로 리디렉션하거나, 로드 밸런싱을 통해 서버 간의 부하를 분산시킬 수 있습니다.
  • 사용 이유:
    로드 밸런싱: 클라이언트의 요청을 여러 서버로 분배하여 시스템의 부하를 분산시키고, 성능을 최적화합니다.
    보안 강화: 외부에서 오는 요청을 먼저 처리하여 내부 서버의 보안을 강화합니다. SSL 종료 작업도 수행할 수 있습니다.


3. 각 프록시 사용 시 고려해야 할 점

프록시 서버를 선택하는 데 있어 중요한 것은 각 상황에 맞는 프록시 유형을 사용하는 것입니다. 포워드 프록시와 리버스 프록시 각각의 장점과 용도를 잘 이해하고, 그에 맞는 사용 환경을 설정하는 것이 중요합니다.

  • - 포워드 프록시를 선택하는 경우
    포워드 프록시는 주로 클라이언트 측에서 요청을 중계하는 역할을 하므로, 클라이언트가 자주 요청하는 데이터를 캐시하거나, CORS 오류를 우회해야 할 때 유용합니다. API 서버의 부하를 줄이고, 성능을 최적화하고자 할 때 포워드 프록시를 선택하는 것이 좋습니다.
  • - 리버스 프록시를 선택하는 경우
    리버스 프록시는 서버 측에서 여러 서버로 요청을 분배하거나, 보안을 강화하는 데 유용합니다. 트래픽이 많은 대규모 시스템에서 로드 밸런싱을 하거나, 여러 서버 간에 요청을 적절히 분배하고자 할 때 사용됩니다. 또한 SSL 종료나 보안 관련 작업을 처리할 때 리버스 프록시가 유리합니다.

프록시 서버는 클라이언트와 서버 간의 요청을 중개하며, 성능 향상과 보안 강화를 위한 중요한 역할을 합니다. 포워드 프록시와 리버스 프록시 각각의 사용 목적에 맞게 선택하여, 웹 시스템의 효율성과 보안을 극대화할 수 있습니다. 프록시 서버를 적절히 활용하면, 더 나은 사용자 경험을 제공하고, 웹 서비스의 성능과 안정성을 높일 수 있습니다.