1. 어노테이션은 무슨 일을 하는가?
- 어노테이션은 알려주는 역할을 한다. 직접 만들어서 쓰는 커스텀 어노테이션도 있긴 하지만, 궁극적으론 아무것도 안하고 알려주는 역할을 한다.
2. Lombok 게터와 어노테이션
*Lombok의 필요성
-- 자바의 문제점인 관습적인 코드 ( getter, setter, tosString, hashCode, equals() 등등 자동적으로 작성해야하는 코드들)를 해결해준다.
- 프로젝트 Lombok은 에디터에 자동으로 연결되고 tools를 빌드하여 자바를 향상시키는 자바 라이브러리다.
한 개의 어노테이션으로 getter 나 equals 메소드를 overriding해준다.
- 관용적인 코딩을 쉽게 사용 가능한 어노테이션들로 대체하여 상당히 줄여준다.
- 가독성을 좋게하고, 에러 확률을 줄여준다.
- Null 값을 갖고 있는지 체크하는 @NonNull 이라는 어노테이션도 있다.
- @Getter @Setter private String studentName; (이 방식을 사용하지 않으면 훨씬 길게 써야 함. e.g. public String getStudentName() { return this.studentName;} )
- @Data 를 사용하면 static이 아닌 멤버들과 생성자들의 getter, setter + @ToString, @EqualsAndHashCode, 그리고 @RequiredArgsConstructor 까지 자동으로 생성해준다.
- @Value는 final과 private 필드에 대한 getter를 자동적으로 만든다. 주의할 점은 setter는 만들지 않는다.
3. 서프레스드워닝스 어노테이션을 사용함르써 나타날 수 있는 문제점은?
- 클래스 단위에서 사용할 경우, 예상치 못한 문제가 발생했을 때도 로그가 남지 않아서 보수할 때 힘들 수 있다. 따라서 웬만하면 사용하지 않는게 좋다. 그러나 만약 기능이 매우 단순해서 발생할 문제가 예상되는 메서드라면 사용해도 좋을 것이다.
'멘토링' 카테고리의 다른 글
Queue에 담긴 배열을 뒤집어 보자 (0) | 2022.07.16 |
---|---|
익명 클래스 (0) | 2022.07.07 |
내부 클래스 (0) | 2022.07.07 |
예외 (0) | 2022.06.28 |
자바에서 인터페이스와 abstract 클래스 (0) | 2022.06.28 |