클라이언트, 웹서버, 웹애플리케이션 서버, 웹프레임워크 구조와 요청과 응답 흐름에 대해 간단하게 설명드리겠습니다.
Nginx (엔진엑스) : 웹 서버
▣ 먼저 클라이언트가 웹브라우저를 통해 요청을 보냅니다.
▣ 요청을 받은 Nginx는 정적 자원(Html, CSS, JS, 이미지)이면 직접 응답합니다.
▣ 동적 애플리케이션 요청(api, login, user)이면 톰캣으로 요청을 넘깁니다.
'프록시' 란?
프록시는 클라이언트와 서버 사이에서 요청과 응답을 대신 중계해주는 중간 서버를 말합니다.
Nginx는 '리버스 프록시'로 서버 앞에 위치한 프록시입니다. 참고로 클라이언트 앞에 위치한 프록시는 '포워드 프록시'라고 부릅니다.
Tomcat (톰캣) : 웹 애플리케이션 서버
▣ Nginx로부터 전달받은 요청을 톰캣이 수신합니다.
▣ HTTP 요청을 Servlet 객체로 변환해 서블릿 (Servlet) 컨테이너로 전달합니다.
'서블릿 컨테이너' 란?
서블릿 (servlet) 은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램을 말합니다. 톰캣은 아파치에서 개발한 서블릿 컨테이너만 있는 웹 애플리케이션 서버입니다.
Spring Boot (스프링 부트) - 웹 프레임워크
▣ DispatcherServlet이 요청을 받아 해당하는 Controller로 매핑
▣ 비즈니스 로직을 수행하고 DB를 조회한 후 결과를 반환
'웹 프레임워크' 란?
웹프레임워크는 웹 애플리케이션 개발을 위한 구조와 규칙을 제공하는 소프트웨어입니다.
- 스프링 - 자바 엔터프라이즈 애플리케이션 개발을 단순화
- 스프링부트 - 스프링 기반으로 애플리케이션을 쉽게 생성하고 배포하기 위해 개발된 모듈

응답
▣ Spring Boot - 톰캣 - Nginx - 클라이언트로 반환
요청을 처리하고 응답하는 흐름입니다. 요청과 반대의 순서로 진행됩니다.
이런 흐름으로 요청과 응답이 진행되지만 요즘은 엔진 엑스에서 바로 스프링 부트로 요청하고 내장 톰캣을 이용하는 방식이 많이 쓰입니다.
| 관련포스트 |
| 웹 서버와 웹 애플리케이션 서버(WAS)의 차이 설명 |
| 프론트엔드와 백엔드(웹서버, 웹애플리케이션, 웹프레임워크) |
| 웹서버 | 엔진엑스(Nginx) 기초 및 폴더 구조 |
| 웹서버 | 아파치 (Apache) 에 대한 기초 지식 |
'컴퓨터공학 > 웹 개발' 카테고리의 다른 글
| 네이버 엔클라우드(Ncloud) 소개 및 주요 서비스 설명 (2) | 2026.02.23 |
|---|---|
| 웹서버 | 엔진엑스(Nginx) 기초 및 폴더 구조 (0) | 2026.02.19 |
| 프론트엔드와 백엔드(웹서버, 웹애플리케이션, 웹프레임워크) (6) | 2025.06.16 |
| Let's Encrypt 에서 무료 SSL 인증서 발급 (4) | 2025.05.26 |
| 네이버 클라우드 플랫폼 (NCP) 서비스 소개 (3) | 2025.04.28 |
| 스프링부트 웹프레임워크 구조와 빌드 도구 (2) | 2025.03.27 |
| 웹 서버와 웹 애플리케이션 서버(WAS)의 차이 설명 (3) | 2025.03.06 |
| JAVA 프레임워크 | 스프링(SPRING) 프레임워크와 스프링 부트 소개 (6) | 2025.02.07 |
댓글