Spring
Model과 Entity 차이
Dev Park
4/18/2024
27 views
서론
DTO, 엔티티, 모델은 데이터베이스에 관련된 용어들이다.
이중에서 DTO는 역할이 분명한데 엔티티와 모델은 명확하게 구분하기 어렵다.
오늘은 이 둘의 역할에 대해서 정확하게 알아보자.
Entity
Entity는 데이터베이스의 특정 테이블과 매핑되는 클래스를 나타낸다.
주로 데이터베이스의 테이블 스키마를 정의하며, 해당 테이블의 레코드를 나타내는 객체이다.
예를 들어, JPA에서 Entity는 아래와 같이 적을 수 있다.
JAVA1@Data 2@Setter 3@Getter 4@NoArgsConstructor 5@AllArgsConstructor 6@Entity(name = "users") 7public class UserEntity { 8 @Id 9 @GeneratedValue(strategy = GenerationType.IDENTITY) 10 private long userId; 11 12 @Column(name = "phone_number", nullable = false) 13 private String phoneNumber; 14 15 @Column(name = "password", nullable = false) 16 private String password; 17 18 @Column(name = "name", nullable = false) 19 private String name; 20 21 @CreationTimestamp 22 private LocalDateTime createAt = LocalDateTime.now(); 23 24 @UpdateTimestamp 25 private LocalDateTime updateAt = LocalDateTime.now(); 26}
이렇게 유저와 관련된 데이터베이스 스키마를 객체의 형태로 나타낸게 Entity이다.
Model
일반적으로 데이터를 처리하는 일련의 규칙과 메소드를 정의하는 부분을 Model이라고 한다.
데이터베이스의 CRUD 작업을 처리하는 메서드와 기능을 가지고 있다.
자바에서는 Repository로 모델의 기능을 구현한다.
Java1public interface UserRepository extends JpaRepository<UserEntity, Long> { 2 Optional<UserModel> findUserModelByPhoneNumber(String phoneNumber); 3}