[자바] - 애너테이션 정리

yeom yaloo·2023년 12월 11일
0

FISA

목록 보기
9/61
post-thumbnail

애너테이션 정리

[lombok]

1. @NoArgsConstructor

  • 기본 생성자 생성
  • public People(){}

2. @AllArgsConstructor

  • 모든 멤버 변수 자동 초기화

3. @Getter

  • 모든 멤버 변수값을 반환하는 변수당 1:1로 데이터를 가져올 때 사용하는 메서드
  • 멤버 변수가 직접 접근하지 않고 해당 getXxx() 메서드를 통해서 변수의 데이터 값을 받을 수 있게 해주어 정보 은닉에 탁월하다.

4. @Setter

  • 모든 멤버 변수값을 새로운 데이터로 초기화하는 변수당 1:1로 데이터 변경을 진행하는 메서드
  • 멤버 변수의 값에 직접 접근은 하지 않지만 해당 메서드를 사용해서 데이터 변경을 하면 별로 좋지 않다고 한다. 그래서 해당 애너테이션은 현업에서는 자주 사용되지 않음을 주의하자.

5. @ToString

  • 모든 멤버 변수값을 결합해서 하나의 문자열로 반환해주는 재정의 메서드

6. @RequiredArgsConstructor

  • 선별해서 원하는 멤버 변수만 초기화할 수 있게 해주는 동적 parameter 생성자를 생성

7. @NonNull

  • @RequiredArgsConstructor와 매핑되어 선언된 멤버 변수만 초기화할 수 있게 해주는 생성자를 생성할 때 사용
  • @NotNull과는 다른 애너테이션으로 @NonNull을 사용하는 것만으로는 어떤 기능도 동작하지 않는다.
  • @NonNull은 @RequiredArgsConstructor와 매핑하여 사용하기 때문에 둘을 같이 사용해주어야 한다.

8. @Builder

  • 생성자를 builder라는 이름으로 메서드를 동적으로 생성해준다.

9. @Slf4j

  • log 기록을 할수 있게 해주는 추상화된 기능을 제공해주는 애너테이션

[@NonNull과 @RequiredArgsConstructor]

1. 사용 예시 코드

@Getter
@AllArgsConstructor
@NoArgsConstructor
@ToString
@RequiredArgsConstructor
public class People {

	@NonNull
	private String name;
	private int age;

	//단위 Test - 단순 실행을 위한 개발자용 annotation
	@Test
	public void test() {
		
		People p = new People();
		
		People p2 = new People("t", 1);
        
        //@RequiredArgsConstructor에 의해서 해당 작업이 가능
		People p3 = new People("t");
		
	}
}
  • 기존의 @AllArgsConstructor를 사용하면 @RequiredArgsConstructor 를 사용할 때 오류가 난다.
  • 그러나 @NonNull private String name;를 사용하게 되면 @RequiredArgsConstructor를 추가적으로 달아줘도 문제가 생기지 않는다.
  • 이는 name이라는 필드를 꼭 초기화하고자 할 때 사용하는 애너테이션으로 이 작업을 진행하면 필요한 생성자를 만들어주는 @RequiredArgsConstructor를 이용해서 유연하게 작업이 가능해진다.
profile
즐겁고 괴로운 개발😎

0개의 댓글