Spring 프레임워크에서 메타데이터의 일종으로, 클래스, 메서드, 필드 등의 추가 정보를 제공하는 역할을 합니다.
어노테이션은 @ 기호와 함께 사용되며, 코드에 대한 설명이나 컴파일러 지시어, 런타임 처리 등에 활용됩니다.
@Component, @Service, @Repository, @Controller: 클래스를 Spring의 컴포넌트로 등록하고, 의존성 주입(Dependency Injection)을 가능하게 합니다.@Autowired, @Inject: 의존성 주입을 위해 사용되며, 필요한 객체를 자동으로 주입받을 수 있습니다.@Configuration, @Bean: Java 기반의 설정을 위해 사용되며, 설정 클래스와 Bean 메서드를 정의할 수 있습니다.@RequestMapping, @GetMapping, @PostMapping 등: 웹 요청을 처리하기 위한 핸들러 메서드를 매핑하는 데 사용됩니다.@RequestParam, @PathVariable: HTTP 요청 파라미터와 경로 변수를 메서드 매개변수에 바인딩하는 데 사용됩니다.@Transactional: 메서드나 클래스에 트랜잭션 경계를 설정하는 데 사용됩니다.@Scheduled: 메서드를 특정 시간이나 간격으로 실행되도록 스케줄링하는 데 사용됩니다.이외에도 Spring에서는 AOP(Aspect-Oriented Programming)를 위한 어노테이션, 데이터 액세스를 위한 어노테이션, 테스트를 위한 어노테이션 등 다양한 어노테이션을 제공합니다.
어노테이션을 사용하는 이유는 코드 내에서 직관적으로 설정과 동작을 정의할 수 있어 개발 생산성과 유지보수성을 높이기 위해