Spring

    검증1 - Validation

    검증1 - Validation

    목차 프로젝트 V1 검증 요구사항 검증 직접 처리 - 소개 검증 직접 처리 - 개발 프로젝트 준비 V2 BindingResult1 BindingResult2 FieldError, ObjectError 오류 코드와 메시지 처리1 오류 코드와 메시지 처리2 오류 코드와 메시지 처리3 오류 코드와 메시지 처리4 오류 코드와 메시지 처리5 오류 코드와 메시지 처리6 Validator 분리1 Validator 분리2 검증 요구사항 상품 관리 시스템에 새로운 요구사항이 추가되었다. 요구사항: 검증 로직 추가 타입 검증 가격, 수량에 문자가 들어가면 검증 오류 처리 필드 검증 상품명: 필수, 공백X 가격: 1000원 이상, 1백만원 이하 수량: 최대 9999 특정 필드의 범위를 넘어서는 검증 가격 * 수량의 합은 1..

    메시지, 국제화

    목차 메시지, 국제화 소개 스프링 메시지 소스 설정 스프링 메시지 소스 사용 웹 애플리케이션에 메시지 적용하기 웹 애플리케이션에 국제화 적용하기 메시지, 국제화 소개 메시지 악덕? 기획자가 화면에 보이는 문구가 마음에 들지 않는다고, 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까? 여러 화면에 보이는 상품명, 가격, 수량 등, label 에 있는 단어를 변경하려면 다음 화면들을 다 찾아가면서 모두 변경해야 한다. 지금처럼 화면 수가 적으면 문제가 되지 않지만 화면이 수십개 이상이라면 수십개의 파일을 모두 고쳐야 한다. addForm.html , editForm.html , item.html , items.html 왜냐하면 해당 HTML 파일에 메시지가 하드코딩 되어 있기 때문이다...

    타임리프 - 스프링 통합과 폼

    목차 타임리프 스프링 통합 입력 폼 처리 요구사항 추가 체크 박스 - 단일1 체크 박스 - 단일2 체크 박스 - 멀티 라디오 버튼 셀렉트 박스 정리 타임리프 스프링 통합 타임리프는 크게 2가지 메뉴얼을 제공한다. 기본 메뉴얼: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 스프링 통합 메뉴얼: https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html 타임리프는 스프링 없이도 동작하지만, 스프링과 통합을 위한 다양한 기능을 편리하게 제공한다. 그리고 이런 부분은 스프링으로 백엔드를 개발하는 개발자 입장에서 타임리프를 선택하는 하나의 이유가 된다. 스프링 통합으로 추가되는 기능들 스..

    타임리프 - 기본 기능

    타임리프 - 기본 기능

    목차 프로젝트 생성 타임리프 소개 텍스트 - text, utext 변수 - SpringEL 기본 객체들 유틸리티 객체와 날짜 URL 링크 리터럴 연산 속성 값 설정 반복 조건부 평가 주석 블록 자바스크립트 인라인 템플릿 조각 템플릿 레이아웃1 템플릿 레이아웃2 정리 프로젝트 생성 사전 준비물 Java 11 설치 IDE: IntelliJ 또는 Eclipse 설치 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project: Gradle Project Language: Java Spring Boot: 2.5.x Project Metadata Group: hello Artifact: thymeleaf-basic Name: thymeleaf-..

    웹 페이지 만들기

    웹 페이지 만들기

    목차 프로젝트 생성 요구사항 분석 상품 도메인 개발 상품 서비스 HTML 상품 목록 - 타임 리프 상품 상세 상품 등록 폼 상품 등록 처리 - @ModelAttribute 상품 수정 PRG Post/Redirect/Get RedirectAttributes 정리 프로젝트 생성 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project: Gradle Project Language: Java Spring Boot: 2.4.x Project Metadata Group: hello Artifact: item-service Name: item-service Package name: hello.itemservice Packaging: Jar (주..

    기본 기능

    기본 기능

    목차 프로젝트 생성 로깅 간단히 알아보기 요청 매핑 요청 매핑 - API 예시 HTTP 요청 - 기본, 헤더 조회 HTTP 요청 파라미터 - 쿼리 파라미터, HTML Form HTTP 요청 파라미터 - @RequestParam HTTP 요청 파라미터 - @ModelAttribute HTTP 요청 메시지 - 단순 텍스트 HTTP 요청 메시지 - JSON HTTP 응답 - 정적 리소스, 뷰 템플릿 HTTP 응답 - HTTP API, 메시지 바디에 직접 입력 HTTP 메시지 컨버터 요청 매핑 헨들러 어뎁터 구조 프로젝트 생성 프로젝트 선택 Project: Gradle Project Language: Java Spring Boot: 2.4.x Project Metadata Group: hello Artifact..

    구조 이해

    구조 이해

    목차 스프링 MVC 전체 구조 핸들러 매핑과 핸들러 어댑터 뷰 리졸버 스프링 MVC - 시작하기 스프링 MVC - 컨트롤러 통합 스프링 MVC - 실용적인 방식 정리 스프링 MVC 전체 구조 직접 만든 MVC 프레임워크와 스프링 MVC를 비교해보자. 직접 만든 MVC 프레임워크 구조 SpringMVC 구조 직접 만든 프레임워크 -> 스프링 MVC 비교 FrontController -> DispatcherServlet handlerMappingMap -> HandlerMapping MyHandlerAdapter -> HandlerAdapter ModelView -> ModelAndView viewResolver -> ViewResolver MyView -> View DispatcherServlet 구조 살..

    MVC 프레임 워크 만들기

    MVC 프레임 워크 만들기

    목차 프론트 컨트롤러 패턴 소개 프론트 컨트롤러 도입 - v1 View 분리 - v2 Model 추가 - v3 단순하고 실용적인 컨트롤러 - v4 유연한 컨트롤러1 - v5 유연한 컨트롤러2 - v5 프론트 컨트롤러 패턴 소개 프론트 컨트롤러 도입 전 프론트 컨트롤러 도입 후 FrontController 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청을 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러를 찾아서 호출 입구를 하나로! 공통 처리 가능 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 됨 스프링 웹 MVC와 프론트 컨트롤러 스프링 웹 MVC의 핵심도 바로 FrontController 스프링 웹 MVC의 DispatcherServlet이 FrontController 패턴..

    서블릿, JSP, MVC 패턴

    서블릿, JSP, MVC 패턴

    목차 회원 관리 웹 애플리케이션 요구사항 서블릿으로 회원 관리 웹 애플리케이션 만들기 JSP로 회원 관리 웹 애플리케이션 만들기 MVC 패턴 - 개요 MVC 패턴 - 적용 MVC 패턴 - 한계 회원 관리 웹 애플리케이션 요구사항 회원 정보 이름: username 나이: age 기능 요구사항 회원 저장 회원 목록 조회 회원 도메인 모델 회원 도메인 모델 package hello.servlet.domain.member; import lombok.Getter; import lombok.Setter; @Getter @Setter public class Member { private Long id; private String username; private int age; public Member() { } pu..

    서블릿

    서블릿

    목차 프로젝트 생성 Hello 서블릿 HttpServletRequest - 개요 HttpServletRequest - 기본 사용법 HTTP 요청 데이터 - 개요 HTTP 요청 데이터 - GET 쿼리 파라미터 HTTP 요청 데이터 - POST HTML Form HTTP 요청 데이터 - API 메시지 바디 - 단순 텍스트 2. 서블릿 - HTTP 요청 데이터 - API 메시지 바디 - JSON HttpServletResponse - 기본 사용법 HTTP 응답 데이터 - 단순 텍스트, HTML HTTP 응답 데이터 - API JSON 정리 프로젝트 생성 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project: Gradle Project..