2021. 3. 17. 01:31ㆍSpring Boot
어노테이션이란 주석이란 뜻으로 인터페이스를 기반으로 한 문법이다. 주석과는 그 역할이 다르지만 주석처럼 코드에 달아 클래스에 특별한 의미를 부여하거나 기능을 주입할 수 있다.
또 해석되는 시점을 정할 수도 있다.
어노테이션에는 크게 세가지 종류가 존재한다. JDK에 내장되어있는 built-in annotation , 어노테이션에 대한 정보를 나타내기 위한 어노테이션인 Meta annotation 그리고 개발자가 직접 만들어 내는 Custom Annotaion이 있다. built-in annotation은 상속받아서 메소드를 오버라이딩할때 나타나는 @Override 어노테이션이 그 대표적인 예이다. 어노테이션의 동작 대상을 결정하는 Meta-Annotation에도 여러가지가 존재한다.
<참고>
어노테이션이란 ?
@를 이용한 주석, 자바코드에 주석을 달아 특별한 의미를 부여하는 것
(참고로 클래스, 메소드, 변수 등 모든 요소에 선언이 가능)
- 메타데이터라고도 불리고 JDK5부터 등장
- 컴파일러가 특정 오류를 억제하도록 지시하는 것과 같이 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공, 코드에 정보를 추가하는 정형화된 방법
어노테이션이 나온이유
IT가 발전하면서 프로그램의 규모가 방대해지면서 XML이 가지는 설정정보의 양이 많아진다.
--> 어노테이션은 직관적인 메타데이터 설정이 가능하다. 왜냐면 소스코드와 같이 쓰기 때문에 (소스코드와 메타데이터가 결합되는 형태)
--> 시스템 전반에 영향을 주는 메타데이터는 XML로 설정하여 코드로부터 독립적으로 분리되는 것이 바람직하다. (그래서 변경사항이 있을 때 유지보수성이 높아진다, 설계시 확정되는 부분은 어노테이션 기반설정으로 개발의 생산성을 향상시키는 것이 바람직하다)
어노테이션 사용시 장점
데이터에 대한 유효성 검사 조건을 어노테이션을 사용하여 Model클래스에 직접명시함으로써 해당 데이터들에 대한 유효 조건을 쉽게 파악할 수 있게되며 , 코드의 양도 줄어든다.(코드 깔끔 , 어노테이션 재사용 가능)
주요 어노테이션
@SpringBootApplication
@Configuration, @EnableAutoConfiguration, @ComponentScan 3가지를 하나의 어노테이션으로 합친 것
@ComponentScan
되게 많은데 설명을 봐도 솔직히 잘 모르겠다. 직접 부딪히며 익히자
참고
'Spring Boot' 카테고리의 다른 글
[java] string , date 타입간의 변환 (0) | 2021.03.24 |
---|---|
스프링부트 연관관계 (0) | 2021.03.19 |
스프링부트 페이징 , 정렬 (0) | 2021.03.10 |
스프링부트 https 적용, http to https 리디렉션 적용 (0) | 2021.02.26 |
@RequestMapping 과 @GetMapping 차이 (0) | 2021.02.11 |