CS 공부

# 프록시 패턴

박태정 입니다. 2025. 2. 20. 16:29
반응형

프록시 패턴이란? 🤔

프록시 패턴은 객체가 어떤 대상 객체에 접근하기 전, 그 접근에 대한 흐름을 가로채서 필터링하거나 수정하는 등의 역할을 하는 디자인 패턴이다.


그럼 구체적으로 어떻게 사용되는 걸까? 예를 들어, 내가 "솔로"라는 객체를 가지고 있다고 가정해보자. 이 객체가 나중에 "커플"로 변경되는 상황이 생기면, 프록시가 그 변경 과정을 가로채서 "객체가 솔로에서 커플로 변경되었습니다!"라는 정보를 출력할 수 있다. 이런 식으로 프록시 패턴은 객체의 상태 변화나 액세스를 조작할 수 있는 기회를 제공한다.

프록시, 왜 중요한가? 🛡️

프록시 패턴이 왜 중요한지, 조금 더 살펴보자. 우리가 서버를 배포할 때, 그냥 서버를 배포하는 게 아니다. 예를 들어, 우리가 개발자(나) -> 서버처럼 직접 접근하는 것보다는, 그 사이에 프록시를 두고 배포한다.

"그럼 왜 그럴까?"라고 의문을 가질 수 있는데, 바로 보안과 성능 때문이야. 만약 내가 서버를 배포할 때 HTTP 프로토콜 서버를 쓴다면, 이 프록시 서버를 HTTPS로 설정해서 보안을 강화할 수 있다. 유저 입장에서는 '어? 이 서비스는 HTTPS네!'라고 생각하면서, 더 안전하게 이용할 수 있다. 물론, 프로토콜 변환 외에도 프록시를 두는 이유는 여러 가지가 있다.

DDoS와 트래픽 처리 🚨

또한, 서버 배포 시 가장 신경 써야 할 부분 중 하나가 DDoS(분산 서비스 거부 공격)다. 이건 심각한 문제인데, 대량의 트래픽이 유입되면 서버가 마비될 수 있다. 하지만 트래픽이 많다고 해서 모든 트래픽을 받아들이면 서버가 과부하에 걸려 결국 AWS 같은 클라우드 서비스에서 돈이 많이 들게 된다. 그러므로 비정상적인 트래픽을 필터링하는 역할을 해주는 것이 바로 프록시 서버의 기능이다.

가장 대표적인 프록시 서버 서비스가 클라우드플레어(Cloudflare)다. 클라우드플레어는 DDoS 공격을 차단하고, 트래픽을 효율적으로 분배하는 데 도움을 준다. 이렇게 프록시 서버를 두면, 네트워크 공격에 대한 대비책도 마련되고, 트래픽 부담도 줄일 수 있다.


마무리

프록시 패턴을 통해 객체의 흐름을 제어하거나, 서버와 클라이언트 간의 트래픽을 제어하는 방법에 대해 알아봤다. 간단히 말해, 프록시는 보안과 성능을 고려한 중요한 중간 역할을 하는 기술이다. 이 패턴을 알면 다양한 시스템에서 더 효율적이고 안전하게 서비스를 운영할 수 있을 것이라고 생각한다.

반응형