ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SW 정글 52일차] Proxy
    기타/SW 사관학교 정글 2021. 9. 22. 17:44

    오늘은 Tiny 웹 서버 구현에 이어 proxy를 구현하기 위해 proxy에 대해 공부하고 정리해보려고 한다.

     

     

     

     

    1. 프록시 (proxy)란 무엇인가?

    프록시는 클라이언트와 서버 사이에 위치하여 중계기로서 통신을 수행하는 것이다.

    클라이언트가 직접적으로 end server(클라이언트 입장에서 중간에 있는 proxy를 서버라고 생각할 수 있기에 모든 리소스를 가지고 있는 원천 server를 end server라고 부르겠다.)와 연결하여 리소스를 얻는 것 대신에 프록시와 연결되어 통신이 수행된다.

    이렇게 되면 프록시는 클라이언트로부터 받은 요청을 end server에게 보내어 응답을 받은 후, 해당 응답을 클라이언트에게 보낸다.

     

    프록시는 크게 Forward proxy와 reverse proxy로 나눌 수 있다.

    1) Forward proxy

     

    출처:  www.imperva.com

    우리가 흔히 proxy라고 말할 때 보통은 Forward proxy를 의미한다.

    클라이언트가 서버로 요청할 때 직접 요청하지 않고 먼저 프록시 서버를 통해 요청하는 방식이다.

    Forward proxy의 특징은 다음과 같다.

    ① 클라이언트가 요청한 내용을 캐싱해준다.

    캐싱을 간단하게 말하면 이전에 요청을 통해 얻은 리소스를 저장해놓아서 추후에 다시 서버로 요청하지 않아도 해당 리소스를 얻을 수 있는 것이다.

    이러한 특징으로 전송시간을 절약할 수 있고 불필요한 외부전송을 하지 않아도 되고 외부 요청감소로 네트워크 병목 현상을 방지할 수 있다.

     

     클라이언트가 누구인지 end server에게 감추는 익명성을 보장할 수 있다.

    실제로는 클라이언트가 요청을 보냈지만 end server입장에서는 마치 프록시가 요청한 것처럼 요청을 한 대상에 대한 정보를 프록시 정보라고 인식하게 할 수 있다.

     

     

    2) Reverse proxy

    출처 : www.imperva.com

    Reverse Proxy는 클라이언트가 서버를 호출할 때 리버스 프록시를 호출하게 되고 프록시 서버가 서버를 요청하여 받은 응답을 클라이언트에게 전달하는 방식이다. 

    Reverse Proxy의 특징은 다음과 같다.

    ① 클라이언트가 요청한 내용을 캐싱해준다.

    이 부분은 Forward proxy와 같은 내용이므로 생략한다.

     

    ② 서버정보를 클라이언트로부터 숨겨 보안성이 제공된다.

    클라이언트는 reverse proxy를 실제 서버라고 생각하여 요청을 보내기 때문에 실제 서버의 IP가 클라이언트에게 노출되지 않는다.

     

    ③ Load Balancing 기능을 제공해줄 수 있다.

    load balancing은 클라이언트의 요청으로부터 서버 측에 쌓이는 부하를 분산시켜주는 기능이다.

    하나의 인터넷 서비스에 발생하는 트래픽이 많을 때, 서버의 로드율 증가, 부하량, 속도 저하등을 고려하여 여러 대의 서버들이 적절히 분산처리하여 해결해주는 것이다.

     

     


    [오늘의 나는 어떘을까?]

    오늘은 저녁을 먹고나서 내가 오늘 뭘 했지? 생각해봤을 때 정말 한게 너무 없다는 생각이 들어 나를 돌아보는 시간과 동료들과 얘기하는 시간을 가졌다.

    나는 다른 동료들과 달리 추석 때 집에 가지않고 평소처럼 강의실에 나와 공부를 했는데 막상 집에 다녀온 동료들과 공부한 범위나 깊이 정도가 차이가 나지 않는 것을 느꼈다.

    그렇다는 것은 내가 앉아있는 시간동안 집중을 한 시간이 별로 없다거나 집을 갔다 온 사람들이 집에서도 열심히 공부를 했다는 것인데...

    내 생각으로는 내가 너무 집중을 못한 것같다.

     

    그래서 너무 많은 생각이 들었고 집중이라는 단어, 집중을 잘 하기 위해서는 어떻게 해야할까라는 고민이 들었다.

    결국은 자기 의지도 있지만 주위 환경 영향도 받을 수 있고 여러 요인이 집중을 해치겠지만 그 상황 속에서도 최선을 다해 최대한 집중을 해야한다.

     

    이제 정말 얼마 남지 않았다고 생각하고 내가 이루고자하는 목표를 반드시 이뤄내고 싶다.

    후회를 남기도록 하지 말자.

    지금 최선을 다하자.

    댓글

Designed by Tistory.