어노테이션(Annotation)이란?

Deuk·2021년 3월 3일
0

Java에서 어노테이션(Annotation)은

사전적 의미로는 주석을 의미한다.

자바에서 사용될 때의 어노테이션은 코드 사이에 주석처럼 쓰여 특별한 의미, 기능을 수행하도록 하는 기술이다.

즉, 프로그램에게 추가적인 정보를 제공하는 메타데이터라(데이터를 위한 데이터) 볼 수 있다.

기본적으로 제공되는 어노테이션

  1. @Override
  • 선언된 메소드가 오버라이드되었다는 뜻
  • 상위 클래스에서(또는 인터페이스) 해당 메소드를 찾을 수 없으면 컴파일 에러를 발생시킨다.
  1. @Deprecated
  • 해당 메서드가 더 이상 사용되지 않는다는 뜻
  • 사용할 경우 컴파일 경고를 발생시킨다.
  1. @SuppressWarnings
  • 선언한 곳의 컴파일 경고를 무시한다.
  1. @SafeVarargs
  • Java 7 부터 지원
  • 제너릭과 같은 가변인자의 매개변수를 사용할 때의 경고를 무시한다.
  1. @FunctionalInterface
  • Java 8 부터 지원
  • 메소드가 존재하지 않거나, 1개 이상의 메소드(default 제외)가 존재할 경우 컴파일 오류 발생시킨다.

JPA 어노테이션

  1. @Entity
  • 테이블과 링크될 클래스임을 나타낸다.
  1. @Id
  • 해당 테이블의 PK필드를 나타낸다.
  1. @GenerateValue
  • PK의 생성규칙을 나타낸다.
  • 스프링부트 2.0에서는 GenerationType.IDENTITY 옵션을 추가해야만 auto_increment가 된다.
  1. @Column
  • 테이블의 칼럼을 나타내며 굳이 선언하지 않더라도 해당 클래스의 필드는 모두 칼럼이 된다.
  • 기본값 이외에 추가로 변경이 필요한 옵션이 있으면 사용한다.
  • ex) 기본값으로 지정된 옵션을 변경하고 싶은 경우
    문자열 기본값 VARCHAR(255) -> 사이즈를 500으로 늘리고 싶은 경우

롬복(lombok) 어노테이션

  1. @NoArgsConstructor
  • 기본 생성자 자동 추가
  1. @Getter
  • 클래스 내 모든 필드의 Getter 메소드를 자동 생성
  1. @Builder
  • 해당 클래스의 빌더 패턴 클래스를 생성
  • 생성자 상단에 선언 시 생성자에 포함된 필드만 빌더에 포함.







자료 출처

MHLab Blog
태사룡님 블로그
스프링부트2로 웹서비스 출시하기

profile
하윙

0개의 댓글