어노테이션은 이전 포스팅에서 깐 다룬 적이 있었는데, 오늘은 제대로 파헤쳐보겠습니다.😊
어노테이션 맛보기
키워드
- 🍎🔖어노테이션이란?
- 어노테이션의 탄생 배경
- 왜 어노테이션을 🍎🔖사과에 비유했을까?
- 어노테이션의 대표적인 예) @Override
- 어노테이션의 장점👍
- 메타 어노테이션의 종류 3개
🍎🔖어노테이션이란?
- Annotation은 프로그램 내에서 주석과 유사하게, 프로그래밍 언어에는 영향을 미치지 않으면서 프로그램/프로그래머에게 유의미한 정보를 제공하는 역할을 합니다.
- 즉, 이 속성을 어떤 용도로 사용할지, 이 클래스에 어떤 역할을 부여할지를 결정합니다.
- 혹은, 인터페이스 기반으로 한 문법으로 주석처럼 코드에 달아 클래스에 특별한 의미를 부여하거나 기능을 주입할 수 있습니다.
어노테이션의 탄생 배경
- JDK5이전까지는 소스코드와 설정 파일(XML 등)을 따로 유지했었습니다. 하지만 관리하기 불편했습니다.
- 그래서, 어노테이션이라는 것을 통해 소스코드에 설정정보를 추가해서 함께 유지하게 됨
- 즉, 시스템 전반에 영향을 주는 메타데이터는 XML로 설정하여 코드로부터 독립적으로 분리되는 것이 바람직합니다. 그 이유는 변경 사항이 있을 때 유지보수성이 높아지기 때문입니다. 설계 시 확정되는 부분은 어노테이션 기반 설정으로 개발의 생산성을 향상하는 것이 바람직합니다.
왜 어노테이션을 🍎🔖에 비유했을까?
- 소스 코드(==사과)에 붙이는 라벨이라고 생각하면 좋습니다. 위 그림은 커스텀 어노테이션의 사용과 실행 절차를 사과가 포장되는 과정에 비유하여 설명하고 있는데요, 판매 가능한 사과는 @CanSale이라는 라벨(어노테이션)을 달아서 포장 과정 시 이를 판별하여 제품을 포장하는 이미지를 떠올리면 좋을 것 같습니다.
어노테이션의 대표적인 예
vo클래스에서 사용한 toStirng 메소드에서의 @Override 어노테이션이 대표적인 예입니다,
부모의 멤버를 오버 라이딩할 때 오탈자를 입력하는 경우가 많은데, 이러한 실수를 방지하기 위한 어노테이션입니다.
오버 라이딩을 올바르게 했는지 컴파일러가 체크하게 한다.
즉, 컴파일러(javac.exe)가 사용하는 어노테이션
어노테이션의 장점
1. 간결함
2. 로직을 방해하지 X
3. 정보 제공
어노테이션의 장점은 바로 간결함인데요, 이는 로직 흐름에 대한 컨텍스트가 응축되어 있어, 불필요한 반복 코드가 줄고 개발자는 비지니스 로직에 더 집중할 수 있도록 만들어 주기 때문입니다.
또한, 설정 정보를 코드에 포함시켜 유지할 수 있으며, 설정 파일을 공유하는 불편함이 없습니다.
소스코드의 로직을 방해하지 않고, 특정 프로그램을 위해 정보를 제공할 수 있음
메타 어노테이션의 종류 3개
메타 어노테이션은 어노테이션을 선언할 때 사용하는 어노테이션입니다. 이 부분에 대한 컨텐츠는 필요하면 다시 만들어보겠습니다. 일단 이 3개의 이름만 익숙해지는 것을 목표로 했습니다.
- @Retention
- @Inherit
- @Target
참고 블로그
728x90
'📓 Study > Tech Interview' 카테고리의 다른 글
🍪쿠키와 🗃세션의 차이점 (0) | 2021.07.16 |
---|---|
[Like 5] DB 피드백 정리 (0) | 2021.07.16 |
🔗GET과 📝POST의 차이점에 대해서 설명해주세요. (0) | 2021.07.07 |
제네릭에 대해서 설명해주세요. (0) | 2021.07.02 |
🎁컬렉션 프레임워크가 무엇인지 설명해주세요 (0) | 2021.07.01 |
댓글