v0
★ MILESTONE · WEB

Hello Servlet

우리 프로젝트의 v0 — 읽기 자료

📍 지금 어디를 만지고 있나요?
브라우저
Tomcat
Servlet
Controller
DB

이 차시의 핵심 용어

Servlet 자바로 동적 응답을 만드는 가장 단순한 단위. HttpServlet 클래스를 상속받아 doGet() 또는 doPost() 메서드를 구현한다.
Dynamic Web Project Eclipse 의 자바 웹 프로젝트 유형. Tomcat 위에서 돌아가는 Servlet/JSP 기반 프로젝트.
@WebServlet Servlet 을 특정 URL 에 연결하는 어노테이션. 예: @WebServlet("/hello")/hello 로 들어오는 요청을 이 Servlet 이 처리한다는 뜻.
HttpServletRequest / HttpServletResponse 요청과 응답을 다룰 수 있게 해주는 객체. Tomcat 이 우리 메서드를 호출할 때 이 두 객체를 넘겨준다.

1. 첫 시작 — 가장 단순한 응답

지금까지 우리는 「클라이언트 ↔ 서버」, 「HTTP 메시지」, 「쿠키·세션」, 「정적·동적」 같은 개념들을 봤습니다. 이제 — 실제로 우리가 만든 코드가 응답을 돌려주는 첫 순간을 만들 차례입니다.

왜 단순한 Servlet 부터?

Spring 도 사실은 Servlet 위에 얹힌 거대한 도우미입니다. 가장 밑바닥의 Servlet 한 개를 직접 만들어보면, 나중에 Spring 이 「뭘 자동으로 해주는지」가 명확히 보입니다. 같은 일을 두 번 만들어보는 이터레이션 패턴의 첫 발걸음.

2. Servlet 코드 한눈에

가장 단순한 Servlet

한 화면에 다 담기는 분량입니다. 이게 동적 응답의 본질.

package hello;

import java.io.IOException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req,
                         HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/html;charset=UTF-8");
        resp.getWriter().write("<h1>Hello, World</h1>");
    }
}

줄 한 줄 의미

3. 실행 흐름

① 브라우저 : "/hello 주세요" (GET 요청) ② Tomcat : "어떤 Servlet 이 /hello 를 담당하지?" → @WebServlet("/hello") 가 붙은 HelloServlet 발견 ③ Tomcat : HelloServlet.doGet(req, resp) 호출 ④ Servlet : resp 에 "<h1>Hello, World</h1>" 적음 ⑤ Tomcat : 응답을 HTTP 메시지로 만들어 브라우저로 전송 ⑥ 브라우저 : HTML 받아서 화면에 그림

4. 무엇이 새로 등장했나

우리 프로젝트의 첫 박스들

흐름도에 새로 추가된 박스들:

이게 이번 과정 동안 점점 길어질 흐름도의 첫 두 박스입니다. Part 2 부터는 그 안에 Bean·Controller·Service 같은 박스들이 차례로 들어옵니다.

5. 실습은 Lab 에서

실제로 Eclipse 에서 프로젝트를 만들고 Tomcat 을 등록해서 위 코드를 띄워보는 단계별 가이드는 Lab 자료에서 따라가게 됩니다.

6. v0 의 의미

우리 프로젝트의 진화 시작

오늘 만든 것은 화려하지 않습니다 — "Hello, World" 한 줄. 하지만 이게 v0 출발점이고, 앞으로 우리는 같은 프로젝트를 단계적으로 진화시킵니다:

7. Before / After

전 차시 끝

웹의 동작 원리를 이론으로만 안다. Tomcat 이 어떻게 작동하는지 막연.

v0 — 이번 차시 끝

내가 짠 자바 코드가 Tomcat 위에서 돌아가고, 그 결과를 브라우저에서 직접 본다. 우리 프로젝트가 살아있다.