요즘 프로젝트 리팩토링을 하면서, DTO에 작성하는 여러개의 lombok 어노테이션의 사용 이유를 정확히 알지 못하고 사용하는 것 같아서 하나하나 고찰(?) 해보기로 했다. 일단, DTO는 Data Transfer Object로, REST API 작성 시에 엔티티 대신에 DTO를 사용하여 컨트롤러에서 데이터를 주고받는 용도로 사용한다. DTO를 사용하면 엔티티에 변질을 막을 수 있고, 로직에 맞춰 필요한 필드만 주고받을 수 있어 DTO를 사용하는 것이 좋다. 컨트롤러에서 DTO를 주고받기 때문에 JSON 직렬화와 역직렬화가 일어난다. - 직렬화(serialization) : Java Object 가 JSON으로 변환되는 것으로, ResponseBody를 사용할 때 일어난다. (서버 -> 클라이언트) - ..
예전 프로젝트 리팩토링을 진행하다가 문득 궁금한 것들이 생겼다. JPA를 사용하면서 Entity, DTO 클래스에 꼭 여러가지 lombok 어노테이션을 달아왔었다. 예를 들어, @Builder, @NoArgsConstructor, @AllArgsConstructor, @Getter 등... 그런데 어느 순간부터 이 어노테이션이 왜 필요한지 어떻게 쓰이는지를 잊고 습관적으로 갖다 붙이고 있는 것 같았다. 알아도 정확히 알고 있는 듯한 느낌이 아니었다. 그래서 이에 대해 많이 검색해보고 알아보았다. 일단 Entity 클래스에는 @Entity 를 붙여야한다. 난 항상 이렇게 달아왔다. @Entity @Builder @AllArgsConstructor @NoArgsConstructor(access = Acces..