백엔드

기능있는 주석 어노테이션이란 ?!?!!

skgur07 2024. 7. 30. 14:34

Spring에서 많이 나오는 어노테이션 오늘은 그 의미야 왜 사용하는지에 대해 알아보겠습니다.

 

어노테이션 ( Annotation )의 뜻


어노테이션은 사전적 의미로 “주석”이라는 의미를 가지고 있습니다.

주석은 개발자에게 보다 편하게 코드의 의미를 이해하고 흐름을 이해할 수 있도록 도와주는 메모의 목적으로 사용됩니다.

다들 아시다시피 파이썬에선 # … , C에서는 /* … */ 과 같은 뜻을 가지고 있습니다.

하지만 특별하게도 자바에서의 어노테이션은 소스코드에 추가해서 사용할 수 있는 메타 데이터의 일종입니다.

자바의 어노테이션은 보통 앞에 골뱅이 (’@’) 기호를 붙여서 사용합니다.

예를 들어

 

@GetMapping, @PostMapping이 그 예입니다.

어노테이션의 예시

어노테이션의 용도


  1. 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공한다.
  2. 소프트웨어 개발툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공한다.
  3. 런타임 시 특정 기능을 실행하도록 정보를 제공한다.
    • Spring에서 제공되는 대부분의 Annotation은 3번, 런타임 시 특정 기능을 실행하도록 정보를 제공하는 용도로 많이 사용되고 있습니다.

 

어노테이션 사용 순서


  1. 어노테이션을 정의한다.
  2. 클래스에 어노테이션을 배치한다.
  3. 코드가 실행되는 중에 Reflection을 이용하여 추가 정보를 획득하여 기능을 실시한다.
    • Reflection이란 프로그램이 실행 중에 자신의 구조와 동작을 검사하고, 조사하고, 수정하는 것입니다.

 

어노테이션 ( Annotation ) vs 주석 ( Comment )


어노테이션도 사전적 의미로 주석을 뜻 합니다. 그럼 실제 주석과 다른 점은 무엇일까요?

주석은 정보 제공의 대상이 사람

어노테이션은 주석과 마찬가지로 정보 전달의 목적을 가지는 점에서 동일하지만 정보 전달의 대상이 다르다는 차이점이 있다.