[인프런 워밍업 클럽 BE 0기] 1일차 과제
[질문]
어노테이션을 사용하는 이유 (효과) 는 무엇일까?
나만의 어노테이션은 어떻게 만들 수 있을까?
가장 먼저 어노테이션이란?
사전적 의미로는 주석이라는 뜻을 가지고 있으며, 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것으로 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서도 다른 프로그램에 유용한 정보를 제공하는 기능을 한다.
어노테이션을 사용하는 이유 (효과) 는 무엇일까?
어노테이션(Annotation)을 사용하는 이유는 코드작성이 간단해지고 가독성과 개발 생산성이 향상되고 유지보수가 용이 하다는 장점이 있다.
XML을 사용할 때보다 더 간결하고 직관적으로 코드를 작성할 수 있고 공통적인 코드 패턴이나 설정을 재사용할 수 있기 때문에 코드의 중복을 줄일 수 있다.
코드내에 직접 주석 형태로 작성되기 때문에 설정 정보를 한눈에 파악할 수 있어서 가독성이 향상된다.
설정 파일을 따로 작성할 필요가 없어서 개발 생산성이 향상된다. 또한, IDE가 어노테이션을 지원하여 개발자에게 빠르게 코드 작성 및 디버깅을 도와준다.
코드와 함께 관리되기 때문에 설정 정보가 변경될 경우 해당 어노테이션만 수정하면 되기때문에 유지보수가 용이해진다.
어노테이션 프로세서를 사용하면 컴파일러가 오류를 감지할 수 있어서 컴파일 시점에 오류를 발견할 수 있어서 런타임 오류를 방지할 수 있다.
어노테이션은 클래스, 메소드, 필드 등에 메타데이터를 직접 포함할 수 있다. 이는 리플랙션을 사용하여 런타임에 클래스 정보를 쉽게 추출할 수 있게 도와준다.
나만의 어노테이션은 어떻게 만들 수 있을까?
1.@interface를 사용하여 커스텀 어노테이션을 생성
2.메타 어노테이션 추가
@Documented
어노테이션 정보가 javadoc 문서에 포함
@Inherited
어노테이션이 하위 클래스에 상속
@Target (적용대상)
PAKAGE = 패키지 선언 시
TYPE = 타입(클래스, 인터페이스, enum) 선언 시
CONSTRUCTOR = 생성자 선언 시
FILED = enum 상수를 포함한 멤버변수 선언 시
METHOD = 메서드 선언 시
ANNOTATION_TYPE = 어노테이션 타입 선언 시
LOCAL_VARIABLE = 지역변수 선언 시
PARAMETER = 파라미터 선언 시
TYPE_PARAMETER = 파라미터 타입 선언 시
@Retention(유지범위)
RUNTIME = 컴파일 이후에도 참조 가능
CLASS = 클래스를 참조할 때까지 유효
SOURCE 컴파일 이후 어노테이션 정보 소멸
댓글을 작성해보세요.