◇ PART · WEB

정적 vs 동적 / WAS

웹의 동작 원리 — 읽기 자료

📍 지금 어디를 만지고 있나요?
브라우저
WAS (Tomcat)
Controller
Service
DB

이 차시의 핵심 용어

정적 페이지 (Static) 이미 디스크에 만들어져 있는 HTML 파일을 그대로 응답으로 보내는 방식. 누가 보든 같은 내용.
동적 페이지 (Dynamic) 요청을 받은 그 순간 서버가 코드를 실행해 HTML 을 새로 만들어 보내는 방식. 누구·언제·무슨 데이터냐에 따라 다른 결과.
웹서버 (Web Server) 정적 파일을 그대로 보내주는 단순한 서버. 대표 제품: Apache HTTP Server, Nginx.
WAS (Web Application Server) 코드를 실행해 동적으로 HTML 을 만드는 서버. 자바 진영 대표 제품: Apache Tomcat.

1. 같은 HTML, 다른 운명

회사 소개 페이지는 누가 들어가도 같은 글이 보입니다. 하지만 네이버 메인은 새로고침할 때마다 뉴스가 바뀌고, 마이페이지에는 내 이름이 떠 있습니다. 같은 HTML 인데 어떻게 한쪽은 고정이고 한쪽은 매번 다를 수 있을까요?

왜 이 차이를 알아야 하나

우리가 앞으로 만들 코드(Spring 으로 짜는 컨트롤러·서비스·매퍼)는 모두 동적 페이지 를 만드는 코드입니다. 동적 처리가 어디서 일어나는지를 모르면, 「내 코드가 도대체 어디서 실행되는 거지?」라는 막막함이 끝까지 갑니다.

2. 정적 페이지

정적 페이지는 디스크에 이미 만들어져 있는 HTML 파일입니다. 서버는 그 파일을 그대로 꺼내서 응답으로 보냅니다.

브라우저 : "/about.html 주세요" 서버 : (디스크에서 about.html 파일 꺼냄) 서버 → 브라우저 : "여기요" (그 파일 그대로)

3. 동적 페이지

동적 페이지는 요청을 받은 그 순간 서버에서 코드를 실행해 HTML 을 만들어 보냅니다.

브라우저 : "/board/list 주세요" 서버 : (자바 코드 실행) ① DB 에서 게시글 목록 조회 ② 조회 결과를 HTML 에 끼워넣기 ③ 완성된 HTML 만듦 서버 → 브라우저 : "여기요" (방금 만든 HTML)

4. 웹서버와 WAS — 두 종류의 서버

역사적으로 두 역할은 다른 제품으로 나뉘어 있었습니다:

┌──────────────┐ 브라우저 ───→ │ 웹서버 │ → 정적 파일 (HTML, CSS, 이미지) │ (Apache, │ 디스크에서 그대로 꺼냄 │ Nginx) │ └──────┬───────┘ │ ┌──────▼───────┐ │ WAS │ → 동적 처리 (자바 코드 실행) │ (Tomcat) │ Spring 코드가 여기서 돌아감 └──────────────┘

4-1. 웹서버 (Apache, Nginx)

4-2. WAS (Tomcat)

우리 과정에서는

큰 사이트는 웹서버 + WAS 를 따로 두지만, 우리 학습 환경에서는 Tomcat 하나로 둘 다 처리합니다. Tomcat 도 정적 파일 정도는 충분히 보낼 수 있거든요.

5. Tomcat — 우리의 작업 환경

Apache Tomcat

자바 진영의 대표 WAS 입니다. 우리가 Spring 으로 짜는 모든 코드(Controller, Service, Mapper)는 결국 Tomcat 위에서 실행됩니다.

Tomcat 이 하는 일:

다음 차시에서는 Tomcat 위에 가장 단순한 자바 코드(Servlet) 한 개를 올리고, 브라우저로 첫 응답을 받아봅니다.

6. Before / After

전 차시 끝

HTTP 메시지가 어떻게 생겼는지 알지만, 응답 HTML 이 어디서 만들어지는지 모름.

이번 차시 끝

정적/동적의 차이를 알고, 우리 Spring 코드가 결국 Tomcat 이라는 WAS 안에서 돌아간다는 걸 안다.