KSCOLD LogoKSCOLD
Blog
Feed
Product
Admin Night
Vault
Guestbook
Info

Vault 목록

어노테이션(Annotation)

연결된 노트와 함께 읽기

어노테이션(Annotation)

2024년 2월 6일
  • 자바 어노테이션(Java Annotation)은 자바 소스 코드에 추가하여 사용할 수 있는 메타데이터(객체 생성 위치)의 일종이다.

  • 보통 @ 기호를 앞에 붙여서 사용한다.

  • JDK 1.5 버전 이상에서 사용 가능하다. 자바 애너테이션은 클래스(Class) 파일에 임베디드되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동한다.

  • 어노테이션은 주석이라는 의미를 가진다.

어노테이션의 용도

  • 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공

  • 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공

  • 실행시(런타임시)특정 기능을 실행하도록 정보를 제공

![Pasted image 20231012205519.png](Pasted image 20231012205519.png)

위의 그림은 과거의 파일 관리 방법이었다.

자바 코드와 관련 설정 파일을 따로 저장하고, "ver @.@"로 구분하여 관리했다.

위와 같이 관리를 하는데 두 가지의 어려움이 있었다.

  1. 사람들이 자바 코드는 변경하는데 설정 파일을 업데이트 하지 않는 어려움
  2. 설정과 코드가 분리되어있어, 개발에 대한 어려움

그래서 다음과 같은 관리방법을 채택하게 되었다.

![Pasted image 20231012205605.png](Pasted image 20231012205605.png)

이렇게 어노테이션을 통해 하나의 파일에서 코드와 설정을 관리할 수가 있게 되었다.

어노테이션의 종류

  • 표준(내장) 어노테이션 : 자바가 기본적으로 제공해주는 어노테이션
  • 메타 어노테이션 : 어노테이션을 위한 어노테이션
  • 사용자정의 어노테이션 : 사용자가 직접 정의하는 어노테이션

표준 어노테이션

표준 어노테이션(메타 어노테이션 제외)의 종류는 다음과 같다.

  1. @Override
  2. @Deprecated
  3. @SuppressWarnings

@Deprecated

해당 메서드(Method)가 더 이상 사용되지 않음을 표시합니다.

만약 사용할 경우 컴파일 경고를 발생 키십니다.

@SuppressWarnings

선언한 곳의 컴파일 경고를 무시하도록 합니다.

@SafeVarargs

Java7 부터 지원하며, 제너릭 같은 가변인자의 매개변수를 사용할 때의 경고를 무시합니다.

@FunctionalInterface

Java8 부터 지원하며, 함수형 인터페이스를 지정하는 어노테이션입니다.

만약 메서드가 존재하지 않거나, 1개 이상의 메서드(default 메서드 제외)가 존재할 경우 컴파일 오류를 발생 시킵니다.

컨트롤러(Controller)

컨트롤러 클래스에 @Controller 어노테이션을 작성합니다. 해당 어노테이션이 적용된 클래스는 "Controller"임을 나타나고, bean으로 등록되며 해당 클래스가 Controller로 사용됨을 Spring Framework에 알림

스프링에서 자바 파일을 만들고 @Controller를 설정해야 사용할 수 있음
@Controller 어노테이션이 붙은 클래스는 Spring MVC에서 Controller로 인식

@FunctionalInterface

함수형 인터페이스 선언

@ResponseBody

반환 값을 특정 값으로 return StringConverter

Synapse Map Insight