Spring Entity, Repository는 DB와 관련된 항목들 중 몇 가지입니다.
그 외에는 DAO, DTO, VO, Transaction등이 있다.
Entitiy(엔티티)는 데이터베이스에 쓰일 필드와 여러 엔티티간 연관관계를 정의하는 역할을 의미한다. 테이블에 대응하는 하나의 클래스라 생각하면 된다.
Entitiy 애노테이션과 함께 여러 관련 애노테이션을 사용하여 설계할 수 있다.
Repository는 기존 JPA를 한 단계 더 추상화시킨 인터페이스로서 간단하게 설명하자면, Entitiy에 의해 생성된 DB에 접근하는 메소드들을 사용하기 위한 인터페이스이다.
MVC 패턴에서 모델에 해당하는 부분으로 POJO로는 접근이 불가능하며, Persistence Layer와 1:1 매칭이 가능하다. 기존 JPA를 사용하고 있기에 JPA 구현체를 통해서 자바 객체에 접근할 수 있다.
Repository는 기본 Storage에 접근하기 위해 DAO를 사용할 수 있다. 그리고 Repository는 도메인 개체에 가까운 상위 개념이다.
1:1 테이블로 매핑되는 DAO와 여러 DAO를 통해 데이터를 가져와 도메인 객체를 만들어 제공하는 것이 Repository의 역할이다