Nginx란? 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반의 경량화 웹 서버 프로그램. Web Server로 활용되기도 하고, Reverse Proxy Server로 활용하여 WAS의 부하를 줄일 수 있는 로드밸런서 역할을 하기도 한다. NginX는 Apache 서버의 단점을 보완하기 위해 만들어졌다. Apache Server란? Apache 서버는 커넥션 요청이 들어올 때마다 새로운 프로세스를 생성하여 커넥션을 유지하는 방식을 사용한다. 프로세스를 생성하는 것이 오버헤드가 크기 때문에 Prefork MPM 방식과, Worker MPM 방식을 주로 사용한다. 모듈 기반이기 때문에 모듈 추가, 제거가 편리하며 확장성이 좋다. Prefork MPM (Multi Processing M..
프록시(Proxy)란? A와 B 두 PC 간의 통신에서 A가 B에게 바로 요청을 보내지 않고 중간에서 중계하는 프록시 서버를 통해서 요청을 보낼 때 중간에서 중계하는 개념이 '프록시'이며 이 프록시 역할을 하는 서버가 '프록시 서버'이다. 프록시 방법에는 '포워드 프록시'와 '리버스 프록시'가 있다. 포워드 프록시(Forward Proxy)란? 클라이언트에서 서버로 직접 요청하지 않고 프록시 서버를 거쳐서 요청한다. 프록시 서버가 인터넷 보다 앞에 위치하여 서버가 클라이언트의 IP를 알 수 없다. 포워드 프록시는 대부분 캐싱 기능이 있으므로 자주 사용되는 컨텐츠에 매우 효율적이다. 프록시 서버를 통해서 정해진 사이트만 연결하게 설정할 수 있어서 보안에도 효율적이다. 리버스 프록시(Reverse Proxy..
애자일(Agile)방법론이란? 짧은 주기로 작업 계획을 세우고 개발하고, 개선하는 작업을 반복하는 소프트웨어 개발 방식이다. 빠른 개발과 피드백을 통해 최소한의 비용으로 제품의 성공 확률을 높일 수 있으며, 현재 가장 널리 사용되는 개발 방법론이다. 애자일(Agaile)의 작업 주기를 스프린트라고 부르며, 하나의 스프린트가 "기획 ➪ 디자인 ➪ 기능구현 ➪ 테스트➪ 배포" 단계를 가진다. 애자일의 공통점 여러 가지 애자일 방법론이 존재하지만 모두 아래 세 가지 특징을 공통적으로 가진다. Value Oriented (가치 지향) 가치 없는 것은 버리고 가치 있는 것을 챙기자 스프린트 과정에서 가치를 증명하고, 결과에 따라 가치있는 것을 챙긴다는 뜻이다. Interactive (상호적) 개발자, 기획자, 사..
Kubernetis란? 현재 가장 유명한 컨테이너 오케스트레이션 도구이다. 컨테이너 오케스트레이션이란? 컨테이너화 된 애플리케이션에 대한 자동화된 설정, 관리 및 제어 체계 오케스트레이션의 기능 클러스터 관리: 컨테이너를 분산 실행하고, 확장, 로드 밸런싱 등을 관리한다. 네트워킹: 컨테이너 간 통신을 위한 가상 네트워크를 생성하고, 네트워크 정책을 설정하며, 컨테이너와 외부 네트워크 간의 연결을 관리한다. 상태관리: 컨테이너 실행 상태, 애플리케이션의 설정 정보, 환경 변수 등을 관리하고, 애플리케이션의 상태 변화에 따라 컨테이너를 생성, 업데이트, 삭제하는 등의 작업을 수행한다. 배포 관리: 새로운 애플리케이션 버전의 배포, 트래픽 분배 등을 수행하며, 애플리케이션의 가용성과 안정성을 유지하면서 배포..
컨테이너란? 컨테이너는 OS를 가지지 않는 VM보다 가벼운 단위의 독립된 컴퓨팅 환경이다. VM - 하이퍼바이저에 의해 Host OS위에 여러 개의 Guest OS를 띄워서 사용한다. (하이퍼바이저 : OS와 리소스를 분리해 가상머신을 생성하고 구동하는 소프트웨어 = VM Manager) - 하나의 독립된 환경을 생성할 때마다 리소스를 크게 차지하는 Guest OS를 만들어야한다. Container - Guest OS를 포함하지 않아 리소스를 적게 사용하며, 최소한의 필요한 프로세스, 라이브러리 등을 포함하여 생성 속도가 빠르다. - 각각의 컨테이너가 독립되어 있어 컨테이너 간에 간섭이 없다. 도커란? 컨테이너를 생성하고 실행하기 위한 소프트웨어 중 하나이다. 도커의 장점 프로젝트 실행환경을 도커 이미지..