목록Spring (36)
Rootable의 개발일기
📌 단순한 오류 메시지 vs 자세한 오류 메시지 🔎 단순한 오류 메시지 # 단순한 오류 메시지required : 필수 값입니다.range : 범위 오류입니다. 범용성이 좋아 여러 곳에서 사용할 수 있다.메시지를 세밀하게 작성하기 어렵다. 🔎 자세한 오류 메시지 # 자세한 오류 메시지required.item.itemName=상품 이름은 필수입니다.range.item.price=가격은 {0} ~ {1} 까지 허용합니다. 범용성이 떨어진다.메시지를 세밀하게 작성할 수 있다. 범용성을 사용하다가 필요한 경우에만 자세한 오류 메시지를 사용하도록 메시지 단계를 두자 자세한 메시지일수록 우선순위를 높게 준다. 스프링은 MessageCodesResolver라는 것으로 이러한 기능을 지원한다. 📌 MessageC..
📌 Bean Validation이란 검증 기능을 매번 코드로 작성하는 것은 번거롭고, 검증 로직은 대부분 범위나 빈값을 체크하는 일반적인 로직이다. 애노테이션으로 일반적인 검증 로직을 모든 프로젝트에 적용할 수 있도록 공통화하고, 표준화한 것 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 기술 표준이다. 즉, 검증 애노테이션과 여러 인터페이스의 모음이다. Bean Validation을 구현한 기술 중에 일반적으로 사용하는 구현체는 하이버네이트 Validator이다. 📌 스프링에 Bean Validation 적용 Bean Validation 의존 관계를 추가해야 한다. //build.gradleimplementation 'org.springframework.boot:s..
📌 필요성 고객이 브라우저에서 타입에 맞지 않는 값을 입력하거나 정해진 범위를 벗어난 값을 입력했을 때, 입력 값에 대한 검증이 필요하다. 이유는 다음과 같다. 1. 고객이 입력했던 값을 유지해야 한다. - 언제든지 고객에게 재입력 기회를 줘야 서비스의 연속성이 유지될 수 있다. 2. 올바른 입력인지 안내해야 한다. - 고객의 올바른 입력을 유도해야 한다. 3. 타입 미스매치와 같은 바인드 실패 상황에서도 컨트롤러가 실행되도록 해야 한다. - 페이지에서 강제로 이탈시키는 것을 막아야 서비스 연속성이 유지될 수 있고, 이는 고객 만족도와 연결된다. 💡 클라이언트 및 서버에서의 검증고객과 가까운 클라이언트 검증은 조작할 수 있어 보안에 취약하다. 또한, 서버만으로 검증하는 것은 고객 사용성이 떨어진다. ..
📌 개요 스프링 MVC 구조에서 요청이 들어오면 가장 먼저 Dispatcher Servlet에서 요청과 매핑되는 핸들러를 찾는다. 핸들러를 실행하는 주체는 HandlerAdapter다. 그래서 Dispatcher Servlet은 매핑된 핸들러를 실행해 줄 HandlerAdapter를 목록에서 찾는 것이다. 핸들러(컨트롤러) 종류에 따라 호출되는 HandlerAdapter가 달라지는데, 우리는 @RequestMapping 또는 이를 간략화한 @GetMapping, @PostMapping 등이 붙은 핸들러를 많이 사용한다. 이러한 애노테이션 기반의 핸들러를 실행해 주는 HandlerAdapter를 RequestMappingHandlerAdapter라고 한다. 요청 매핑 핸들러 어뎁터 == RequestM..