-
Notifications
You must be signed in to change notification settings - Fork 7
tech diary 2022.07.05
Philz edited this page Jul 21, 2022
·
1 revision
-
@Entity
- 맨 위 (가장 특징적)- 바로 다음에
@Table(name = “”)
- 바로 다음에
- Lombok 생성자 - NoArgs만 사용
- Entity객체는 Protected 설정 추가해주기
@NoArgsConstructor(acess = AccessLevel.PROTECTED)
- Entity객체는 Protected 설정 추가해주기
-
@Transactional
class 선언부에서readOnly = true
옵션 주기
- controller test에서 mocking시 argument를 any로 줘도 될까?
- 단순히 “게시글 생성” 기능의 요청, 응답을 올바르게 주고받을 수 있는지 검증하는 case에서는 Dto의 내용이 중요하지 않음. any도 괜찮다.
- 처음 작성한 Controller Test는 사실 성공이 아니었따?!
- controller의 parameter 선언부에
@RequestBody
가 빠져있었음
- controller의 parameter 선언부에
윤선용…당신 정체가 뭐야
assertThat(savedDiscussion).usingRecursiveComparison()
.ignoringFields("id")
.isEqualTo(new Discussion(title, "내용"));
-
usingRecursiveComparison()
: 객체의 field를 모두 순회하며 조건 비교 -
ignoringFields(String... fieldNamesToIgnore)
: 특정 field들만 제외
- domain 내부에서 VO를 통해 VS 요청 validation, DB column(인프라)을 통해
- 비즈니스 로직 상 개발자가 직접 입력한 값으로 Domain을 생성할 일이 없다면 인프라에게 맡겨도 되지 않을까?
- 반대측: 사람을 믿어? 코드를 믿어..! (생성자 호출할려면 얼마든지 할 수 있다)
- 검증 level에 따라 VO를 만들고 안만들고 할건지?
- 포키 뇌피셜: 인프라에게 맡기기로 한거라면 그 검증은 그대로 두고, 새롭게 필요해진 검증만 VO에서 담당하게 해주면 되지 않을까?
- 비즈니스 로직 상 개발자가 직접 입력한 값으로 Domain을 생성할 일이 없다면 인프라에게 맡겨도 되지 않을까?
- preUpdate method 작성 시 views와 같은 column도 변경감지되어 updatedAt이 수정되는 문제
- preUpdate로 설정하지 말고 그냥 method로 만들어서 수동으로 해주자