개발
[Lombok] @AllArgsConstructor / @NoArgsConstructor
kyunge_ev
2023. 4. 27. 23:32
멋쟁이사자처럼 백엔드 스쿨 2기를 교육 받으면서 만들었던 프로젝트를 리팩토링 하며,
불필요한 코드를 공부하고 프로젝트를 정리해보기로 했다.
제일 먼저 눈에 띈 한 클래스 내 같이 작성된 @AllArgsConstructor / @NoArgsConstructor
해당 애노테이션이 어떤 용도인지를 파악하며 코드를 수정해보기로 했다.
@AllArgsConstructor
클래스의 모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성한다.
고로 클래스의 모든 필드를 한 번에 초기화할 수 있다.
하지만 파라미터를 꼭 다 받아야하는 경우가 아니라면 이 생성자는 굳이 필요가 없을 수 있다.
@NoArgsConstructor
파라미터가 없는 기본 생성자를 자동으로 생성한다.
이 애노테이션을 사용하면, 클래스에 명시적으로 선언된 생성자가 없더라도 인스턴스를 생성할 수 있다.
프로젝트에선 회원가입 클래스에 사용되었는데
필드로 사용된 username / password는 파라미터로 꼭 넘어와야하는 것들이기 때문에
기본 생성자는 빼고 AllArgsConstructor를 사용하기로 했다.
롬복을 사용하여 코드를 줄이고 코드 구현을 애노테이션으로 간단히 할 수 있지만
어떤 기능을 하고, 꼭 필요한 기능이 맞는지를 잘 생각해보고 적절히 사용해보자.