본문 바로가기
728x90

CS37

Gunicorn이란? 📌 Gunicorn Gunicorn이란 python WSGI의 일종이다. 📌 WSGI가 무엇인지? 정의를 보면, "파이썬 어플리케이션(파이썬 스크립트)이 웹 서버와 통신하기 위한 인터페이스"라고 한다. 와닿지 않는다. 그래서 뭐라는거지? 예전 포스팅에서 한번 Web서버와 WAS 서버의 차이에 대해 서술한 적이 있다. https://wlgustlra.tistory.com/132 Web서버는 정적인 컨텐츠를 처리하고, WAS 서버는 동적인 컨텐츠를 처리한다고 말이다. 그렇다면 우리가 작성하는 정적인 파이썬 코드 덩어리가 이러한 컨텐츠들을 어떻게 처리하는걸까? 이 코드덩어리가 HTTP 요청을 받기 위해서는 파이썬 코드를 HTTP 형식으로 바꿔주는 작업이 필요한데 이를 동작하게 하는 기술이 CGI(Common .. 2023. 3. 25.
웹 소켓(SOCKET)통신 이란? 소켓통신 소켓(SOCKET)이란? 소켓(Socket)은 프로세스가 드넓은 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 실제적인 창구 역할을 한다. 그러므로 프로세스가 데이터를 보내거나 받기 위해서는 반드시 소켓을 열어서 소켓에 데이터를 써보내거나 소켓으로부터 데이터를 읽어들여야 한다. 소켓은은 프로토콜, IP 주소, 포트 넘버로 정의된다. 다시말해 소켓은 떨어져 있는 두 호스트를 연결해주는 도구로써 인터페이스의 역할을 하는데 데이터를 주고 받을 수 있는 구조체로 소켓을 통해 데이터 통로가 만들어 진다. 이러한 소켓은 역할에 따라 서버 소켓, 클라이언트 소켓으로 구분된다. 소켓통신의 흐름 서버 (Server) 클라이언트 소켓의 연결 요청을 대기하고, 연결 요청이 오면 클라이언.. 2023. 3. 23.
프록시 서버란 무엇인가? Proxy란? Proxy는 사전적 의미로 "대리" 하는 것을 뜻한다. 컴퓨터 과학적인 의미로는 프로토콜 상에서 무엇인가를 대신하는 것을 뜻한다. Proxy 서버 프록시 서버는 클라이언트에서 서버로 접속을 할 때 직접적으로 접속하지 않고 중간에 대신 전달해주는 서버를 의미한다. 좀 더 구체적으로 설명하면 아래와 같이 진행된다. 출처:https://www.seobility.net/en/wiki/Proxy_Server 1. 클라이언트에서 프록시 서버로 전달할 요청을 보낸다. 2. 프록시 서버는 클라이언트로부터 전달 받은 요청을 서버에 요청한다. 3. 서버는 요청에 맞게 데이터를 프록시 서버로 전달한다. 4. 프록시 서버는 서버로부터 전달 받은 데이터를 클라이언트에 전달한다. 이와 같이 프록시 서버는 클라이언트.. 2023. 3. 16.
WAS와 Web Server 차이 1. 웹서버는 정적페이지, WAS는 동적페이지 응답 2. 둘다 함께 배포하는 이유는 각자 잘하는 걸 하기 위함 3. 장고는 꼭 Webserver와 배포하자 장고 배포와 관련된 글을 보면 WS(Web Server, 웹서버)와 WAS(Web Application Server, 웹어플리케이션서버)에 대해서 많이 볼 수 있다. 이름도 비슷해서 예전에는 사람마다 같은 걸 다르게 부르는 건가 싶었다. 이와 관련된 내용을 찾아보면 사람마다 다른 얘기를 하고 있는 것을 볼 수 있었다. WAS와 WS를 분리해서 이야기 하기도 하고 합쳐서 동적으로 기능하는 웹서버라고 이야기 하는 사람도 있었다. 같은 걸 의미하지만 정의의 문제라고 생각했다. 하지만 내 나름대로의 정의는 필요하다고 생각했다. 이번 포스트에서는 웹서버와 웹어.. 2023. 3. 9.
쿠버네티스 란 무엇인가?? 쿠버네티스란 무엇일까요? 쿠버네티스란 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 시스템입니다. 출처: https://kubernetes.io/ 1주일에 수십억 개의 컨테이너를 생성하는 Google이 내부 배포시스템으로 사용하던 'borg'를 기반으로 2014년 프로젝트를 시작했고, 여러 커뮤니티의 아이디어와 좋은 사례들을 모아 빠르게 발전하였습니다. 이후 Google이 CNCF(Cloud Native Computing Foundation)에 코드를 기부함으로써, 쿠버네티스는 오픈 소스 프로젝트가 되었습니다. 쿠버네티스는 단순한 컨테이너 플랫폼이 아닌 마이크로서비스, 클라우드 플랫폼을 지향하고, 컨테이너로 이루어진 것들을 손쉽게 담고 관리할 수 있는 그릇 역할을 합니다. 서버리.. 2023. 3. 7.
Redis는 무엇인가?? 1. Redis란? 간단히 말해 메모리 안에 키-값 형태의 데이터베이스를 만들 수 있게 해 주는 친구이다. 일반적으로 우리가 데이터베이스에서 데이터를 가져온다는 것은 하드디스크에서 가져온다는 뜻인데, 하드디스크는 속도로 따지면 최하위권이다. 그래서 가져올 데이터의 용량이 크다면 그만큼 로딩에 시간이 걸리게 되고, 이는 웹서비스에서 마이너스 요소가 된다. 그래서 자주 변경되지 않는 데이터는 캐시 메모리에 넣어놓고 쓰면 용량이 큰 데이터도 매우 빠른 속도로 로딩이 가능해진다. Remote에 위치한 프로세스로 존재하는 In-Memory 기반의(보통 메모리에 상주하면서 RDBMS의 캐시 솔루션으로 사용 "키-값" 구조 데이터 관리 시스템 비관계형이며, 키-값 구조이기 때문에 별도 쿼리 없어도 간단히 데이터를 가.. 2023. 2. 19.
728x90