Java는 어노테이션(Annotation)이라는 프로그램의 코드에 메타데이터를 추가하는 특별한 형태의 주석을 제공한다.
이 단어의 사전적 의미도 말 그대로 '주석'이다.
자바에서 주석은 // 로 시작하는 거 아니었나요?
둘 다 주석이 맞다. 둘의 차이점은,
// 로 시작하는 주석(Comment)은 개발자에게 코드 설명 등 정보를 제공하고,
@ 로 시작하는 어노테이션(Annotation)은 프로그램, 컴파일러 등 에게 추가 정보를 제공한다.
주로 사용되는 표준 어노테이션 중 몇 가지를 살펴보자면,
@Override
메서드 선언부에 작성해 해당 메서드가 오버라이드되었음을 알리는 어노테이션이다.
컴파일러는 @Override가 붙은 메서드의 오버라이드가 올바르게 이루어졌는지를 검사하고, 잘못된 부분(리턴 타입이 다르거나, 매개변수가 다르거나)이 있으면 경고한다.
@Deprecated
이 어노테이션은 코드에서 클래스, 메서드 등이 기능상, 보안상 이유로 더 이상 권장되지 않거나 사용되지 않음을 다른 개발자에게 나타낼 때 주로 사용한다.
만약 @Deprecated가 붙은 객체를 사용하려 하면, IDE에서 해당 코드에 취소선을 적용시켜 사용을 권장하지 않음을 알려준다.
@SuppressWarnings
이 어노테이션이 붙은 메서드에서는 컴파일러의 경고(주로 제네릭 코드를 작성할 때)를 의도적으로 무시하고 코드를 작성할 수 있다.
Spring에서의 Annotation
Spring 프레임워크를 사용할 때도 의존성 주입 등 여러 기능을 위해 어노테이션을 사용하는데, 이 중 몇 가지를 살펴보면 다음과 같다.
@Controller
Spring의 Controller를 의미한다. Spring MVC에서 Controller클래스에 쓰인다.
@RestController
RESTful 웹 서비스의 엔드포인트를 처리하는 컨트롤러 클래스에 쓰인다.
@RequestMapping
요청 URL과 컨트롤러의 메서드를 매핑하기 위해 사용한다.
간결하게 사용하기 위해 @GetMapping, @PostMapping를 메서드에 매핑해 사용할 수도 있다.
GET /ping 요청에 "Server is Listening!"이라고 응답하는 간단한 코드 예시
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SpringController {
@GetMapping("/ping")
public String pong() {
return "Server is Listening!";
}
}
'Software Development > Java' 카테고리의 다른 글
[Java] Java 21의 새로운 기능 톺아보기 (0) | 2024.04.17 |
---|---|
[Java] 객체지향 생활 체조 원칙 - 2 (0) | 2023.10.19 |
[Java] 객체지향 생활 체조 원칙 - 1 (2) | 2023.10.18 |
[JAVA] 객체지향과 자바 (0) | 2023.09.12 |
[JAVA] 메소드 오버로딩 & 오버라이딩 (0) | 2023.09.11 |