본문 바로가기

Server Development/Server Architecture

(2)
Nginx 이번 블로그에서는 Nginx에 대해서 알아보려고 한다. 1. 특징 높은 성능 : 경량 서버이며, 이벤트 기반 아키텍처를 기반으로 하여 매우 빠른 성능을 제공하고 비동기 및 다중 프로세스 모델을 사용하므로 많은 동시 연결을 처리할 수 있다. 리버스 프록시 : 요청을 웹 어플리케이션 서버로 전달하는 역할을 한다. 이를 통해 로드 밸런싱, SSL 종료 및 캐싱을 구현 가능하다. 정적 파일 캐싱 : 정적파일(HTML, CSS, JS, 이미지 등)을 효율적으로 제공하는 데 특화되어 있다. 확장성 : 수평적으로 확장이 가능해 더 많은 트래픽을 처리하기 위해 서버 클러스터를 만들 수 있다. 즉, Nginx가 관리하는 서버의 수를 늘리거나 줄이는 작업에 용이하다. 높은 가용성 : 다중 서버간의 로드 밸런싱을 구성하여 ..
MicroServices 마이크로 서비스에 대해서 이번 블로그에 정리해보려고 한다. 이는 서버 구조 개념으로 기존의 방식을 먼저 소개하고 어떤 방식으로 변화했는지 알아보려고 한다. 우선, 기존에는 Monolith Architecture 기반으로 서버를 구성을 하였다. Monolith Architecture 모든 업무 로직을 하나의 애플리케이션 형태로 묶어 서비스 하는 형태를 의미한다. 한 서버를 생각해보면 검색 기능, 로그인 기능, 메신저 기능 등 다양한 기능들을 한 애플리케이션에 묶어서 개발을 하였었다. 개발 과정을 살펴보면, 여러가지 팀들이 각각 코드 작성을 한 가지 소스코드 저장소에 작성을 하고 이를 빌드, 테스트, 릴리스 과정(젠킨스/CI, 백로그, 테스트)을 통해서 하나의 애플리케이션으로 생성한다. 이는 큰 단점을 갖고..