diff --git a/plan/4.3. study_plan-week-3-summary.md b/plan/4.3. study_plan-week-3-summary.md index f9f35e9..8771a72 100644 --- a/plan/4.3. study_plan-week-3-summary.md +++ b/plan/4.3. study_plan-week-3-summary.md @@ -8,11 +8,12 @@ - **3.1.4.** ManyToOne, OneToMany 사용 - **3.2.** Spring Boot 테스트 코드 작성 - **3.2.1.** 단위 테스트 (Unit Test) 작성 + - **3.2.1.1.** 테스트 관점에서의 Request, Response DTO 클래스 작성의 필요성 - **3.2.2.** 통합 테스트 (Integration Test) 작성 - **3.2.3.** MockMvc 사용 - **3.3.** RESTful API 설계 및 구현 - **3.3.1.** RESTful API 기본 원칙 - - **3.3.2.** Request, Response DTO 클래스 작성 + - **3.3.1.1.** 데이터 전송 관점에서의 Request, Response DTO 클래스 작성 - **3.3.3.** API 예외 처리 - **3.3.4.** Spring Validation 사용 - **3.3.5.** Converter 사용 diff --git a/spring-boot/src/main/java/com/mpc/springboot/member/domain/entity/Member.java b/spring-boot/src/main/java/com/mpc/springboot/member/domain/entity/Member.java index d8e9c78..16cf9f1 100644 --- a/spring-boot/src/main/java/com/mpc/springboot/member/domain/entity/Member.java +++ b/spring-boot/src/main/java/com/mpc/springboot/member/domain/entity/Member.java @@ -27,6 +27,15 @@ public class Member { @Embedded private AuditFields auditFields = new AuditFields(); + + private Member(MemberCode code, MemberName name) { + this.code = code; + this.name = name; + } + + public static Member of(MemberCode code, MemberName name) { + return new Member(code, name); + } } diff --git a/spring-boot/src/main/java/com/mpc/springboot/member/domain/vo/MemberCode.java b/spring-boot/src/main/java/com/mpc/springboot/member/domain/vo/MemberCode.java index 41d176d..ddfab24 100644 --- a/spring-boot/src/main/java/com/mpc/springboot/member/domain/vo/MemberCode.java +++ b/spring-boot/src/main/java/com/mpc/springboot/member/domain/vo/MemberCode.java @@ -7,4 +7,8 @@ @RequiredArgsConstructor public class MemberCode { private final String value; + + public static MemberCode of(String value) { + return new MemberCode(value); + } } diff --git a/spring-boot/src/main/java/com/mpc/springboot/member/domain/vo/MemberName.java b/spring-boot/src/main/java/com/mpc/springboot/member/domain/vo/MemberName.java index 6a0775a..7d7f36c 100644 --- a/spring-boot/src/main/java/com/mpc/springboot/member/domain/vo/MemberName.java +++ b/spring-boot/src/main/java/com/mpc/springboot/member/domain/vo/MemberName.java @@ -16,4 +16,13 @@ public class MemberName { public String getFullName() { return firstName + " " + lastName; } + + private MemberName(String firstName, String lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + + public static MemberName of(String firstName, String lastName) { + return new MemberName(firstName, lastName); + } } diff --git a/spring-boot/src/main/java/com/mpc/springboot/shared/domain/AuditFields.java b/spring-boot/src/main/java/com/mpc/springboot/shared/domain/AuditFields.java index db76ac6..0c0b350 100644 --- a/spring-boot/src/main/java/com/mpc/springboot/shared/domain/AuditFields.java +++ b/spring-boot/src/main/java/com/mpc/springboot/shared/domain/AuditFields.java @@ -3,8 +3,7 @@ import jakarta.persistence.Column; import jakarta.persistence.Embeddable; -import lombok.Getter; -import lombok.NoArgsConstructor; +import lombok.*; import org.springframework.data.annotation.CreatedBy; import org.springframework.data.annotation.LastModifiedBy; import org.springframework.data.annotation.CreatedDate;