LomBok 주의사항

UkJJang·2021년 9월 7일
0

https://kwonnam.pe.kr/wiki/java/lombok/pitfall 님의 게시글을 보며 다른 예제를 생각해 보면서 학습하였습니다.

LomBok에서 사용하면 좋지 않은 어노테이션

  • AllArgsConstructor / RequiredArgsConstructor
	@AllArgsConstructor
	public class User {
    		private String password;
        	private String Id;
       	}

이러한 클래스가 있을 경우 다른 개발자분이 Id를 먼저 받고 싶어서

	@AllArgsConstructor
	public class User {
        	private String Id;
   		private String password;
       	}

이렇게 변경했다고 생각해보면 생성자를 직접 작성해 주지도 않았고 받는 타입도 똑같기 때문에 기존의 코드에서는 오류가 나지 않고 실행이 잘 되는 모습을 보여준다. 하지만 이미 들어오는 값은 반대로 들어오기 때문에 Id에 비밀번호가 들어가고 비밀번호 값에 Id가 들어가게 될 것이다.

사용하면 편리하지만 그만큼 큰 오류가 생길 수도 있기 때문에 사용하지 않는 것이 좋다. @Data 어노테이션 안에도 생성자가 들어가 있기 때문에 사용하지 말아야 한다.

개선 방법

	public class User {
        	private String Id;
   		private String password;
        
        	@Builder
        	public User(String Id, String password) {
            		this.Id = Id;
            		this.password = password;
            }
       	}

생성자를 직접 생성하고 빌더패턴을 이용하면 파라미터를 순서별로 생성하는게 아닌 이름으로 값을 넣을 수 있기 때문에 리팩토링에도 유연하게 대처할 수 있다.

하지만 @Builder 어노테이션도 AllArgsConstructor 를 가지고 있기 때문에 클래스에 붙이는 것 보다 직접 만든 생성자나 static 객체 생성 메소드에 붙이는 것을 권장한다.

실무에서 롬복 사용

  • 실무에서는 @Getter / @Setter / @ToString 정도로만 사용을 하는 것을 권장한다.
  • 다른 것들의 사용은 자제하고 사용할 일이 있으면 보수적으로 사용을 해야한다.
profile
꾸준하게 성실하게

0개의 댓글