자주 사용하는 스프링부트 어노테이션 종류와 목적
스프링부트( Springboot )로 코딩을 하다보면 자주보이는 것들이 있다.
어노테이션( Annotation )이다.
어노테이션은 스프링부트에서 클래스, 메서드, 필드 위에 지정하여, 역할을 지정한다.
스프링부트는 어노테이션을 읽고 클래스, 메서드, 필드가 어떤 역할을 하는지 파악하고 그에 맞게 실행된다.
지금의 스프링부트 어노테이션의 경우 편의성이 높아졌으며,
단순하고 반복적인 코드를 어노테이션으로 처리할 수 있다.
스프링부트의 중요한 개념 중 하나가 의존성 주입인데,
어노테이션과 관련이 있다.
즉, 스프링부투의 어노테이션은
객체를 생성, 등록( 의존성 주입 ), 데이터의 흐름과 연결을 자동으로 처리해주는 역할을 해 준다.
▣ 어노테이션 ( Annotation )
스프링부트를 시작하면 처음부터 보게 되는 것이 어노테이션( Annotation )이다.
어노테이션은 `@`기호와 함께 사용하며, 자바 코드 위에 작성하여, 스프링부트에 코드의 역할을 알려준다.
대표적으로 많이 보는 어노테이션은 @Controller, @GetMapping, @Service 일 것이다.
스프링부트에서 언급하는 객체는 보통 클래스라 생각하면 머리 속이 편해진다.
즉,
스프링부트에서 얘기하는 어노테이션은
객체( 클래스 )에 지정하고, 작성하여,
스프링부트에게 객체의 역할을 알려주고,
자동으로 객체를 생성하고 연결하고 실행하는 연결을 한다.
구구절절 어렵게 얘기했지만,
쉽게 얘기하면 클래스를 자동으로 생성해 주고 연결해 준다고 생각하자.
이 부분은 의존성 주입과 관련 있으며,
가끔 어노테이션이 지정되어 있지 않거나 잘못 기재되어 있다면,
의존성 주입과 관련된 오류를 볼 수 있다.
▣ 어노테이션 ( Annotation ) 종류
이제 스프링부트에서 객체의 역할을 정하는 어노테이션에 대한 종류를 살펴보자.
어노테이션의 종류는 많지만, 자주 사용하는 것부터 살펴보자.
물론, 코드를 만들고 자신만의 서비스를 만들고, 유지보수를 하다보면 다 알게 되는 것들이다.
더욱이 지금은 굳이 찾지 않아도 AI 서비스를 이용하면 금방 구현할 수 있고, 설명 등을 찾아볼 수 있다.
- @Controller
- 사용자의 요청에 대해 웹 화면을 클라이언트( BackEnd )에 전달한다.
- @RestController
- 웹/앱 통신을 위한 RestAPI를 만들고, JSON 데이터를 클라이언트( BackEnd )에 문자열로 전달한다.
- @Service
- 데이터를 계산, 가공, 검증 등의 로직을 구성하고, 호출한 곳에 데이터와 결과를 전달한다.
- @Repository
- DB 접근을 담당하고, DB에 데이터 처리를 요청다.
- @Mapper
- SQL 쿼리문 이용해 DB에 데이터 처리를 위한 요청한다.
- @Component
- 다른 어노테이션들의 최상위 독립적 객체,
▣ 사용 방법
어노테이션은 스프링부트의 객체, 클래스, 함수 위에 작성하고 역할을 부여한다.
스프링부트는 어노테이션을 읽고, 객체, 클래스, 함수 등의 역할을 인지하고,
객체를 생성하고 연결하며, 연관된 객체끼리 연결하여 실행할 수 있도록 한다.
위에서 언급한 어노테이션에 대한 간단한 사용법은 다음과 같다.
@Controller
사용자의 요청에 대해 웹 화면을 클라이언트( BackEnd )에 전달한다.
@RestController
웹/앱 통신을 위한 RestAPI를 만들고, JSON 데이터를 클라이언트( BackEnd )에 문자열로 전달한다.
@Service
데이터를 계산, 가공, 검증 등의 로직을 구성하고, 호출한 곳에 데이터와 결과를 전달한다.
@Repository
DB 접근을 담당하고, DB에 데이터 처리를 요청다.
@Mapper
SQL 쿼리문 이용해 DB에 데이터 처리를 위한 요청한다.
@Component
다른 어노테이션들의 최상위 독립적 객체,
댓글
댓글 쓰기