1) Annotation (코드에 특별한 의미를 부여하거나 , 컴파일러와 런타임에 특정 동작을 트리거하기위해 사용)
- 어노테이션은 특정코드를 사용하는 프로그램에게 정보를 전달
- 주로 @기호로 시작하며 클래스,메소드,변수,매계변수,페키지등에 추가
-- 내장 어노테이션
- @override
메소드가 상위 클래스나 인터페이스의 메소드로를 오버라이드 하고 있음을 표시
- @Deprecated
해당 요소가 더이상 사용안함을 나타냄(사용시 컴파일경고 발생)
- @SuppressWarnings
컴파일러 경고를 억제(사용되지 않는 변수의 경고를 무시)
- 사용자 정의 어노테이션
개발자가 필요에 따라 정의
AOP기술과 특정 메타데이터를 결합해 구현
2) Lombok
- 보일러 플레이트 코드를 줄여주는 라이브러리(가동성 유지보수성 상승)
- 어노테이션을 기반으로 동작
- 컴파일 시점 소스코드를 변환하여 필요 메소드 자동생성
❓보일러 플레이트 코드(Boilerplate code)란?
- getter/setter 메소드, 생성자, toString 메소드 등과 같이 반복적으로 작동되는 코드
-- 주요 Lombok Annotation
- @Getter, @Setter
클래스의 모든 필드에 대한 getter와 setter 메소드를 자동으로 생성
- @toString
객체의 toString() 메소드를 자동 생성
기본적으로 클래스의 모든 필드를 포함(특정 필드를 제외하거나 포멧가능)
- @EqualsAndHashCode
equals()와 hashCode()를 자동 생성
- @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor
기본생성자 생성
모든 필드를 매개변수로 하는 생성자 생성
final 필드만을 매개변수로 하는 생성자 생성
- @Data
@Getter, @Setter, @ToString, @EqualsAndHashCode,@RequiredArgsConstructor를 한꺼번에 적용하는 어노테이션이다.
주로 테스트 용도로 사용
- @Slf4j
클래스에 로그를 남기기 위한 Logger 객체를 자동생성
'내일배움캠프 > TIL' 카테고리의 다른 글
[Spring]_MVC (0) | 2025.01.23 |
---|---|
[Spring]_ Web의 기초 (0) | 2025.01.22 |
[JAVA]_다양한 자료구조 (0) | 2025.01.20 |
[JAVA] 키오스크 트레블 슈팅 Lv6 (0) | 2025.01.20 |
[JAVA] 키오스크 트레블 슈팅 Lv3~Lv4 (0) | 2025.01.20 |