목차
과제
[질문]
- 어노테이션을 사용하는 이유(효과)는 무엇일까?
- 나만의 어노테이션은 어떻게 만들 수 있을까?
1. 어노테이션을 사용하는 이유(효과)는 무엇일까?
1.1 어노테이션이란
어노테이션은 자바 프로그래밍 언어의 기능 중 하나로 클래스, 메서드, 변수 등의 요소에 메타데이터를 추가하기 위해 사용된다.
스프링 프레임워크에는 스프링에서만 사용되는 어노테이션을 제공한다. 어노테이션을 이용해 스프링 애플리케이션의 구성, 관리, 동작을 제어해서 트랜잭션 관리, AOP, 테스트 지원 등 다양한 기능을 구현할 수 있도록 한다.
1.2 어노테이션을 사용하는 이유
어노테이션을 이용하면 애플리케이션 개발 시 보다 쉽게 구성할 수 있게 된다.
스프링이 제공하는 주요 어노테이션 중 몇 가지를 살펴보면 다음과 같다.
- @Controller, @Repository, @Service 어노테이션을 사용하면 클래스의 역할을 명확히 알려줄 뿐만 아니라, 스프링의 빈으로 등록되기 때문에 스프링 프레임워크의 다양한 기능을 활용하여 개발 생산성을 향상시킬 수 있다.
- @Autowired를 사용하면 스프링 컨테이너가 자동으로 빈을 주입하도록 지시할 수 있어서 의존성 주입을 쉽게 설정할 수 있다.
- @RequestParam을 사용하면 웹 요청 파라미터의 값을 쉽게 추출할 수 있다. HttpServletRequest를 직접 다루지 않고 @RequestParam 어노테이션을 통해 HTTP 요청의 쿼리 파라미터나 폼 데이터를 추출할 수 있기 때문에 코드가 훨씬 간결해진다.
2. 나만의 어노테이션은 어떻게 만들 수 있을까?
프로젝트 개발 시, 스프링에서 제공하는 어노테이션 외 별도의 어노테이션을 직접 만들어서 사용해야 할 상황이 생길 수 있다.
2.1 어노테이션 생성 방법
어노테이션을 생성할 때 우선 클래스를 만들고, class 예약어를 @interface로 수정해 주면 된다.
인텔리제이에서는 클래스 생성 시 'Annotaion'을 선택할 수 있다.
어노테이션을 만든 후, 해당 어노테이션이 동작할 기능과 관련된 어노테이션들을 붙여주면 나만의 어노테이션을 만들 수 있다.
예시로 @Controller 어노테이션에서 사용되는 어노테이션들을 붙여보았다.
- @Target(ElementType.TYPE): 어노테이션이 적용될 대상을 지정한다. ElementType.TYPE은 해당 어노테이션이 클래스, 인터페이스, 열거형 등의 타입에 적용됨을 나타낸다.
- @Retention(RetentionPolicy.RUNTIME): 어노테이션이 유지되는 기간을 지정한다. RetentionPolicy.RUNTIME은 런타임까지 어노테이션 정보를 유지함을 나타낸다.
- @Documented: 해당 어노테이션을 자동으로 문서화할 것인지를 지정한다.
'Education > 인프런 워밍업 클럽(BE 0기)' 카테고리의 다른 글
인프런 워밍업 클럽 - BE 0기, 회고 #1 (0) | 2024.02.25 |
---|---|
인프런 워밍업 클럽 - BE 0기, 과제 #5 (0) | 2024.02.23 |
인프런 워밍업 클럽 - BE 0기, 과제 #4 (0) | 2024.02.22 |
인프런 워밍업 클럽 - BE 0기, 과제 #3 (0) | 2024.02.21 |
인프런 워밍업 클럽 - BE 0기, 과제 #2 (0) | 2024.02.20 |