본문 바로가기

전체 글87

@Pattern: message 으로 클라이언트에게 응답하기(feat. JSON) 배경@NotBlank(message = "비밀번호: 필수 정보입니다.")@Pattern(regexp = "(?=.*[0-9])(?=.*[a-zA-Z])(?=.*\\W)(?=\\S+$).{8,20}" , message = "비밀번호: 8~20자 영문 대소문자, 숫자, 특수문자를 조합하여 작성해야 합니다.")@Size(min = 8, max = 20)private final String password클라이언트로부터 회원가입 데이터가 올바르게 입력 됐는지 @Pattern 으로 필드마다 유효성 검사(@Vaild)를 수행하는 시나리오를 생각하고 구현을 목표로 정했다. 하지만 생각과 다르게 스프링에서 제공되는 기본적인 에러 메시지를 응답하거나 응답 형식 혹은 메시지가 원하는 형식이 전혀 아니었.. 2024. 5. 18.
[Spring] Spring Boot 멀티 모듈 어플리케이션 설정: Gradle, DDD 도메인 주도 설계에서 모듈 구조를 설계할 때에는 각 도메인이나 하위 도메인에 따라 모듈을 구분하는 것이 중요합니다. 예를 들어 블로그 포스트 관리 시스템의 경우, 주요 도메인은 아마도 "포스트(Post)"일 것입니다. 따라서 도메인을 기준으로 모듈 구조를 설계할 수 있습니다.  1. 도메인(Domain)도메인의 사전적 의미는 도메인(domain)이란 단어는 영토, 분야, 영역, 범위를 뜻하는 단어(예를 들어 소유지, 토지 소유권(법률) 등)였으나 인터넷 주소의 의미로 확장되었다. 어떤 전문 분야에 대해 얘기할 때 해당 도메인에 대한 지식이 필요하다와 같이 말하기도 한다.  흔히 프로그래머들에게는 "어플리케이션 내에서 로직들의 정보 영역 혹은 범위" 에 해당한다. 또한 " 소프트웨어로 해결해야할 문제의 영.. 2024. 4. 28.
Spring Boot Junit5 이해하기: @WebMvcTest, @SpringBootTest Spring Boot Junit5 이해하기: @WebMvcTest, @SpringBootTest스프링 부트에서 Junit 라이브러리로 테스트 코드를 작성할 때 @WebMvcTest, @SpringBootTest 어노테이션 두 가지를 가장 많이 사용합니다. 이번 장에서는 @WebMvcTest, @SpringBootTest 두 어노테이션의 차이점에 대해 학습합니다.1. Mock, MockMvcMock실제 객체를 만들기엔 비용과 시간이 많이 들거나 의존성이 길게 걸쳐져 있어 제대로 구현하기 어려울 경우, 가짜 객체를 만들어 사용하는데 이것을 Mock 이라 한다. 따라서 Mock 은 테스트할 때 필요한 실제 객체와 동일한 모의 객체를 만들어 테스트의 효용성을 높이기 위해 사용한다.MockMvcMVC에 관련된 M.. 2024. 4. 13.