어노테이션 뜻/사용법/커스텀
자바에서 어노테이션이라는 단어를 많이 들어보셨을 겁니다. 안드로이드, 스프링 부트 등 자바를 사용하는 프레임 워크나 플랫폼에서 많이 사용됩니다.
자바의 어노테이션의 개념과 사용법 및 커스텀 어노테이션을 알아보겠습니다.
어노테이션 이란? 뜻? 왜쓰는가?
아래와 같이 @로 시작하는 것을 어노테이션이라고 합니다.
참고로 어노테이션은 jdk 1.5 버전 이상에서 부터 사용가능합니다.
@override
어노테이션은 메타 데이터로 볼수 있으며, 클래스 파일에 임베디드되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동합니다. 설명이 좀 어렵습니다.
간단히 말하자면 응용 단계에서 계층이 아니라 컴파일러 쪽이라고 생각하시면 되겠습니다. 어노테이션을 커스텀하여 추가한다면, 컴파일러에 정보를 추가하는 것으로 이해하시면 쉬울 것입니다.
어노테이션 기능
- 컴파일러에 코드 문법 에러를 체크하도록 정보 제공
- 개발 툴에서 코드를 자동으로 생성할 수 있는지 정보 제공
- 실행 시 특정 기능을 실행하도록 정보 제공
왜? 사용하나
어노테이션을 번역하면 '주석' 입니다. 코드에 부가적인 설명을 달아 놓는 것 입니다.
다른 코드에서 읽을 수 있기 때문에 반복적으로 처리해야하는 일들을 자동화가 가능합니다.
어노테이션 사용법 / 만들기
어노테이션은 사용하시는 툴들에서 만들어도 되고, 클래스 파일에 아래와 같은 문법으로 만들수 있습니다.
public @interface TestAnnotaion {
String value();
}
그리고 사용은 아래와 같이 하면 되는 것이다.
@TestAnnotation("Test")
public String test(){
return "test_test";
}
어노테이션 예시
스프링 부트에서 많이 사용하는 어노테이션 중에 하나인 @PostMapping을 가져왔습니다.
우리는 이 어노테이션으로 도메인 경로를 지정하여 값을 전달합니다.
@PostMapping("/")
public String main_cls(
retrun "main";
)
@PostMapping 어노테이션은 아래와 같이 생겼습니다.
public @interface PostMapping {
@AliasFor(
annotation = RequestMapping.class
)
String name() default "";
@AliasFor(
annotation = RequestMapping.class
)
String[] value() default {};
@AliasFor(
annotation = RequestMapping.class
)
String[] path() default {};
@AliasFor(
annotation = RequestMapping.class
)
String[] params() default {};
@AliasFor(
annotation = RequestMapping.class
)
String[] headers() default {};
@AliasFor(
annotation = RequestMapping.class
)
String[] consumes() default {};
@AliasFor(
annotation = RequestMapping.class
)
String[] produces() default {};
}
긴글 읽어 주셔서 감사합니다.
더 궁금하신 사항은 댓글로 문의해주시면 빠르게 답변드리겠습니다.
'개발 언어 > 자바 java' 카테고리의 다른 글
자바 [java] this 란?/ 의미 / 사용법 (0) | 2020.04.21 |
---|---|
자바 interface static 사용법 (0) | 2020.04.11 |
[java] 따옴표 제거 하기 (replaceall) (0) | 2020.03.03 |
[java] 문자열 바꾸기 (replace) (0) | 2020.02.18 |
[java] String, int 형 변환 (0) | 2020.02.18 |
댓글