◇ PART · WEB

정적 vs 동적 / WAS

웹의 동작 원리 — 화면이 매번 달라지는 비밀

학습 목표

  • 정적 페이지동적 페이지의 차이를 구별할 수 있다
  • 웹서버WAS(Tomcat) 의 분업을 안다
  • 우리가 Tomcat 을 쓰는 이유를 설명할 수 있다

⚠️ 어디가 답답한가

두 화면의 차이

회사 소개 페이지 — 누가 봐도 항상 같은 내용.
네이버 메인 — 새로고침할 때마다 뉴스가 바뀐다.

같은 HTML 인데 어떻게 한쪽은 고정이고 한쪽은 매번 다를 수 있을까요?

🛠️ 두 종류의 페이지

📄 정적(Static)

파일이 이미 만들어져 있음. 서버는 그대로 꺼내 보냄.

예: 회사 소개, FAQ, 약관

⚡ 동적(Dynamic)

요청을 받은 그 순간 새로 만들어짐. 누가·언제 요청했느냐에 따라 다름.

예: 네이버 메인, 게시판, 마이페이지

역할 분업 — 웹서버 vs WAS

┌──────────────┐ │ 웹서버 │ ← 정적 파일 담당 (Apache, Nginx) │ (Static) │ 이미 만들어진 HTML/CSS/이미지 └──────┬───────┘ │ ┌──────▼───────┐ │ WAS │ ← 동적 처리 담당 (Tomcat) │ (Dynamic) │ 요청을 받아 그때그때 HTML 만듦 └──────────────┘

큰 사이트는 둘을 나란히 둡니다. 우리 과정은 작으니 Tomcat 하나로 둘 다 처리합니다.

🛠️ Tomcat — 우리의 동적 엔진

Apache Tomcat

자바로 동적 페이지를 만들어주는 WAS(Web Application Server)입니다. 우리가 Spring 으로 만든 코드는 결국 Tomcat 위에서 돌아갑니다.

  • 자바 코드 + JSP 를 해석해서 HTML 을 즉석에서 생성
  • DB 에서 가져온 데이터를 화면에 끼워 넣어줌
  • Spring 프로젝트는 항상 Tomcat 같은 WAS 가 필요

흐름으로 보기

[정적 페이지 요청] 브라우저 → 웹서버 → 디스크의 HTML 파일 그대로 → 브라우저 (단순) [동적 페이지 요청] 브라우저 → WAS → 자바 코드 실행 → DB 조회 → HTML 조립 → 브라우저 (Spring 의 Controller, Service, Mapper 가 이 안에)

앞으로 우리가 만들 모든 코드는 아래 줄(WAS 안)에서 실행됩니다.

🔄 Before / After

전 차시 끝

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

이번 차시 끝

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

이번 차시의 데이터 흐름

브라우저
Tomcat
(WAS)
자바 코드
(다음 차시)
「Tomcat」이라는 박스가 우리 코드의 집으로 자리잡았습니다

정리

오늘 들고 가는 것

  • 정적 = 이미 만들어진 파일 / 동적 = 그때그때 만듦
  • 웹서버는 정적, WAS(Tomcat) 은 동적
  • 우리 Spring 코드는 Tomcat 안에서 돈다

다음 차시: ★ Hello Servlet (v0) — 우리 프로젝트의 첫 시작점.