서버 종류 및 역할 – 웹서버·앱서버·DB서버 등 정리

1. 서버가 한 종류가 아니라고?

이전 글에서 서버는 클라이언트의 요청에 응답하는 컴퓨터라고 배웠습니다. 그런데 실제로 웹 서비스를 만들어보면 서버가 하나가 아니라는 사실을 알게 됩니다.

유튜브, 쿠팡, 배달의민족 같은 서비스 뒤에는 여러 종류의 서버가 각자의 역할을 분담하며 함께 동작합니다. 역할을 분리하면 관리가 쉬워지고, 문제가 생겼을 때 해당 부분만 빠르게 고칠 수 있기 때문입니다.

2. 세 서버를 병원에 비유하면

서버의 역할 분리를 이해하는 가장 좋은 방법은 병원으로 비유하는 것입니다.

병원에 방문하면 먼저 접수 창구에서 방문 목적을 등록합니다. 그 다음 진료실에서 의사가 실제 진찰과 처방을 합니다. 마지막으로 원무과 서류 창고에서 진료 기록을 보관하고 꺼내줍니다.

웹 서비스도 똑같은 구조로 나뉩니다. 웹서버는 접수 창구, 앱서버는 진료실, DB서버는 서류 창고 역할을 합니다.

3. 웹서버(Web Server) – 방문객을 맞이하는 안내 창구

웹서버는 사용자의 브라우저와 직접 소통하며 HTML, CSS, 이미지, JavaScript 같은 정적 파일을 전달하는 서버입니다.

정적 파일이란 누가 요청하든 내용이 항상 같은 파일입니다. 웹사이트의 로고 이미지, 폰트 파일, 기본 레이아웃 CSS 파일이 대표적입니다.

웹서버의 역할을 더 구체적으로 살펴보면 다음과 같습니다. 브라우저에서 요청이 오면 가장 먼저 받아 처리합니다. 정적 파일은 직접 전달하고, 동적 처리가 필요한 요청은 앱서버로 넘겨줍니다. SSL/HTTPS 처리를 담당합니다. 요청이 너무 많이 몰릴 때 여러 앱서버로 분산해주는 역할(로드 밸런싱)도 합니다.

대표 소프트웨어로는 **Nginx(엔진엑스)**와 **Apache(아파치)**가 있으며, 현재는 Nginx가 더 널리 사용됩니다.

4. 앱서버(Application Server) – 실제 업무를 처리하는 부서

앱서버는 서비스의 핵심 기능, 즉 비즈니스 로직을 처리하는 서버입니다. 사용자의 요청에 따라 실제로 ‘무언가를 하는’ 서버입니다.

예를 들어 쇼핑몰에서 “장바구니에 담기” 버튼을 누르면 어떤 일이 일어날까요? 해당 상품이 아직 재고가 있는지 확인하고, 로그인된 사용자의 장바구니에 상품을 추가하고, 장바구니 화면 데이터를 만들어 돌려보내야 합니다. 이 모든 처리가 앱서버에서 이루어집니다.

앱서버가 처리하는 대표적인 작업은 다음과 같습니다. 회원가입·로그인 처리, 상품 검색 및 필터링 로직, 주문·결제 처리, 게시글 작성·수정·삭제, 추천 알고리즘 실행 등이 있습니다.

앱서버는 특정 소프트웨어를 가리키는 것이 아니라, 개발자가 Node.js, Python(Django/Flask), Java(Spring Boot) 같은 언어와 프레임워크로 직접 개발하는 서버입니다.

5. DB서버(Database Server) – 모든 기록을 보관하는 서류 창고

**DB서버(데이터베이스 서버)**는 데이터를 저장하고 필요할 때 꺼내주는 서버입니다. 앱서버가 “이 사용자의 주문 내역을 불러와 줘”라고 요청하면 DB서버가 찾아서 전달합니다.

DB서버에 저장되는 데이터의 예를 들면, 회원 아이디·비밀번호·이름·주소, 상품 이름·가격·재고량, 주문 번호·날짜·결제 수단, 게시글 내용·작성자·작성 시간 등이 있습니다.

관계형 DB vs 비관계형 DB

DB서버에서 사용하는 데이터베이스는 크게 두 종류로 나뉩니다.

**관계형 데이터베이스(RDBMS)**는 엑셀처럼 행과 열로 이루어진 표 형태로 데이터를 관리합니다. 데이터 간의 관계를 명확하게 정의할 수 있어 회원 정보나 주문 내역처럼 구조화된 데이터에 적합합니다. MySQL, PostgreSQL, Oracle이 대표적입니다.

**비관계형 데이터베이스(NoSQL)**는 표 형식에 얽매이지 않고 문서, 키-값 쌍, 그래프 등 다양한 형태로 데이터를 저장합니다. 유연한 구조와 대용량 처리에 강합니다. MongoDB, Redis, Cassandra가 대표적입니다.

6. 실제로 세 서버가 함께 동작하는 과정

온라인 쇼핑몰에서 로그인하는 과정을 예시로 세 서버의 협력 과정을 살펴보겠습니다.

사용자가 아이디와 비밀번호를 입력하고 로그인 버튼을 누릅니다.

웹서버가 로그인 요청을 받아서 앱서버로 전달합니다.

앱서버는 “이 아이디와 비밀번호 조합이 맞는 계정이 있는지 확인해줘”라고 DB서버에 요청합니다.

DB서버가 저장된 회원 데이터를 검색해 결과를 앱서버에 반환합니다.

앱서버는 결과에 따라 로그인 성공 또는 실패를 판단하고 응답 데이터를 만듭니다.

웹서버가 응답을 사용자 브라우저로 전달합니다.

이 전체 과정이 1초도 안 되는 시간 안에 이루어집니다.

7. 서버 소프트웨어 대표 목록

서버 종류역할대표 소프트웨어
웹서버정적 파일 전달, 요청 중계Nginx, Apache
앱서버비즈니스 로직 처리Node.js, Spring, Django, Laravel
DB서버 (관계형)구조화된 데이터 관리MySQL, PostgreSQL
DB서버 (비관계형)유연한 데이터 관리MongoDB, Redis

8. 정리 및 다음 단계

오늘 배운 핵심을 정리합니다.

  • 웹서버는 브라우저와 직접 소통하며 정적 파일을 전달하고 요청을 앱서버로 중계합니다.
  • 앱서버는 로그인, 결제, 검색 등 실제 기능(비즈니스 로직)을 처리합니다.
  • DB서버는 모든 데이터를 저장하고 앱서버의 요청에 따라 데이터를 제공합니다.
  • 세 서버는 독립적으로 존재하지만 서로 협력해 하나의 서비스를 완성합니다.

다음 글에서는 IP 주소와 도메인이 무엇인지, 우리가 주소창에 URL을 입력했을 때 어떤 일이 벌어지는지 알아보겠습니다.

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.