728x90
Setter


- setter를 사용하는 대신, 명시적인 이름의 가진 함수를 사용하는 것이 훨씬 clean 하다. -> setter를 열어둔다는 것은, 어디서든 이 setter를 호출할 수 있다는 것을 의미하기 때문이다.
- public getter는 필요하지만, setter는 private 하게 만드는 것이 가장 좋다.
- private 하게 setter를 만드는 방법
- backing property 사용하기
- custom setter 이용하기
- 위 2가지 방법 모두 프로퍼티가 많으면 번거로우므로, setter를 열어두되 사용하지 않도록 상호 간의 컨벤션을 지키도록 하는 것도 좋은 방법이다.
생성자 안의 프로퍼티와 클래스 body안의 프로퍼티

- 반드시 primary constructor 안에 모든 프로퍼티를 넣을 필요는 없다.
- 모든 프로퍼티를 생성자에 넣거나, 명확한 기준을 가지고 분리를 시키거나 하면 된다.
JPA와 Data 클래스
- Entity는 data class를 피하는 것이 좋다.
- equals, hashCode, toString 모두 JPA Entity와는 100% 어울리지 않는다.
- 특히 toString 같은 경우 내부적으로 순환 참조를 초래할 수도 있다.
TIP : Entity가 생성되는 로직을 찾고 싶다면, constructor 지시어를 명시적으로 작성하고 추적하면 된다.

728x90
'실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기' 카테고리의 다른 글
| Ch02. Java 서버를 Kotlin 서버로 리팩토링하자 - 서비스 계층 Kotlin으로 변경하기 (0) | 2022.11.01 |
|---|---|
| Ch02. Java 서버를 Kotlin 서버로 리팩토링하자 - Repository를 Kotlin으로 변경하기 (0) | 2022.11.01 |
| Ch02. Java 서버를 Kotlin 서버로 리팩토링하자 - Domain 계층 리펙토링하기 (0) | 2022.11.01 |
| Ch01. 도서관리 애플리케이션 리팩토링 준비하기 - JUnit5으로 Spring Boot 테스트 하기 (0) | 2022.10.29 |
| Ch01. 도서관리 애플리케이션 리팩토링 준비하기 - JUnit5 사용하기 (0) | 2022.10.29 |