All Day Tired

Annotation 본문

Back/Java

Annotation

yu.dev 2024. 11. 26. 22:48

강의듣는데 과제로 annotation이 무엇인지랑 annotation 만들 수 있는지 알아보는게 있어서 정리...

 

Annotation

spring2.5까지 DI, AOP 기능은 XML 파일로 설정했으나 애플리케이션이 복잡해지면서 XML 설정 파일 내용도 복잡하고 관리가 어려운 문제 발생

그래서 spring 3.0부터 DI같은 자바 코드와 관련된 설정은 직접 코드에서 할 수 있도록 Annotation 기능을 제공하게 됨

 

순수 Java 에서는

Annotation 용도가 3가지가 있다

  • 컴파일러에게 코드 문법 에러를 체크하도록 정보 제공(@Override : 부모 클래스나 인터페이스의 메서드를 올바르게 오버라이드 했는지 확인, 잘못되면 컴파일 에러 발생)
  • 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공(@Entity : JPA에서 사용, JPA에서 엔티티 클래스를 정의할 때 사용, 어노테이션 정보를 기반으로 데이터베이스 테이블과 매핑되는 코드를 자동으로 생성)
  • 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공(@Transactional : spring에서 사용, Spring Framework에서 메서드나 클래스에 트랜잭션 처리 적용, 런타임 시 해당 메서드의 시작과 끝에서 트랜잭션 관리)

 

이러한 Annotation은 개발자가 직접 만들수도 있다.

  • Annotation 타입 정의
  • Annotation 적용 대상
  • Annotation 유지 정책

이런 걸 정의해서 만들어주면 되는데 실제 개발을 해온 경험상 Annotation을 직접 만든 일은 없었다...

그냥 이렇게 만들수도 있구나 정도로 봐두면 될 듯...

'Back > Java' 카테고리의 다른 글

람다식, 익명클래스  (0) 2024.12.17
JDK, JRE, JVM  (0) 2024.10.14
Optional  (1) 2024.09.19
Comments