기술면접 준비

Annotation이란 무엇이고 구체적으로 어떤 것이 있는지 예시를 들어 설명해주실 수 있을까요?

Albosa2lol 2024. 8. 20. 19:27

Annotation은 메타데이터의 일종으로, 주로 소스 코드에서 클래스, 메서드, 필드 등에 추가적인 정보를 제공하기 위해 사용됩니다. 주석처럼 코드 실행에 직접적인 영향을 주지 않지만, 컴파일러나 런타임에 의해 해석되어 특정 동작을 수행할 수 있게 합니다.

Annotation은 주로 다음과 같은 역할을 합니다:

  • 컴파일러 지시: 코드 작성 시 컴파일러에게 특정 경고를 무시하게 하거나, 코드에 오류가 있는지 검사하도록 지시할 수 있습니다.
  • 런타임 처리: 런타임에 리플렉션을 통해 Annotation 정보를 읽어 동작을 제어할 수 있습니다.
  • 코드 문서화: 코드에 대한 메타정보를 추가하여, 코드가 어떤 역할을 하는지 명확히 할 수 있습니다.

주요 Annotation 예시:

@Override:

  • 메서드 위에 사용되며, 부모 클래스의 메서드를 오버라이드할 때 사용합니다.
  • 컴파일러가 메서드 시그니처가 정확히 맞는지 확인하도록 합니다.

@Deprecated:

  • 해당 메서드나 클래스가 더 이상 사용되지 않음을 알리기 위해 사용합니다.
  • 이 Annotation이 붙은 요소를 사용하면 컴파일 경고가 발생합니다.

@SpringBootApplication:

  • Spring Boot에서 사용되며, 주로 메인 클래스에 붙습니다.
  • @Configuration, @EnableAutoConfiguration, @ComponentScan을 합친 복합 Annotation입니다.

@RequestMapping:

  • Spring MVC에서 사용되며, 특정 URL 경로에 대해 컨트롤러의 메서드와 매핑할 때 사용됩니다.
  • GET, POST 등 HTTP 메서드와 URL 경로를 설정할 수 있습니다.