DB의 테이블과 같은 의미로 JPA에서는 테이블을 자동으로 생성해주는 기능이 존재한다.
또한, JPA의 Entity, Column은 자동으로 camel case -> DB의 snake_case에 매칭 시켜준다.

@Data
@AllArgsConstructor
@Entity // == table
// @Table(name = "user") : 클래스 이름과 테이블 이름이 같으면 생략 가능
public class User {
// pk(식별자) 설정
@Id
// 어떤 식으로 키 전략을 가져갈지 설정하는 부분, IDENTITY/AUTO/TABLE/SEQUENCE 4개 타입이 있는데 mysql을 사용하므로 IDENTITY로 설정
@GeneratedValue(strategy = GenerationType.IDENTITY)
// @Column(name = "id") : 선언한 변수 이름과 테이블 컬럼 이름이 같으면 생략 가능
private Long id;
private String account;
private String email;
private String phoneNumber;
private LocalDateTime createdAt;
private String createdBy;
private LocalDateTime updatedAt;
private String updatedBy;
public User() {}
}
따로 쿼리문을 작성하지 않아도 기본적인 CRUD (Create/Read(select)/Update/Delete)를 사용할 수 있게 만들어주는 어노테이션이다.
@Repository
public interface 인터페이스명 extends JpaRepository<제네릭 타입, 식별자 타입>
*참고자료 - 패스트 캠퍼스 온라인 강의