Core Annotations
@SpringBootApplication - @Configraution @EnableAutoConfiguration @ComponentScan 과 같은 주요 애노테이션 겹합.
@Configuration - 클래스에 스프링 빈 및 구성 로직이 포함되어 있음을 나타낸다.
@Component Scan - 컨트롤러, 서비스 및 레파지토리와 같은 스프링 구성 요소에 대해 검색할 패키지를 지정한다.
@EnableAutoConfiguration - application.properties 또는 application.yml 파일의 속성을 기반으로 스프링 부트 프로그램의 자동 구성을 활성화합니다.
Controller Annotations
@RestController - 해당 클래스가 HTTP 요청을 처리하고 JSON, XML등 과 같은 다양한 형식으로 응답을 반환하는 컨트롤러라고 표시한다.
@Controller - @RestController 와 유사하지만, 응답을 뷰 형식으로 반환한다고 표시한다.
Service and Repositroy Annotations
@Service - 해당 클래스가 애플리케이션에 비지니스 로직을 제공하는 서비스라고 명시한다.
@Repository - 해당 클래스가 응용 프로그램에 대한 데이터 접근을 제공하는 레파지토리라고 표시한다.
Dependency Injection Annotations
@Autowired - 생성자, 필드, setter 메서드에 관계 없이 의존성 클래스에 주입한다.
Request Mapping Annotations
@RequestMapping - 컨트롤러의 특정 메서드를 제공된 엔드포인트에 매핑하여 다양한 HTTP 메서드 (GET, POST, PUT, DELETE 등..)을 지원한다. @GetMapping @PostMapping @PutMapping @DeleteMapping 과 같은 역할을 한다.