Spring Boot와 같은 Java 기반 프레임워크에서 "엔티티(Entity)"는 주로 데이터베이스의 테이블을 나타내는 클래스를 의미합니다. 이 클래스는 JPA(Java Persistence API)를 사용하여 데이터베이스에 저장되고 관리됩니다.
엔티티 클래스는 다음과 같은 특징을 가지고 있습니다:
@Entity 어노테이션: JPA가 해당 클래스를 엔티티로 인식하게 하기 위해, 클래스 선언 위에 @Entity 어노테이션이 붙어야 합니다.
기본 생성자: JPA 스펙에 따라 엔티티 클래스는 반드시 기본 생성자(no-arg constructor)를 가져야 합니다.
식별자 필드: 각 엔티티 인스턴스를 유일하게 식별할 수 있는 식별자 필드가 필요합니다. 이 필드는 @Id 어노테이션으로 마크되며, 일반적으로 숫자 ID 또는 UUID 등을 사용합니다.
예를 들어, '사용자'라는 개념을 나타내는 User라는 이름의 엔티티가 있다면 이것은 '사용자' 테이블과 매핑되며, 각각의 User 인스턴스(객체)는 테이블의 한 로우(row)에 해당합니다.
간단한 예제 코드로 설명하면 다음과 같습니다:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String email;
// 기본 생성자
public User() {}
// getter와 setter 메소드들...
}
위 코드에서 User 클래스가 @Entity 어노테이션으로 마크되어 있으므로 JPA에서 이것을 데이터베이스 테이블로 관리하는 엔터니로 인식합니다. id, name, email 속성들은 각각 '사용자' 테이블의 컬럼(column)에 해당하는데, 여기서 id 속성은 고유한 식별값인 PK(Primary Key)입니다.
출처 : 뤼튼, OpenAI의 GPT-4 기반 AI 모델에게서 얻은 정보