본문 바로가기
반응형

IT 개인 공부/Server5

메시지 큐(Message Queue)란? 최근 백엔드 직무를 지원하다 보면 자격 요건이나 우대사항에 메시지 큐(Message Queue)라는 역량이 적혀있는 것을 자주 볼 수 있다. 메시지 큐, 말 그대로 메시지들을 큐라는 자료구조에 담아서 관리한다는 의미인 것 같다. 이에 대해서 알아보도록 하자. 우선 메시지 큐는 메시지 지향 미들웨어를 구현한 시스템이기 때문에 메시지 지향 미들웨어가 무엇인지부터 알고 넘어가자. 메시지 지향 미들웨어(MOM) 응용 소프트웨어 간의 데이터(비동기 메시지) 통신을 위한 소프트웨어 메시지 지향 미들웨어는 메시지를 전달하는 과정에서 보관하거나 라우팅 및 변환할 수 있다는 장점을 가진다. 보관 : 메시지의 백업을 유지함으로써 지속성을 제공, 덕분에 송수신 측은 동시에 네트워크 연결을 유지할 필요 없음 라우팅 : 미들웨.. 2021. 8. 26.
웹 서버 : Nginx vs Apache 학부시절 인터넷 프로그래밍 수업을 배울 때는 웹 서버는 Apache, WAS는 Tomcat으로 웹 사이트를 구현하였었다. 예전에는 웹 서버로 Apache를 많이 사용하였지만 최근에는 Nginx를 사용하는 추세이다. 그렇다면 어떤 이유 때문에 Nginx를 점점 더 사용하는 것일까? 바로 Nginx가 트래픽이 많은 웹사이트에 적합하기 때문이다. Nginx는 대용량 트래픽을 처리하기 위해 가벼움과 높은 성능을 목표로 하는 경량 웹 서버이다. 초기에는 정적 파일을 제공하는 웹 서버로 Apache를 보조하는 역할을 수행하였지만 오늘날에는 리버스 프록시, 로드 밸런서, 메일 프록시 및 HTTP 캐싱 등 전체 범위의 서버 작업을 처리하는 웹 서버로 발전하였다. 즉, Nginx 웹 서버는 Apache 웹 서버의 성능 .. 2021. 8. 25.
여러 대의 서버가 세션(Session)을 공유하는 방법 HTTP 프로토콜의 특징 중 하나는 무상태성(Stateless)이다. 상태가 없기 때문에 서버는 요청이 왔을 때 이전 클라이언트와 동일한 클라이언트인지 확인할 방법이 없다. 이는 세션(Session)을 통해 해결한다. 세션이란 쿠키를 기반으로 일정 시간 동안 같은 브라우저로부터 들어오는 요구를 하나의 상태로 보고 그 상태를 유지하는 기술이다. 또한, 세션은 서버에 저장 및 관리된다. 서비스의 규모가 조금만 커지더라도 대부분의 서비스들은 하나가 아닌 여러 대의 서버를 두고 운영한다. 하지만 트래픽이 여러 서버로 분산되지 않고 한 서버로만 집중된다면 여러 대의 서버를 둘 이유가 없어진다. 따라서 트래픽을 여러 대의 서버에 적절히 분산시켜줘야 하는데 이를 가능하게 해주는 친구가 바로 로드 밸런싱(Load Ba.. 2021. 8. 24.
포워드 프록시(Forward Proxy) vs 리버스 프록시(Reverse Proxy) 프록시 서버의 종류에는 포워드 프록시(Forward Proxy) 서버와 리버스 프록시(Reverse Proxy) 서버가 존재한다. 이들을 알아보기전에 먼저 프록시(Proxy) 서버에 대해서 알아보자. 프록시(Proxy)는 "대리"를 의미한다. 그렇다면 프록시 서버는 무언가를 대신 수행해주는 서버라고 생각할 수 있다. 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 의미한다. 즉, 서버와 클라이언트 사이에 중계기로써 대리로 통신을 수행하는 친구가 바로 프록시 서버이다. 클라이언트 서버 사이에서 프록시 서버의 위치, 역할에 따라 포워드 프록시와 리버스 프록시로 나뉘게 된다. 포워드 프록시(Forward Proxy) 클라이언트.. 2021. 8. 21.
로드 밸런싱(Load Balancing) 보통 대부분의 인터넷 서비스는 클라이언트-서버 모델(Client-Server Model)을 사용한다. 클라이언트-서버 모델(Client-Server Model) : 서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해 주는 분산 애플리케이션 구조이자 네트워크 아키텍처를 의미한다. 예를 들어 하나의 서버가 다수의 클라이언트를 관리하는 1:N 관계를 가진다고 하자. 서버가 맡은 클라이언트의 수가 굉장히 적다면 우리는 트래픽에 대해 아무런 걱정을 할 필요가 없을 것이다. 충분히 서버의 성능으로 모든 클라이언트의 요청을 처리해 줄 수 있기 때문이다. 그렇다면 클라이언트 수가 굉장히 많다면 어떻게 될까? 서버의 성능은 한계가 존재하기 때문에 결국 클라이언트의 모든 요청을 신속하게 처리해주기.. 2021. 7. 31.
반응형