본문 바로가기

spring4

@RequestBody에 필드가 하나밖에 없을 때 매핑이 되지 않는 이유 POST 요청을 보낼 때 주로 JSON을 HTTP 본문 데이터에 담아 요청을 보내게 됩니다. Spring 기반의 API 서버라면 @RequestBody 어노테이션을 사용하여 본문 데이터를 Java 객체로 변환(역직렬화)해 사용합니다. 이 작업은 Jackson이 해주고 있기 때문에 개발자는 큰 신경을 쓰지 않고 비즈니스 로직에 집중을 할 수 있습니다. 간단하게 이름을 받는 API를 만들어보겠습니다. 단순히 클라이언트로부터 name이라는 필드에 문자열을 전달 받으면 그대로 응답값으로 반환해주는 간단한 API입니다.@RestController@RequiredArgsConstructorpublic class DemoController { @PostMapping("demo") public Respons.. 2024. 10. 13.
@Email 어노테이션을 컬렉션 프레임워크에 적용하기 @Email 어노테이션을 처리하는 EmailValidator 클래스는 AbstractEmailValidator 클래스를 상속받고 있습니다. 이 클래스는 ConstraintValidator 인터페이스를 구현하고 있습니다. AbstractEmailValidator가 구현하고 있는 인터페이스의 타겟은 CharSequence 즉, 단일 대상에 한해서만 검증을 수행하고 있습니다. 따라서 이메일 검증을 수행해야할 대상이 다수일 경우, 이메일 폼 검증을 수행해야 하지만, @Email 어노테이션을 사용하지 못하는 문제가 발생합니다. 이럴 때에는 별도의 Validator 클래스를 생성하면 됩니다. 해당 Validator가 수행하는 역할은 Collection에 저장되어 있는 각 CharSequence에 대해 기존의 Ema.. 2022. 10. 29.
AWS SES와 Thymeleaf를 사용하여 이메일 보내기 최근 구독 만료 일자가 얼마 남지 않은 사용자를 대상으로 구독기간 만료 예정 안내 메일을 보내야 했습니다. 한국에는 관련 법률이 있는지 잘 모르지만, 미국 특정 주에서는 관련 법률이 있다는 것을 확인했습니다. 2011 California Code :: Business and Professions Code :: DIVISION 7. GENERAL BUSINESS REGULATIONS [16000 - 18001] :: ARTICLE Disclaimer: These codes may not be the most recent version. California may have more current or accurate information. We make no warranties or guarantees ab.. 2022. 10. 29.
messages.properties 숫자 대신 문자 인덱스 사용하기 국제화를 진행할 때 messages.properties는 빼놓을 수 없다. 로케일 설정에 따라 같은 코드에 다른 메세지를 보여줄 수 있다는 점에서 굉장히 훌륭하지만, 메세지를 관리할 때 한 가지 문제가 있었다. # messages.properties test.age=나는 {0}살입니다. test.introduce=제 이름은 {0}이고, 나이는 {1}살입니다. 인덱스가 숫자로 되어 있어 messages.properties만 봤을 때 어떤 값이 들어가야 하는지 문맥을 보고 유추를 해야하는 점이다. 그나마 파라미터가 1개일 때는 괜찮은데, 2개 이상으로 넘어가면 알아보기가 너무 어렵다. 지금은 한국어로 예시를 작성해서 알아보기가 편하지만, 한국어 이외의 다른 외국어를 사용할 때는 어떤 값이 들어가는지 몰라 앞.. 2022. 6. 27.