Annotation은 메타데이터의 일종으로, 주로 소스 코드에서 클래스, 메서드, 필드 등에 추가적인 정보를 제공하기 위해 사용됩니다. 주석처럼 코드 실행에 직접적인 영향을 주지 않지만, 컴파일러나 런타임에 의해 해석되어 특정 동작을 수행할 수 있게 합니다.
Annotation은 주로 다음과 같은 역할을 합니다:
- 컴파일러 지시: 코드 작성 시 컴파일러에게 특정 경고를 무시하게 하거나, 코드에 오류가 있는지 검사하도록 지시할 수 있습니다.
- 런타임 처리: 런타임에 리플렉션을 통해 Annotation 정보를 읽어 동작을 제어할 수 있습니다.
- 코드 문서화: 코드에 대한 메타정보를 추가하여, 코드가 어떤 역할을 하는지 명확히 할 수 있습니다.
주요 Annotation 예시:
@Override:
- 메서드 위에 사용되며, 부모 클래스의 메서드를 오버라이드할 때 사용합니다.
- 컴파일러가 메서드 시그니처가 정확히 맞는지 확인하도록 합니다.
@Deprecated:
- 해당 메서드나 클래스가 더 이상 사용되지 않음을 알리기 위해 사용합니다.
- 이 Annotation이 붙은 요소를 사용하면 컴파일 경고가 발생합니다.
@SpringBootApplication:
- Spring Boot에서 사용되며, 주로 메인 클래스에 붙습니다.
- @Configuration, @EnableAutoConfiguration, @ComponentScan을 합친 복합 Annotation입니다.
@RequestMapping:
- Spring MVC에서 사용되며, 특정 URL 경로에 대해 컨트롤러의 메서드와 매핑할 때 사용됩니다.
- GET, POST 등 HTTP 메서드와 URL 경로를 설정할 수 있습니다.
'기술면접 준비' 카테고리의 다른 글
N+1 문제의 발생 이유와 해결 방법에 대해 설명해주실 수 있을까요? 해결 방법은 3가지 이상 (0) | 2024.08.20 |
---|---|
Spring Security의 구조와 JWT 발급 과정에 대해 설명해주실 수 있을까요? (0) | 2024.08.20 |
MVC 모델이란 무엇인지 설명해주실 수 있을까요? (0) | 2024.08.13 |
DI와 IoC에 대해 아는 만큼 설명해주실 수 있을까요? (0) | 2024.08.13 |
Java Map의 내부 구현은 어떻게 이루어져 있을지 추측해보실 수 있을까요? (0) | 2024.08.13 |