inflearn 38

[스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술] 4. 검증1 - Validation

1. 검증 요구사항 및 기본 개념1) 상품 관리 시스템 검증 요구사항새로운 상품을 등록하거나 수정할 때, 올바르지 않은 값이 들어오면 검증 오류를 발생시켜야 합니다.타입 검증: 가격(price), 수량(quantity) 필드에 문자가 입력될 경우 검증 오류 처리필드 검증:상품명(itemName): 필수 값, 공백 금지(X)가격(price): 1,000원 이상 1,000,000원 이하수량(quantity): 최대 9,999개 이하특정 필드의 범위를 넘어서는 검증 (복합 룰):가격 * 수량의 합이 최소 10,000원 이상이어야 함2) 클라이언트 검증 vs 서버 검증웹 애플리케이션의 검증은 크게 두 가지 영역으로 나뉘며, 상호 보완적으로 사용되어야 합니다.구분장점단점특징클라이언트 검증즉각적인 피드백 제공, 사..

INFLEARN 2026.05.31

[스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술] 3. 메시지와 국제화

1. 메시지, 국제화 소개메시지악덕? 기획자가 화면에 보이는 문구가 마음에 들지 않는다고, 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까?여러 화면에 보이는 상품명, 가격, 수량 등, label에 있는 단어를 변경하려면 다음 화면들을 다 찾아가면서 모두 변경해야 한다. 지금처럼 화면 수가 적으면 문제가 되지 않지만 화면이 수십 개 이상이라면 수십 개의 파일을 모두 고쳐야 한다.addForm.html, editForm.html, item.html, items.html왜냐하면 해당 HTML 파일에 메시지가 하드코딩 되어 있기 때문이다.이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다.예를 들어서 messages.properties 라는 메시지 관리용 파일을 ..

INFLEARN 2026.05.28

[스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술] 2. 타임리프 - 스프링 통합과 폼

1. 타임리프와 스프링 MVC 통합 개요타임리프는 스프링 프레임워크와 유연하게 통합되어 단순한 뷰 템플릿 역할을 넘어선 강력한 엔터프라이즈 기능을 지원합니다.스프링 통합으로 추가되는 주요 기능스프링의 SpringEL 문법 통합: ${@myBean.doSomething()}과 같이 스프링 빈을 직접 호출할 수 있습니다.편리한 폼(Form) 관리 속성: th:object, th:field, th:errors, th:errorclass 등을 제공합니다.폼 컴포넌트의 편의 기능: 체크박스(Checkbox), 라디오 버튼(Radio button), 셀렉트 박스(Select/List)를 쉽게 렌더링하도록 돕습니다.메시지 및 국제화 기능 통합: 스프링의 다국어 메시지 설정을 타임리프 템플릿 내에서 손쉽게 사용합니다...

INFLEARN 2026.05.26

[스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술] 1. 타임리프(Thymeleaf) 기본 기능

1. 타임리프 소개핵심 개념서버 사이드 HTML 렌더링 (SSR): 백엔드 서버에서 HTML을 동적으로 생성하여 클라이언트에 전달합니다.네츄럴 템플릿 (Natural Templates): 타임리프 파일은 순수 HTML 구조를 유지하므로, 서버 없이 브라우저에서 직접 열어도 화면이 깨지지 않고 마크업 확인이 가능합니다.스프링 통합 지원: 스프링의 다양한 기능을 편리하게 사용할 수 있도록 강력하게 통합되어 있습니다.타임리프 사용 선언HTML 파일 상단 태그에 아래 속성을 추가해야 합니다.2. 텍스트 - text, utext개념 설명Escape: HTML에서 사용하는 특수 문자()를 HTML 엔티티(<, >)로 변경하는 것. 웹 브라우저는 이를 태그가 아닌 문자로 인식합니다.th:text: 기본 ..

INFLEARN 2026.05.02

[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 8. 스프링 MVC - 웹 페이지 만들기

1. 프로젝트 생성스프링 부트 스타터 사이트(https://start.spring.io)를 통해 프로젝트를 생성한다.Project: Gradle ProjectLanguage: JavaSpring Boot: 2.4.xProject MetadataGroup: helloArtifact: item-servicePackaging: Jar (주의: JSP를 사용하지 않으므로 Jar를 권장)Java: 11Dependencies: Spring Web, Thymeleaf, Lombokbuild.gradle 설정plugins { id 'org.springframework.boot' version '2.4.3' id 'io.spring.dependency-management' version '1.0.11.RELE..

INFLEARN 2026.04.23

[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 7. 스프링 MVC - 기본 기능

1. 로깅 (Logging)실무 운영 시스템에서는 System.out.println()을 사용하여 콘솔에 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용합니다.1.1 로깅 라이브러리 구조스프링 부트 로깅 라이브러리(spring-boot-starter-logging)는 기본적으로 다음을 사용합니다.SLF4J: 로그 라이브러리들을 통합하여 제공하는 인터페이스입니다.Logback: SLF4J의 구현체로, 실무에서 가장 많이 사용되는 로그 라이브러리 중 하나입니다. (그 외 Log4J, Log4J2 등이 있음)1.2 LogTestController.javapackage com.example.spring_mvc_study1_mvc.basic;import lombok.extern.slf4j.Slf4j;impo..

INFLEARN 2026.04.19

[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 6. 스프링 MVC - 구조 이해

1. 스프링 MVC 전체 구조스프링 MVC는 프론트 컨트롤러 패턴으로 구현되어 있으며, 그 핵심은 DispatcherServlet입니다.1.1 직접 만든 프레임워크 vs 스프링 MVC 비교FrontController → DispatcherServlethandlerMapping Map → HandlerMapping (인터페이스)MyHandlerAdapter → HandlerAdapter (인터페이스)ModelView → ModelAndViewviewResolver → ViewResolver (인터페이스)MyView → View (인터페이스)1.2 DispatcherServlet 구조org.springframework.web.servlet.DispatcherServlet부모 클래스에서 HttpServlet을..

INFLEARN 2026.04.14

[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 5. MVC 프레임워크 만들기

1. 프론트 컨트롤러(Front Controller) 패턴 소개특징프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 (입구를 하나로!)공통 처리가 가능하며, 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨2. 프론트 컨트롤러 도입 - v1 (구조 맞추기)기존 로직을 최대한 유지하면서 프론트 컨트롤러만 도입하는 단계입니다.ControllerV1 인터페이스package com.example.spring_mvc_study1_servlet.web.frontcontroller.v1;import jakarta.servlet.ServletException;import jakarta.servlet.http.HttpServletRequest;import jakart..

INFLEARN 2026.04.09

[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 4. 서블릿, JSP, MVC 패턴

1. 회원 관리 웹 애플리케이션 요구사항 및 도메인 모델회원 정보 및 기능회원 정보: 이름(username), 나이(age)기능 요구사항: 회원 저장, 회원 목록 조회Member.java (회원 도메인 모델)package com.example.spring_mvc_study1_servlet.domain.Member;import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class Member { private Long id; private String username; private int age; public Member() { } public Member(String username, int age) { ..

INFLEARN 2026.04.09

[스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 3. Servlet

1. Hello 서블릿1.1 스프링 부트 서블릿 환경 구성스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan을 지원합니다. 이 애노테이션은 현재 패키지와 하위 패키지를 모두 뒤져서 서블릿을 찾아 자동으로 등록해 줍니다.SpringMvcStudy1ServletApplicationpackage com.example.spring_mvc_study1_servlet;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.web.servlet.ServletComp..

INFLEARN 2026.04.07