본문 바로가기
백엔드/스프링+boot

롬복 + Dto 상세

by 임지혁코딩 2023. 12. 27.

롬복이 무엇인가 ? 

보일러 플레이트 코드들을 자동으로 생성해주는 필수적인 library 

 

build.gradle의 dependecies에 추가 . 설정이 필수적으로 같이 와야 됨. 

앞서 작성했던 라인에서, dependices에 추가 혹은 spring.io에서 세팅 완료된 파일을 다운로드 . 

 

setter , getter을

@Setter

@Getter로 class앞에 생성. -> 추가적인 메소드 작성이 필요없이,  set,get등을 사용할 수 있다.  

@ToString 

-> class devdto를 그대로 sout으로 출력했을때, hash 코드 값이 출력되는데

이를 붙이면, 이에 맞는 시간과 , age등 형식에 맞추어서 출력된다. 

 

생성자  

@NoArgsConstructor -> argument가 없는 생성자

All시 모든, Required는 필요한 값만 담은 constructor 

 

3가지 constructor 중 상황에 맞는 어노테이션을 달아서 , 생성한다. 

 

@Nonnull이런건 당연히 가능하고. 

 

@Data  

-> 마법의 annotation . tostring,getter,setter,constructor,equal,hashcode들 모두를 담은 어노테이션

<그렇다고 무분별한 사용은 지양하자. 이유는 tostring을 원하지 않게 사용하는 경우가 있다. 특히 개인정보를 담을때 찍힘 방지! 아마 금융권에선 못 쓰지 않을까..  >

 

기본적으론 getter,setter,tostring,constructor를 사용하는것을 주로 하자 . (금융권 실무 손에 익히기 )

 

@Builder 

-> setter를 자주 사용해야 되는 경우에, builder().firstname("~")~~~를 사용해서 

직접 setter를 더이상 사용하지 않게 방지할 수 있다. <안전하다> 

 

 

+@nonnull일수도 있다. 

 

@S1f4j 

 log를 활용하여 logger를 찍어줄 수 있다. 예전 오픈채팅방에서 sout 보단 log를 찍어야 된다는 것을

배웠었다. 

초 간단하게 log.info(getFirstname()) //class 내부에서 메소드 구현 후 예시 

등이다. 

 

@UtilityClass 

public static void printLog() { sout }  -> 유틸리티한 한 도메인에서 기능을 형성하는 anotation 

더이상 상속받을 수 없다. final calss로 생성되어지는 등 기능이 있다. 

 

유용하고 빠르게 lombok을 사용하자! 

 

마제소바 먹다 생각난 질문 

DTO랑 ENTITY는 뭐가 다를까? 

 

DTO는 데이터의 전송을 위해 사용되는 객체로 , 이동을 중심으로 설계된다 .

하지만 ENTITY는 DBMS와의 상호작용을 위해 설계되는 도메인 모델이다! 

 

 

Dto의 예시 . dto라는 패키지안에 , createdveloperclass안에서 request,response를 관리한다.

 

 

 

Dto의 response는 주로, builder를 사용하여 devleoper객체를 통해 request가 들어옴과 동시에 

이를 service단에서 repository를 활용해서 save. 그후 Response.fromEntity(devloper)로 response를 생성한다. 

즉 -> request,save,response 생성까지 1 transaction으로 한번에 발생한다. 

'백엔드 > 스프링+boot' 카테고리의 다른 글

H2 database , DB활용 / Entity 추가 / Repository,service 간단 복습  (0) 2023.12.27
Controller , componet 어노테이션. CLASS, 컴포넌트, 모듈 .  (0) 2023.12.27
테스트  (0) 2023.12.25
Controller  (0) 2023.12.21
Service  (0) 2023.12.21