📌 1. java annotation
Java 5부터 도입된 기능이다.
annotation은 주석이라는 뜻이지만, java annotation은 주석 그 이상의 의미를 갖는다.
@annotation 이 붙은 코드는 해당 annotation에 따라 연결되는 방향이 결정된다.
@은 비지니스 로직에는 영향을 주지 않지만, 해당 타겟의 연결관계를 정의하거나 소스 코드 전반의 구조를 변경할 수 있다.
즉, 해당 타겟의 역할을 정의하거나 용도를 명시할 수 있다.
한마디로 말하면, annotation은 meta data를 삽입하는 것이다.
🔥 meta data?
한마디로 하자면 data에 대한 data라고 할 수 있다.
대량의 정보(data) 가운데서 정보를 효율적으로 찾아내기 위해 일정한 규칙에 따라 부여하는 data이다.
대표적인 예로 HTML <Head>와 <Body> 를 들 수 있다.
meta data는 크게 2가지의 사용 장점을 보인다.
1. 데이터 구조화
2. 정보의 index 구실
HTML tag를 생각해보면 좀 더 이해가 쉽다.
meta data 내용 출처
https://wa-yeong.tistory.com/14
🔥 java 에서의 annotation
annotation을 잘 사용한다면 시스템 설정과 같은 부가적인 사항들은 @에게 위임하고, 개발자는 비지니스 로직에 집중할 수 있다.
annotation은 compile time에 처리될 수도 있고, java reflection을 걸쳐서 runtime에 처리될 수도 있다.
annotation은 소스코드에 붙이는 하나의 라벨이라고 생각하면 된다.
위 그럼처럼 사과에 라벨을 붙여서 사과박스를 만들어서 판매하는 일을 하는 노동자가 있다고 해보자.
판매가능한 사과에는 @CanSale이라는 라벨을 달아서 판매한다고 하자.
만약 컨베이너 벨트에서 판매가능한 사과를 분별하는 일을 하는 노동자와, 사과를 상자에 담는 노동자가 분리돼 있다고 해보자.
사과를 상자에 담는 노동자는 라벨을 보고, @CanSale이 붙은 사과만 상자에 넣으면 된다.
위와 같이, @annotation에 따라 해당 타겟의 경로가 결정된다.
annotation에 대한 설명
https://www.nextree.co.kr/p5864/
🔥 annotation 다른설명
소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보를 제공한다.
https://velog.io/@gillog/Spring-Annotation-%EC%A0%95%EB%A6%AC
📌 2. @SpringBootApplication
🔥 @ComponentScan
@Component와 @Service, @Repository, @Controller, @Configuration 등의 class bean들을 찾아서 Context에 bean 등록을 해주는 annotation 이다.
@Service나 @Controller 안을 살펴보면 사실 안에 @Component가 달려있다. 즉 @Component scan은 @Component가 붙은 class들에 대해 bean을 등록해주는 것이다.
https://velog.io/@gillog/Spring-Annotation-%EC%A0%95%EB%A6%AC
https://mkil.tistory.com/456
https://seongmun-hong.github.io/springboot/Spring-boot-EnableAutoConfiguration
'CS > 기본기 탄탄 🔥시리즈' 카테고리의 다른 글
재정리 - 🔥 Spring (0) | 2021.10.02 |
---|---|
재정리 - 🔥 db (1) | 2021.09.10 |
🔥6 - 데이터 베이스 (1) | 2021.06.08 |
🔥5 - 네트워크 (0) | 2021.06.03 |
🔥4 - 운영체제 (0) | 2021.06.02 |
댓글