BACKEND/JAVA & SPRING

Annotation이란?

이-프 2023. 9. 18. 11:58

Annotation

Annotation이란 자바에서 코드 사이 “주석”처럼 쓰이며 특별한 기능을 수행하도록 하는 기술이다.

이전에는 Java Code과 XML 설정파일을 따로 저장하고 이름을 동일하게 하여 관리했다. 코드와 설정 파일과 분리되어 있기에 개발에 어려움이 있었고 이를 해결하기 위해 하나의 파일에서 Annotaion(설정파일)과 코드를 함께 사용하는 방법이 개발되었다.

다양한 Annotation이 존재하지만, Toy 프로젝트를 통해 새롭게 알게된 Annotation에 대해 설명한다.

@NoArgsConstructor(access = AccessLevel.PROTECTED)
  • Entity나 DTO를 사용할 때, 주로 해당 어노테이션 사용
  • 아무 매개변수가 없는 생성자(기본생성자)를 생성하되, 다른 패키지에 소속된 클래스는 접근을 불허한다.

    ⇒ protected Post() {};

  • 기본 생성자의 접근 제어를 PROTECTED로 설정 시, 무분별한 객체 생성에 대해 한번 더 체크할 수 있는 수단이 됨
  • 왜 Private이 아닌 Protected ?
    • Entity의 Proxy 조회 때문이다.

      지연 로딩의 경우에는 실제 Entity가 아닌 Proxy 객체를 통해서 조회를 하게 된다. 이때, Proxy 객체를 사용하기 위해선 실제 Entity의 기본 생성자를 통해 Proxy 객체를 생성하게 되는데 Private이면 이를 생성할 수 없기 때문이다.


Uploaded by N2T

'BACKEND > JAVA & SPRING' 카테고리의 다른 글

TestCode 작성법  (0) 2023.09.18
Entity와 DTO의 연관관계  (0) 2023.09.18
[JAVA] 입출력Stream이란?  (0) 2023.08.16
JpaRepository save()  (1) 2023.06.11
DAO DTO Repository  (0) 2023.05.19