[인프런 워밍업 클럽_0기 BE] 첫번째 과제 - Annotation에 대해서
<과제>
어노테이션을 사용하는 이유 (효과) 는 무엇일까?
나만의 어노테이션은 어떻게 만들 수 있을까?
1. 어노테이션(Annotation) 이란
사전적 의미로는 주석이라는 뜻이지만 컴파일러나 프레임워크, 런타임 시스템에 의해 해석되어 특정한 동작이나 처리를 수행하도록 지시하는 역활
의존성 주입, 트랜잭션 관리, 웹 개발 관련 기능, 유효성 검사 등의 용도로 사용된다
- > 어노테이션의 종류
1.표준 어노테이션 : 자바에서 기본적으로 제공하는 어노테이션
(@Override, @FunctionalInterface 등)
2.메타 어노테이션 : 어노테이션으로 어노테이션을 정의하는데 사용
(@Target, @Documented, @Retention 등)
3.사용자 정의 어노테이션 : 사용자가 직접 정의하여 사용하는 어노테이션
2.사용하는 순서 (나만의 어노테이션은 어떻게 만들수 있을까)
어노테이션을 정의한다.
클래스에 어노테이션을 배치한다
코드가 실행되는 중 Reflection을 이용하여 추가 정보를 획득하여 기능을 실시
(Reflection은 코드가 실행 중에 자신의 구조와 동작을 검사하고, 조사하고, 수정하는 것)
@GetMapping("/main") // post에 /main을 호출하기 위한 용도
public String index(){
return "index"; // 반환값을 설정
}
간단한 예시이지만.. 이런 식으로 코드를 구현한다.
<추가 정리>
3.어노테이션의 장점
-> 코드의 가독성으 높임 (반복적이고 번거로운 작업을 줄임)
-> 컴파일 에러를 감지할 수 있어서 런타임 시 문제를 줄여준다
4.어노테이션의 단점
-> 오버사용이 될 경우 복잡성을 증가시킬 수 있다
-> 남용하면 코드의 유지보수가 어려워짐
-> 잘못 이해하거나 오용할 경우 예기치 않은 동작을 유발할 수 있음
댓글을 작성해보세요.