웹 서버 구조 이해하기 (웹 서버 / WAS / DB 서버)

웹사이트를 운영하거나 서버 구조를 공부하다 보면 웹 서버, WAS, 데이터베이스 서버라는 용어를 자주 보게 됩니다. 대부분의 웹 서비스는 이 세 가지 요소가 함께 작동하면서 사용자에게 서비스를 제공합니다.

처음 서버를 배우는 사람들에게는 이 구조가 조금 복잡하게 느껴질 수 있지만 기본 개념을 이해하면 웹 서비스가 어떻게 동작하는지 쉽게 이해할 수 있습니다.

이 글에서는 웹 서비스의 기본 구조와 각 서버의 역할을 자세히 설명하겠습니다.


웹 서비스는 어떻게 동작할까

사용자가 웹사이트에 접속하면 단순히 웹페이지가 바로 나타나는 것이 아니라 여러 서버가 함께 작동합니다.

웹 서비스의 기본 동작 과정은 다음과 같습니다.

  1. 사용자가 웹 브라우저에서 웹사이트 주소 입력
  2. 요청이 웹 서버로 전달
  3. 웹 서버가 필요한 작업을 WAS에 전달
  4. WAS가 데이터베이스에서 데이터를 가져옴
  5. 결과를 웹 서버가 사용자에게 전달

이 과정에서 중요한 역할을 하는 것이 바로 웹 서버, WAS, 그리고 데이터베이스 서버입니다.


웹 서버(Web Server)

웹 서버는 사용자의 요청을 가장 먼저 받는 서버입니다.

대표적인 웹 서버 프로그램은 다음과 같습니다.

  • Nginx
  • Apache HTTP Server

웹 서버의 주요 역할은 다음과 같습니다.

  • 사용자 요청 처리
  • 정적 파일 제공
  • 요청을 WAS로 전달

정적 파일 처리

웹 서버는 정적 파일(static file)을 처리하는 역할을 합니다.

정적 파일에는 다음과 같은 것들이 있습니다.

  • HTML
  • CSS
  • 이미지
  • JavaScript 파일

예를 들어 웹사이트의 이미지나 스타일 파일은 대부분 웹 서버가 직접 처리합니다.

웹 서버는 이러한 파일을 빠르게 전달하는 데 최적화되어 있습니다.


WAS (Web Application Server)

WAS는 웹 서버보다 조금 더 복잡한 역할을 담당합니다.

WAS는 웹 애플리케이션 로직을 처리하는 서버입니다. 즉, 단순한 파일 전달이 아니라 프로그램을 실행하는 서버라고 볼 수 있습니다.

대표적인 WAS 프로그램은 다음과 같습니다.

  • Apache Tomcat
  • Node.js

WAS의 주요 역할은 다음과 같습니다.

  • 웹 애플리케이션 실행
  • 사용자 요청 처리
  • 데이터베이스와 연결
  • 동적 페이지 생성

동적 페이지 처리

WAS는 동적 페이지(dynamic page)를 생성합니다.

예를 들어 다음과 같은 기능은 WAS가 처리합니다.

  • 로그인 기능
  • 게시판 글 작성
  • 검색 기능
  • 쇼핑몰 주문 처리

이러한 기능은 데이터 처리와 프로그램 실행이 필요하기 때문에 WAS가 담당합니다.


데이터베이스 서버(DB Server)

데이터베이스 서버는 웹 서비스에서 데이터를 저장하고 관리하는 역할을 합니다.

대표적인 데이터베이스 프로그램은 다음과 같습니다.

  • MySQL
  • PostgreSQL

데이터베이스 서버의 주요 역할은 다음과 같습니다.

  • 사용자 정보 저장
  • 게시글 데이터 저장
  • 서비스 데이터 관리

예를 들어 회원가입을 하면 사용자 정보가 데이터베이스에 저장됩니다.

또한 게시판 글이나 댓글도 모두 데이터베이스에 저장됩니다.


웹 서버 구조 예시

일반적인 웹 서비스는 다음과 같은 구조를 사용합니다.

사용자
→ 웹 서버
→ WAS
→ 데이터베이스 서버

이 구조를 3티어 아키텍처(3-Tier Architecture)라고 부르기도 합니다.

각 서버가 역할을 나누어 처리하기 때문에 서버 성능과 안정성이 향상됩니다.


왜 서버를 나눠서 사용할까

웹 서버, WAS, 데이터베이스 서버를 나누는 이유는 다음과 같습니다.

성능 향상

각 서버가 서로 다른 작업을 담당하기 때문에 효율적으로 작업을 처리할 수 있습니다.

예를 들어 웹 서버는 파일 전송에 집중하고 WAS는 프로그램 실행에 집중할 수 있습니다.


확장성

웹 서비스의 트래픽이 증가하면 특정 서버만 확장할 수 있습니다.

예를 들어 사용자 요청이 많아지면 웹 서버를 여러 대로 늘릴 수 있습니다.


보안 강화

데이터베이스 서버는 외부에서 직접 접근하지 못하도록 내부 네트워크에 두는 경우가 많습니다.

이렇게 하면 데이터 보안을 강화할 수 있습니다.


실제 서비스에서의 서버 구조

대규모 웹 서비스에서는 더 복잡한 구조를 사용합니다.

예를 들어 다음과 같은 서버들이 추가될 수 있습니다.

  • 캐시 서버
  • 로드 밸런서
  • CDN 서버

캐시 서버로는 **Redis**가 많이 사용됩니다.

로드 밸런서 역할은 **Nginx**가 담당하기도 합니다.

또한 대부분의 서버는 Linux 기반 운영체제 위에서 운영됩니다.


웹 서버 구조를 이해하면 좋은 이유

서버 구조를 이해하면 다음과 같은 장점이 있습니다.

  • 웹 서비스 동작 원리 이해
  • 서버 성능 문제 분석 가능
  • 효율적인 서버 설계 가능

특히 서버 개발자나 인프라 엔지니어를 목표로 한다면 이러한 구조를 이해하는 것이 매우 중요합니다.


마무리

웹 서비스는 단순히 하나의 서버로 이루어지는 것이 아니라 여러 서버가 함께 작동하는 구조입니다. 웹 서버는 사용자 요청을 처리하고 WAS는 프로그램을 실행하며 데이터베이스 서버는 데이터를 관리합니다.

이러한 구조를 이해하면 웹 서비스가 어떻게 동작하는지 훨씬 쉽게 파악할 수 있습니다. 서버 기술을 배우는 과정에서 웹 서버 구조를 이해하는 것은 매우 중요한 기초 지식이라고 할 수 있습니다.

관련 글 보기