[Spring MVC] 검증(Validation) - Validator 분리
Back-End/Spring2024. 3. 13. 00:54[Spring MVC] 검증(Validation) - Validator 분리

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 컨트롤러에서 검증 로직이 차지하는 부분은 매우 크다면, 별도의 클래스로 역할을 분리하는 것이 좋다. 그리고 이렇게 분리한 검증 로직을 재사용 할 수도 있다. Validator 인터페이스 스프링은 검증을 체계적으로 제공하기 위해 다음 인터페이스를 제공한다. public interface Validator { boolean supports(Class clazz); void validate(Object target, Errors errors); } boolean supports(Class clazz) 이 메서드는 Validator가 주어진 클래스의 인스턴스를 검증할 수 있는지 여부를 판단한다. 검증하려는 객체의 클래..

[Spring MVC] 검증(Validation) - 오류 코드와 메시지 처리
Back-End/Spring2024. 3. 12. 00:01[Spring MVC] 검증(Validation) - 오류 코드와 메시지 처리

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. FieldError 생성자 FieldError 는 두 가지 생성자를 제공한다. public FieldError(String objectName, String field, String defaultMessage); public FieldError(String objectName, String field, @Nullable Object rejectedValue, boolean bindingFailure, @Nullable String[] codes, @Nullable Object[] arguments, @Nullable String defaultMessage) objectName : 오류가 발생한 객체 이름 fie..

[Spring MVC] 검증(Validation) - FieldError, ObjectError, BindingResult
Back-End/Spring2024. 3. 11. 00:43[Spring MVC] 검증(Validation) - FieldError, ObjectError, BindingResult

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. PRG 패턴의 상품 저장 검증에 관한 내용이다. 기본적인 검증 StringUtils.hasText() 스프링 프레임워크의 org.springframework.util.StringUtils 클래스에 포함된 유틸리티 메서드 중 하나이다. 이 메서드는 주어진 문자열이 실제로 텍스트를 포함하고 있는지 확인하는 데 사용된다. 구체적으로, 문자열이 null이 아니며, 길이가 0보다 크고, 하나 이상의 비공백 문자를 포함하고 있을 때 true를 반환한다. public static boolean hasText(@Nullable String str) 파라미터: str - 검사할 문자열 반환값: 문자열이 null이 아니고, 길이..

[Spring MVC] 메시지, 국제화
Back-End/Spring2024. 3. 10. 00:55[Spring MVC] 메시지, 국제화

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 메시지 스프링 부트에서 메시지를 관리하는 기능은 애플리케이션의 국제화(i18n)를 지원하며, 애플리케이션에서 사용되는 문자열을 손쉽게 관리할 수 있게 해준다. 이 기능을 사용하면, 다양한 언어와 지역에 맞춰 동적으로 메시지를 변경할 수 있으며, 코드 내에 하드코딩된 문자열을 줄임으로써 유지보수성을 높일 수 있다. 스프링 부트에서 메시지를 사용하는 방법에 대해 자세히 알아보자. 1. 메시지 소스 파일 준비 메시지 관리의 첫 단계는 src/main/resources 디렉토리 아래에 프로퍼티 파일 형태로 메시지 소스 파일을 준비하는 것이다. 기본적으로 messages.properties 파일을 사용하지만, 다국어 지..

[Thymeleaf] 스프링 통합과 폼
Front-End/Thymeleaf2024. 3. 9. 00:45[Thymeleaf] 스프링 통합과 폼

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 타임리프 스프링 통합 타임리프 기본 메뉴얼 : https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 스프링 통합 메뉴얼 : https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html 스프링 통합으로 추가되는 기능 스프링의 SpringEL 문법 ${@myBean.doSomething()} 처럼 스프링 빈 호출 지원 편리한 폼 관리를 위한 추가 속성 → th:object (기능 강화, 폼 커맨드 객체 선택) → th:field , th:errors , th:errorclass 폼 컴포넌트 기능 →c..

[Thymeleaf] 타임리프 레이아웃
Front-End/Thymeleaf2024. 3. 8. 00:51[Thymeleaf] 타임리프 레이아웃

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 타임리프(Thymeleaf)에서 템플릿 레이아웃은 웹 애플리케이션의 다양한 페이지에서 공통적으로 사용되는 레이아웃 구조를 재사용할 수 있도록 도와준다. 이를 통해 개발자는 중복 코드를 줄이고, 일관된 레이아웃을 유지할 수 있다. 예를 들어서 layoutExtend.html 메인 컨텐츠 common_header(~{::title},~{::link}) 이 부분이 핵심이다. ::title 은 현재 페이지의 title 태그들을 전달한다. ::link 는 현재 페이지의 link 태그들을 전달한다. 결과 메인 컨텐츠 메인 타이틀이 전달한 부분으로 교체되었다. 공통 부분은 그대로 유지되고, 추가 부분에 전달한 들이 포함된 ..

[Thymeleaf] 템플릿 조각
Front-End/Thymeleaf2024. 3. 7. 00:27[Thymeleaf] 템플릿 조각

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 타임리프(Thymeleaf)의 템플릿 조각 기능은 HTML 문서의 특정 부분을 재사용 가능한 형태로 정의하고, 이를 다른 템플릿에서 삽입하여 사용할 수 있게 해준다. 이 기능은 중복을 줄이고, 템플릿의 유지보수를 용이하게 만들어준다. 템플릿 조각은 주로 헤더, 푸터, 네비게이션 바 등의 반복적으로 사용되는 UI 컴포넌트를 만들 때 유용하다. 템플릿 조각 정의하기 템플릿 조각은 th:fragment 속성을 사용하여 정의한다. 예를 들어, 하나의 HTML 파일 내에 여러 조각을 정의할 수 있다. 부분 포함 부분 포함 insert 부분 포함 replace 부분 포함 단순 표현식 파라미터 사용 결과 부분 포함 부분 포..

[Thymeleaf] 타임리프 기본 기능
Front-End/Thymeleaf2024. 3. 6. 00:11[Thymeleaf] 타임리프 기본 기능

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 타임리프 공식 사이트 : https://www.thymeleaf.org/ 공식 메뉴얼 - 기본 기능 : https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 공식 메뉴얼 - 스프링 통합 : https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html 타임리프 사용 선언 ` 기본 표현식 간단한 표현 ◦ 변수 표현식: ${...} ◦ 선택 변수 표현식: *{...} ◦ 메시지 표현식: #{...} ◦ 링크 URL 표현식: @{...} ◦ 조각 표현식: ~{...} 리터럴 ◦ 텍스트: 'one text..

image