항해99

항해99 23일차 TIL1 - 생성자를 직접 만드는 것과 Lombok을 사용해 만드는 것의 차이

자몽포도 2022. 12. 30. 18:07

오늘 주제는 롬복 애노테이션 사용 금지 질문 글을 보고 작성하게 되었습니다. 다소 자극적인 제목인데 요점은 롬복 사용 시 주의해서 사용하자는 의미같습니다. 

 

생성자를 직접 만드는 것과 Lombok을 사용해 만드는 것의 차이

 

1. 생성자 직접 생성

생성자를 직접만들 때 단점이라고 한다면 필드가 추가될 때 생성자를 변경해야할 가능성이 생기는 것이다.

 

2. @RequiredArgsContructor 사용

 

1. 컴파일되면 생성자 파라미터에 final이 붙는다.

파라미터에 final을 붙였다는 것은 메소드 파라미터를 메소드 내부에서 변경할 수 없음을 의미한다.

 

2. 필드 순서에 따라 생성자 메소드가 생성된다.

어떤 개발자가 필드의 순서를 변경했다고 해보자. 필드 타입이 다르다면 컴파일 과정에서 오류가 나겠지만 타입이 동일하다면 컴파일 과정에서 심각한 문제를 해결할 수 없다.

 

필드 위치 수정 전

필드 위치 수정 후

가격과 수량이 교환되면서 큰 문제가 일어날 수도 있을 것이다.