웹 개발 실전 강의(2)

오정빈·2025년 9월 4일

내일배움캠프

목록 보기
4/22

2025 09 04 스파르타 코딩클럽 4일차

Thymeleaf, JSP, Servlet, MVC에 대한 내용을 학습하고 정리했다.

Thymeleaf

Thymeleaf는 HTML과 자연스럽게 통합되는 템플릿 엔진으로, 서버에서 동적으로 데이터를 삽입하여 HTML을 생성할 수 있다.
HTML 원형을 유지하면서 변수 출력, 조건문, 반복문 등을 적용할 수 있어 동적 페이지 생성에 적합하다.

기능 구분문법 예시설명
텍스트 출력th:text="${user.name}"HTML 태그 안에 값 출력 (XSS 방지)
조건 분기th:if="${user != null}"조건에 따른 요소 렌더링
반복 처리th:each="item : ${items}"리스트 반복 출력
속성 설정th:href="@{/home}", th:classappend="..."HTML 속성에 값 바인딩
조각 포함th:replace="fragment :: part"공통 영역 분리 및 재사용
폼 입력th:field="*{name}"input, textarea, select에 모델 바인딩
메시지#{welcome.message}다국어 메시지 처리 (messages.properties)

JSP (Java Server Pages)

  • HTML 문서 안에 Java 코드를 삽입하여 동적인 웹 페이지를 생성하는 기술
  • 변수 출력, 조건문, 반복문 사용 가능 (<% %> 사이에 Java 코드 작성)
  • 서버에서 실행 후 결과 HTML만 브라우저로 응답 → 코드 자체가 내려오지 않음
  • 확장자: .jsp

동작 과정

  1. 클라이언트가 JSP 요청
  2. WAS(Web Application Server)에서 JSP를 Java 코드(서블릿)으로 변환
  3. 변환된 서블릿 클래스 실행 후 결과 HTML 응답
  4. 최초 실행 이후에는 변환된 서블릿 클래스 재사용

대표적인 WAS: Tomcat (Spring Boot에도 내장되어 있다.)


Servlet

  • 자바 코드로 작성된 서버 측 프로그램
  • 클라이언트 요청을 받아 처리하고, 동적인 응답을 생성하는 역할
  • WAS 내의 서블릿 컨테이너에서 실행됨

요청 처리 흐름

  1. 클라이언트 요청(Request)
  2. 서블릿 컨테이너에서 해당 서블릿 실행
  3. 처리 후 응답(Response) 반환

JSP vs Servlet 비교

항목JSPServlet
정의HTML 안에 Java 코드 삽입 (서버 측 스크립트)Java 코드로 작성된 서버 프로그램
역할 중심View (화면 출력)Controller (로직 처리)
작성 방식HTML 코드 안에 JavaJava 코드 안에 HTML
사용 목적HTML 응답 생성요청 처리, DB 접근, 비즈니스 로직
표준 위치JSP 표준 태그, JSTLJava Servlet API
기능 차이표현 기능 강화웹 요청을 동적으로 처리
수정/배포수정 시 WAS가 자동 처리수정 후 재컴파일 필요
추천 사용HTML 응답 페이지로그인, DB 처리 등 로직

MVC 패턴

MVC는 Model, View, Controller로 역할을 분리하는 설계 패턴으로 유지보수성과 확장성을 높여준다.

  • Model: 데이터 처리 및 비즈니스 로직 (DB 접근, DTO/DAO)
  • View: 사용자에게 보이는 화면 (HTML, JSP, Thymeleaf 등)
  • Controller: 사용자의 요청을 처리하고 Model과 View를 연결 (Servlet, Spring Controller 등)

MVC 패턴의 장점

  • 유지보수 용이: 역할 분리로 수정 시 영향 최소화
  • 재사용성 증가: Model, View, Controller 독립적 사용 가능
  • 협업에 적합: 백엔드/프론트엔드 분리 작업 가능
  • 테스트 용이: 각 부분을 독립적으로 테스트 가능

아키텍처 패턴 (MVC 동작 흐름)

  1. 요청: 사용자가 웹 브라우저에서 요청 (예: 상품 등록)
  2. Controller 처리: Servlet이 요청을 받고 Model(JavaBeans) 객체 생성
  3. Model 처리: DB와 연동하여 데이터 처리
  4. View 전달: JSP/Thymeleaf에서 데이터 출력
  5. 응답 반환: 최종 HTML 화면을 브라우저에 전송

10일까지 강의는 모두 수강했고, 앞으로 10일까지는 과제와 전에 사두고 수강안한 Spring 강의가 하나 있어 그것으로 미리 예습을 할 계획이다.

0개의 댓글