JAVA

[JAVA] 자바 어노테이션(Java Annotation) 개념 정리, 종류

chsr 2023. 10. 26. 17:29
728x90
반응형

 JAVA 자바 어노테이션(Java Annotation) 개념 정리, 종류

자바 어노테이션(Java Annotation)이 뭘까?

자바 소스 코드에 추가하여 사용할 수 있는 메타데이터의 일종으로
앞에 @ 기호를 붙여서 사용함 (JDK 1.5 version 이상에서 사용 가능)
클래스 파일에 내장되어 컴파일러에 의해 생성된 후 자바 가상머신에 포함되어 작동함


■ 종류

@Entity 클래스 위에 선언하여 해당 클래스가 엔티티(Entity)임을 알려줌으로써, JPA에서 정의된 필드들을 바탕으로 데이터베이스에 테이블을 만들어줌

@Builder 클래스에 해당하는 엔티티 객체를 생성할  빌더 패턴을 이용해서 만들 수 있도록 지정해주는 어노테이션, 선언해놓으면 추후 다른 곳에서 Board.builder(). {여러가지 필드의 초기값 선언 }. build() 형태로 객체를 만들  있음

@AllArgsConstructor :
선언된 모든 필드를 파라미터로 갖는 생성자를 자동으로 생성함
@NoArgsConstructor :
파라미터가 없는 기본 생성자를 자동으로 생성함

@Getter
필드값을 조회할 있는 getter 자동으로 생성함, 예를 들어 다른 파일에서 Board 객체의 title값을 얻고 싶다면 getTitle() 메소드를 정의해서 해당 객체의 title 값을 얻어오게 되는데 이때 해당 메소드를 굳이 작성하지 않아도 자동으로 생성해줌

보통 변수는 직접 접근 변경이 안되도록 private 선언자를 통해 지정함, title 이라는 변수를 조회하기 위해서 getTitle() 이라는 메소드를 선언하고, title 리턴하도록 해주는데 해당 메소드를 getter 라고 함

private String title
public String getTitle() { 
	return title 
}

@ToString 해당 클래스에 선언된 필드들을 전부 출력할 있는 toString 메소드를 자동으로 생성할 수 있게 해줌

@Id, @GeneratedValue
@Id 는 해당 엔티티의 주요 (Primary Key, PK) 값을 지정해줌
@GeneratedValue Primary Key 자동으로 1 증가하는 형태로 생성될지 등을 결정해줌

@ManyToOne
해당 엔티티와 다른 엔티티를 관계짓고 싶을 쓰는 어노테이션으로 ManyToOne이라고 부르는 이유는 Writer 입장에서 Board 여러 개가 있기 때문에 Writer : Board = 1 : N 관계이기 때문

728x90
반응형