springboot 4

[Spring] @NotNull, @NotEmpty, @NotBlank, @Null 의 차이점

Springboot의 어노테이션을 이용한 validation을 하는 방법에 대해 알아보자. API의 parameter에 따라 별도의 오류 메시지와 조건이 필요하고, 이런 경우 쉽게 사용할 수 있는 것이 @NotNull, @NotEmpty, @NotBlank, @Null 이다. 위의 4가지 annotation은 Bean Validation에서 제공하는 표준 Validation 으로 사용하는 방법은 유사하지만 잘못 사용하면 완전히 다른 결과를 초래할 수 있기 때문에 차이를 알아두어야한다. public class MemberLoginRequestDto { @NotNull(message = "이름은 Null 일 수 없습니다.") @Size(min = 1, max = 10, message = "이름은 1-10자 ..

Server 2022.08.02

[Spring] Spring boot와 JPA 활용 - 애플리케이션 구현 준비, 회원 도메인 개발

애플리케이션 아키텍처는 단방향으로 가져가되, Controller가 Repository에 접근할 수 있는 유연한 설계를 가져간다. 계층형 구조를 사용한다. - controller, web: 웹 계층 - service: 비지니스 로직, 트랜잭션 처리 - repository: JPA를 직접 사용하는 계층, 엔티티 매니저 사용 - domain: 엔티티가 모여 있는 계층, 모든 계층에서 사용 회원 도메인 개발 회원 리포지토리 개발 @Repository 는 @Component 로 컴포넌트 스캔의 대상이 되어서 스프링빈으로 자동 등록된다. @PersistentContext는 JPA의 entitymanager로 스프링이 entitymanager로 주입받을 수 있다. 멤버를 가입시키는 save() 메서드는 영속성컨텍스트..

Server 2022.06.19

[Spring] Spring boot와 JPA 활용 - 도메인 분석 설계

@Embedded JPA 에서는 임베디드 타입(embedded type)이란 것이 존재하며, 새로운 값 타입을 직접 정의해서 사용할 수 있다. 직접 정의한 임베디드 타입도 int, string 처럼 값 타입이다. 평범한 회원 엔티티에서 "회원 엔티티는 이름, 주소 도시, 주소 번지, 주소 우편 번호, 주문상품들 을 가진다." 보다는 "회원 엔티티는 이름, 주소, 주문상품들을 가진다." 라고 말 할 때 더 응집력이 높은 명확한 코드를 작성할 수 있다. 임베디드 타입을 사용하는 방법은 @Embeddable 값 타입을 정의하는 곳에 표시한다. @Embedded 값 타입을 사용하는 곳에 표시한다. - 임베디드 타입은 기본 생성자가 필수이다. public한 생성자를 사용하도록 유도하기 위해 기본 생성자는 JPA가..

Server 2022.06.05