TravelMate-KU / TravelMate-Server

0 stars 1 forks source link

[JAVA] Record와 DTO #22

Open jaeuk520 opened 4 months ago

jaeuk520 commented 4 months ago

Record

Feature

보일러 플레이트 코드를 줄일 수 있다!

보일러 플레이트 코드

  • 최소한의 변경으로 여러 곳에서 재사용되면서 반복적으로 비슷한 형태를 가지고 있는 코드 (ex. getter, setter, equals, hashCode, toString 등)


Record를 Entity에는 적용하지 못하는 이유

즉 프록시를 생성하기 위해서 entity는 불변이면 안 된다!


JPA Entity의 기본 생성자가 필수인 이유:

Reflection API:


Record를 DTO에 적용해보자

record는 한 번 값이 정해지고 나면 setter를 통해 값을 변경할 수 없는데, 자바 내부에서 데이터 가공 시 중간에 변질될 우려가 없다!



출처: https://velog.io/@power0080/java%EC%9E%90%EB%B0%94-record%EB%A5%BC-entity%EB%A1%9C#1-2-2-record-%ED%8A%B9%EC%A7%95

david-parkk commented 4 months ago
public record ApiResponse<T>(Boolean isSuccess, int code, String message,
                             @JsonProperty(value = "response") T response,
                             @JsonProperty(value = "errorResponse") ErrorResponse errorResponse) {
}

record를 활용해서 response 를 만들어도 좋을것 같네요