Spring Stereotypes
Spring 프레임워크에서 특정 클래스가 수행하는 역할을 명시적으로 나타내는 어노테이션들
@SpringBootApplication
스프링 부트의 주요 설정 어노테이션
- 스프링 부트 애플리케이션의 핵심 설정을 자동화해줌.
- 일반적으로 메인 클래스에 붙여 사용.
- @Configuration, @EnableAutoConfiguration, @ComponentScan 등을 기본적으로 포함.
@Component
스프링에서 관리하는 Bean을 선언하는 기본 어노테이션
- 개발자가 직접 컨트롤이 필요한 클래스를 Bean으로 등록하는데 사용.
- 스프링에서 Bean의 생명주기를 관리.
@Controller
MVC 모델에서 Controller 역할을 하는 클래스에 붙이는 어노테이션
- @Component의 일종.
- 주로 @RequestMapping과 함께 사용하며, 웹 요청을 처리하는 메소드를 가진 클래스에 사용.
- 사용자의 요청을 처리하는 Controller 클래스임을 명시.
@Repository
데이터 접근 계층(Data Access Layer)을 표현하는 어노테이션
- @Component의 일종.
- 주로 데이터베이스 연결과 관련된 코드를 가진 클래스에 사용.
- 데이터베이스에서 데이터를 가져오거나 저장하는 역할을 담당하는 클래스임을 명시.
- Data Access Object(DAO)와 같이 실제 데이터 근원과 소통하는 부분임을 알림.
@Service
비즈니스 로직이 구현된 클래스를 표현하는 어노테이션
- @Component의 일종.
- 주로 서비스 계층(Service Layer)를 구현하는 클래스에 사용.
- 해당 클래스가 비즈니스 로직을 가지고 있음을 명시.
Spring IoC Container
스프링의 제어권 역전(IoC)을 담당하는 컨테이너에 대한 설명
- 스프링 IoC 컨테이너는 어플리케이션의 객체를 관리하고 객체 간의 의존관계를 관리.
- ComponentScan을 이용해 사용할 Bean의 범위를 정해줄 수 있다.
- 함수 단위: @Bean, 클래스 단위: @Component
- 모든 Bean에 @Component를 사용할 수 있지만, 각 Bean의 역할과 기능에 따라 @Controller, @Service, @Repository 등의 어노테이션을 사용하는 것이 좋다.
구현
TBD