- @Component: 스프링이 관리하는 Bean임을 나타내는 기본 주석입니다. @Component를 사용하면 스프링이 해당 클래스의 객체를 생성하고 관리하게 됩니다. @Controller, @Service, @Repository는 @Component를 특화시킨 주석으로 각각의 계층을 나타냅니다.
- @Autowired: 스프링에서 의존성 주입(Dependency Injection)을 처리하는 데 사용되는 주석입니다. 이 주석을 사용하면 스프링이 자동으로 해당 필드나 메소드에 적합한 Bean을 찾아 주입합니다.
스프링 3계층 아키텍처란, 일반적으로 웹 애플리케이션을 개발할 때 사용되는 디자인 패턴입니다. 이것은 크게 Presentation Layer (프레젠테이션 계층), Business Logic Layer (비즈니스 로직 계층), 그리고 Data Access Layer (데이터 액세스 계층)로 구분됩니다.
- Presentation Layer는 사용자 인터페이스와 관련된 코드를 담당합니다. 사용자의 요청을 받아 처리하고, 그 결과를 사용자에게 보여주는 역할을 합니다. 스프링에서는 일반적으로 Controller가 이 역할을 합니다.
- Business Logic Layer는 애플리케이션의 핵심 비즈니스 로직을 담당합니다. 이 계층은 데이터의 가공과 처리를 담당하며, 스프링에서는 이를 Service라고 합니다.
- Data Access Layer는 데이터베이스와의 연동을 담당합니다. CRUD(Create, Read, Update, Delete) 연산 등 데이터베이스와 관련된 로직을 처리하며, 스프링에서는 Repository 또는 DAO(Data Access Object)가 이 역할을 합니다.
Annotation(@)은 코드에 메타데이터를 추가하는 방법입니다. 스프링에서는 클래스, 메소드, 변수 등에 여러가지 주석을 달 수 있으며, 이 주석은 스프링 컨테이너에 의해 해석되어 해당 요소의 동작을 결정하게 됩니다. 예를 들어, @Controller, @Service, @Repository 등의 주석은 각각의 클래스가 프레젠테이션 계층, 비즈니스 로직 계층, 데이터 액세스 계층을 담당함을 나타냅니다.
"스프링 3계층 Annotation(@)"은 스프링의 3계층 아키텍처에서 각 계층을 표현하는 Annotation을 의미합니다.
-
- @Controller: 프레젠테이션 계층을 나타내며, 사용자 요청을 처리하는 클래스에 사용됩니다.
- @Service: 비즈니스 로직 계층을 나타내며, 핵심 비즈니스 로직을 처리하는 클래스에 사용됩니다.
- @Repository: 데이터 액세스 계층을 나타내며, 데이터베이스 연동 로직을 처리하는 클래스에 사용됩니다.
- JpaRepository 인터페이스를 상속받는 클래스에서는 @Repository 주석을 명시적으로 사용할 필요가 없습니다. 스프링 Data JPA가 이를 자동으로 인식하기 때문입니다.
이러한 주석은 스프링이 해당 클래스를 관리하도록 지시하며, 그러면 스프링은 해당 클래스를 스프링 컨테이너에 등록하고 필요에 따라 객체를 생성하거나 주입하는 등의 작업을 수행하여 코드를 보다 명확하고 가독성 있게 만들고, 스프링에서 제공하는 기능을 더욱 편리하게 사용할 수 있도록 돕습니다.
'Spring' 카테고리의 다른 글
Transaction, Primary, Replica (0) | 2023.05.29 |
---|---|
스프링 프레임워크(Spring Framework), 생성자 주입, Singletone Bean (0) | 2023.05.25 |
JPA(Java Persistence API), ORM(Object-Relational Mapping) pt.2 (0) | 2023.05.25 |
절차지향(Procedural), 객체지향(Object-Oriented), 관점지향(Aspect-Oriented) 프로그래밍 pt.2 (0) | 2023.05.25 |
절차지향(Procedural), 객체지향(Object-Oriented), 관점지향(Aspect-Oriented) 프로그래밍 pt.1 (0) | 2023.05.25 |