'Annotation'은 Java 코드에 메타데이터를 추가하는 방법이다.
가장 자주 접했던 어노테이션이라면 @Override일 것이다.
하지만 단순 표시를 넘어, Spring Framework에서는 Annotation이 시스템 동작에 적극 관여한다.
Spring Boot는 특시 'Convention over Configuration'을 따르기 때문에,
복잡한 설정을 Annotation으로 대체하여 개발자가 비즈니스 로직에 집중하는데 도움을 준다.
Annotation -> 자동화 / 개발 생산성 향상

: SpringBoot 개발을 하며 사용할 주요 Annotation
@SpringBootApplication
@Component
@Service
@Repository
@Autowired
@Controller
@RestController
@RequestMapping
@GetMapping, @PostMapping, @PutMapping, @DeleteMapping
@RequestParam
@Bean
@Configuration
@ConfigurationProperties
'Annotation 스캔 -> Bean 등록 -> 의존성 주입 -> (필요한 경우) 프록시 처리
1. Reflection API를 사용해서 클래스, 메서드, 필드에 붙은 Annotation을 런타임에 읽는다.
2. 특정 Annotation(@Component, @Service 등)을 찾으면 해당 클래스를 Spring Bean으로 등록한다.
3. @Autowired가 붙은 필드는, 타입에 맞는 Bean을 찾아서 의존성 주입을 한다.
편리한 기능이지만 무분별하게 사용하지 않을 것.
SpringBoot는 Annotation을 제대로 이해하고 사용하면
즉 Annotation을 제대로 이해하는것은 필수조건이다.
[참고자료]
https://www.geeksforgeeks.org/spring-boot-annotations/
https://velog.io/@anak_2/Java-annotations-%EC%9D%B4%EB%9E%80-%EC%84%A4%EB%AA%85-%ED%99%9C%EC%9A%A9
https://rebornbb.tistory.com/entry/SpringBoot-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-Annotation-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%A0%95%EB%A6%AC
https://velog.io/@rara_kim/Spring-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98Annotation
https://jjaong34.tistory.com/96#google_vignette
https://www.youtube.com/watch?v=AXZkhKTbbWc