1. 웹 서버 (Web Server)
| 구분 | 설명 |
| 핵심 역할 | 사용자 요청의 첫 관문 (Gatekeeper). 사용자의 모든 요청을 가장 먼저 받아서 처리합니다. |
| 주요 기능 | 1. 정적 파일 제공: 변하지 않는 파일(HTML, CSS, 이미지, PDF 등)을 사용자에게 직접 전달합니다. 2. 요청 중계 (Reverse Proxy): 사용자의 API 요청을 **WAS(애플리케이션 서버)**로 안전하고 효율적으로 전달합니다. |
| 대표 소프트웨어 | Nginx, Apache HTTP Server |
| 왜 필요할까? | WAS는 복잡한 계산(비즈니스 로직)에 집중해야 합니다. 단순 파일 제공이나 요청 중계는 웹 서버가 대신하여 WAS의 부담을 줄이고 안정성을 높입니다. 또한, 보안(SSL/TLS 암호화) 및 로드 밸런싱(요청 분산) 역할도 수행합니다. |
2. WAS (Web Application Server, 애플리케이션 서버)
| 구분 | 설명 |
| 핵심 역할 | 서비스의 두뇌 (Brain)이자 핵심 로직 처리자. 실제로 데이터를 생성, 가공, 검증하는 서비스의 모든 핵심 기능을 담당합니다. |
| 주요 기능 | 1. 비즈니스 로직 실행: 수강신청, 결제 처리, 게시글 작성 등 서비스의 핵심 기능을 코드로 실행합니다. 2. DB 연동: DB 서버에 데이터를 저장하거나 조회하는 작업을 수행합니다. 3. 트랜잭션 관리: 여러 작업이 하나의 단위로 처리되도록 보장합니다 (예: 결제와 상품 재고 감소는 동시에 성공하거나 실패해야 함). |
| 대표 소프트웨어 | Spring Boot (Java), Express (Node.js), Django (Python) |
| 왜 필요할까? | 사용자의 **'상태'**가 변하는 모든 중요한 작업(데이터 저장, 수정 등)은 WAS를 통해서만 이루어져야 합니다. 비즈니스 로직의 정확성과 안정성을 보장하는 핵심 서버입니다. |
3. DB 서버 (데이터베이스 서버)
| 구분 | 설명 |
| 핵심 역할 | 서비스의 영구 데이터 창고 (Persistent Storage). 사용자 정보, 주문 내역, 게시글 내용 등 서비스의 상태와 관련된 모든 데이터를 안전하게 저장합니다. |
| 주요 기능 | 1. 데이터 저장/조회: WAS의 요청에 따라 데이터를 디스크에 저장하고, 필요한 데이터를 찾아 제공합니다. 2. 데이터 무결성/일관성 보장: 데이터가 손상되거나 잘못되는 것을 막고, 항상 정확한 상태를 유지하도록 관리합니다. |
| 대표 소프트웨어 | MySQL, MariaDB, PostgreSQL (RDBMS), MongoDB (NoSQL) |
| 왜 필요할까? | 데이터의 **'일관성(Consistency)'**과 **'트랜잭션(Transaction)'**이 매우 중요하다면 RDBMS를 사용합니다. 데이터 구조가 유연하거나 대규모 분산 처리가 중요하다면 NoSQL을 고려할 수 있습니다. |
4. 캐시 서버 (Cache Server)
| 구분 | 설명 |
| 핵심 역할 | 초고속 임시 저장소 (High-Speed Temporary Storage). DB에 갈 필요 없이 빠르게 응답할 수 있도록, 자주 사용되는 데이터를 메모리에 잠시 보관합니다. |
| 주요 기능 | 1. DB 부하 감소: 반복적인 조회 요청을 캐시 서버가 대신 처리하여 DB 서버의 과부하를 막습니다. 2. 응답 속도 향상: 디스크 접근보다 훨씬 빠른 메모리(RAM) 접근을 통해 사용자에게 즉각적인 응답을 제공합니다. |
| 대표 소프트웨어 | Redis, Memcached |
| 왜 필요할까? | 사용자 로그인 세션 정보, 자주 바뀌지 않는 게시판 목록, 인기 검색어 등 빠르게 접근해야 하지만, 데이터가 조금 오래되어도 큰 문제가 없는 데이터입니다. |
5. 모니터링 서버 (Monitoring Server)
| 구분 | 설명 |
| 핵심 역할 | 서비스 상태 진단 및 감시자 (Health Checker & Supervisor). 모든 서버와 애플리케이션의 상태를 24시간 감시하고 데이터를 수집합니다. |
| 주요 기능 | 1. 메트릭(지표) 수집: CPU 사용량, 메모리, 네트워크 트래픽, 사용자 응답 시간 등의 지표를 실시간으로 수집합니다. 2. 시각화: 수집된 데이터를 그래프나 대시보드로 만들어 한눈에 상태를 파악할 수 있게 합니다. 3. 알람 (Alerting): 설정된 임계치(예: CPU 사용량 90% 초과)를 넘어서면, 즉시 개발자에게 알림(Slack, 문자 등)을 보냅니다. |
| 대표 소프트웨어 | Prometheus, Grafana, Zabbix, ELK Stack |
| 왜 필요할까? | 장애가 발생하기 전에 미리 징후를 파악하고 대비할 수 있게 하며, 장애 발생 시 원인을 빠르게 분석하고 대응할 수 있는 기반이 됩니다. |
6. 미디어 서버 (Media Server)
| 구분 | 설명 |
| 핵심 역할 | 대용량 파일 배달 전담 (Large File Delivery Specialist). 동영상, 대용량 문서, 강의 자료 등 크기가 큰 파일을 효율적으로 사용자에게 전송하는 역할을 분리하여 WAS의 부담을 덜어줍니다. |
| 주요 기능 | 1. 파일 전송 효율화: 대용량 파일을 전송할 때 발생하는 네트워크 부하를 전담합니다. 2. 부분 다운로드 (Range Request): 동영상 스트리밍처럼 파일의 특정 부분(재생 중인 위치)만 요청하고 전달하는 기능을 지원하여 효율적인 미디어 재생을 가능하게 합니다. |
| 대표 소프트웨어 | Nginx (파일 제공 용도로 설정), Flask (간단한 API 서버) |
| 왜 필요할까? | 강의 영상 서비스, 대용량 파일 업로드/다운로드 기능이 있는 서비스처럼 트래픽이 큰 파일 전달이 필요할 때 사용합니다. |
7. 프로그래밍 언어 및 프레임워크
| 언어 (프레임 워크) | 특징 | 적합한 상황 |
| Java (Spring Boot) | 견고성, 안정성, 대규모 시스템에 최적화되어 있으며, 강력한 트랜잭션 처리와 풍부한 엔터프라이즈급 라이브러리를 제공합니다. | 금융, 대규모 사용자 트래픽, 복잡하고 안정성이 중요한 핵심 로직 (미션 크리티컬) |
| Python (Django/FastAPI) | 개발 속도가 빠르고 문법이 간결하며, 데이터 분석 및 AI 연동이 쉽습니다. | 빠른 프로토타입 개발, 조회 중심 API, 머신러닝/데이터 처리가 포함된 서비스 |
| Node.js (Express) | 비동기 처리(동시 요청 처리)에 강점이 있으며, 프론트엔드/백엔드를 동일 언어(JavaScript/TypeScript)로 개발할 수 있어 효율적입니다. | 채팅, 실시간 알림 등 대기 시간이 길지만 연결이 많아야 하는 I/O 중심 서비스 |
- Web 서버(안내 데스크):
- “정적 자료”(예: 안내서, 지도, 이미지, CSS) 즉시 응답
- “업무/계산”(로그인, 주문 등)은 사무실로 전달
- WAS 서버 (사무실/업무 담당자):
- 전해진 요청의 비즈니스 로직 및 프로그램 실행
- 필요하면 DB에 정보 요청
제시해 주신 비유를 바탕으로 DB, 캐시, 모니터링, 미디어 서버의 역할을 이어서 설명해 드릴게요. 이 비유는 전체 IT 시스템을 하나의 종합 서비스 기관이나 회사로 생각하시면 이해하기 쉽습니다.
🏢 서버 역할별 비유 (서비스 기관)
| 서버 역할 | 서비스 기관 비유 | 주요 동작/기능 |
| Web 서버 | 안내 데스크 | "정적 자료"(안내서, 지도, CSS, 이미지 등)는 즉시 응답하고, "업무/계산"이 필요한 요청은 WAS(사무실)로 전달합니다. |
| WAS 서버 | 사무실 / 업무 담당자 | 안내 데스크에서 전해진 요청의 비즈니스 로직과 프로그램을 실행합니다. 수강신청, 데이터 검증 등 핵심 업무를 담당하며, 필요하면 DB에 정보를 요청합니다. |
| DB 서버 | 문서 보관소 | 서비스 데이터를 저장하고 관리하며, 신청 내역, 사용자 정보 등 상태 데이터를 안전하게 보관합니다. 데이터의 무결성과 일관성을 보장하며, 트랜잭션 처리(오류 시 전체 취소)를 수행합니다. |
| 캐시 서버 | 메모장 / 서랍 속 자주 쓰는 서류 | 자주 조회되는 데이터나 세션 정보를 메모리에 저장하여, DB 접근을 최소화하고 빠르게 응답합니다. DB(금고)까지 가는 데 시간이 걸릴 때, 자주 찾는 정보는 미리 꺼내놓는 곳입니다. 로그인 상태 정보(세션), 자주 보는 목록 등을 메모리라는 휘발성이지만 빠른 공간에 보관하여 응답 속도를 극대화합니다. |
| 미디어 서버 | 창고 / 대용량 자료실 | 강의자료, 동영상, 과제 파일 등 용량이 큰 콘텐츠를 저장하고 사용자에게 제공합니다. 파일 전용 서버로서 WAS/DB 서버의 트래픽 부하를 분산시킵니다. |
| 모니터링 서버 | 보안실 / 24시간 감시 카메라 | 서버와 서비스의 상태를 실시간으로 수집·시각화하여 장애를 감지합니다. 자원 사용량(CPU, 메모리 등)을 확인하고 장애 대응 및 성능 병목 파악에 사용합니다. |
🔑 보충 설명: DB 서버 vs. 미디어 서버 역할 차이
| 구분 | DB 서버 (금고 / 문서 보관소) | 미디어 서버 (창고 / 대용량 자료실) |
| 보관하는 데이터 | 상태 데이터 (정형 데이터): 사용자 ID, 주문 번호, 결제 금액, 게시글의 제목과 내용 텍스트 등 → 작고, 구조화되어 있으며, 자주 변경됩니다. |
대용량 파일 (비정형 데이터): 동영상 파일, 이미지 파일, 강의 자료(PDF, PPT), 첨부 파일 등 → 크고, 거의 변경되지 않으며, 파일 자체가 중요합니다. |
| 데이터 사용 목적 | 업무 처리 (트랜잭션): 데이터의 일관성과 정확성이 가장 중요합니다. (예: 결제 후 잔액이 정확히 차감되었는지) |
전송 및 스트리밍: 효율적인 배달과 빠른 다운로드 속도가 중요합니다. |
| 비유적 차이 | **"문서 내용의 정확성"**을 보장하는 곳. 매우 정확한 장부, 계약서, 고객 정보가 보관된 금고입니다. |
**"큰 물건의 보관 및 배송"**을 전담하는 곳. 대형 박스, 가구, 동영상 콘텐츠가 담긴 창고입니다. |
| WAS의 역할 | WAS(사무실)가 **'정보를 조회하거나 변경해 달라'**고 자주 요청합니다. | WAS(사무실)가 **'이 파일을 사용자에게 보내 달라'**고 요청하면, 미디어 서버가 직접 대량 전송을 전담합니다. |
'클라우드' 카테고리의 다른 글
| 하드웨어: 네트워크와 스토리지 (0) | 2025.11.21 |
|---|