
@Entity : JPA를 사용해서 테이블과 매핑할 시에 필수적으로 사용해야한다.
※주의!
- 기본 생성자는 필수적으로 들어가야한다.(파라미터가 없는 public, protected 생성자)
- final, enum, interface, inner클래스에는 사용할 수 없다.
- 저장할 필드에 final은 사용하면 안된다.
@Table : 엔티티와 매핑할 테이블을 지정한다. 이 때 name속성은 메핑할 테이블 이름을 지정해주며 지정해주지 않으면 엔티티 이름을 테이블 이름으로 지정한다.
@NoArgsConstructor : Lombok 라이브러리 내에 있는 기능으로 파라미터가 없는 디폴트 생성자를 자동으로 생성한다. 이 어노테이션을 사용하면, 클래스에 명시적으로 선언된 생성자가 없더라도 인스턴스를 생성할 수 있다.
@Getter/Setter : 접근자/설정자를 자동으로 생성해 주는 어노테이션이다. 손쉽게 데이터를 가져오고, 변경할 수 있기에 편해 보이지만 그렇기에 문제가 생긴다. @Getter는 사용시 데이터에 변경이 생기지 않지만 @Setter는 무분별하게 사용하면 데이터가 이곳 저곳에서 변경되기 때문에 이후에 데이터 변경점을 찾기 힘들어지고 그렇게되면 유지보수에 치명적이게 된다. 따라서 Setter 사용시에는
- 최대한 Setter사용은 지양하되 어쩔 수 없는 경우에만 사용한다.
- 생성자를 사용한 데이터 주입을 우선으로 하고 setter사용 시 의미 있는 이름을 부여하여 사용한다.
※Setter대신 Builder를 사용하면 된다고 하는데 아직 Builder사용이 익숙하지 않아서 간단한 게시판 프로젝트에는 setter를 사용하고 이후에 Builder에 대해 다뤄보려고 한다.
@Data : 모든Constructor 어노테이션과 ToString, Getter, Setter를 전부 생성해 주는 어노테이션이다. 이 어노테이션은 잘못 사용하면 @ToString 어노테이션으로 인해 연관관계에 따라 무한루프가 돌 수 있기때문에 사용은 자제해야한다.
@Id : 식별자 필드로, 엔티티의 필드를 테이블의 기본 키에 매핑하는 역할을 한다.
@GeneratedValue : 자동생성 전략을 명시하는데 사용된다. 즉, 키가 자동생성되는것을 도와주는 어노테이션이다.
@Column : 엔티티의 필드를 테이블의 칼럼에 매핑시켜준다.
'Spring MVC' 카테고리의 다른 글
| Spring MVC)게시판 만들기 - Controller 생성 (1) | 2025.02.07 |
|---|---|
| Spring MVC)게시판 만들기 - Service 생성 (0) | 2025.02.06 |
| Spring MVC)게시판 만들기 - Repository 생성 (0) | 2025.02.05 |
| Spring MVC)게시판 만들기 - 프로젝트 환경 설정 (0) | 2025.02.04 |
| Spring MVC)게시판 만들기 - MVC 개념 정리 (0) | 2024.11.08 |