Spring - 스프링 모델

유재학·2022년 11월 8일
0
post-thumbnail

VO (Value Object)

  • 리터럴 개념
  • 값 그 자체의 의미를 가진 불변 객체이다. (Read-Only)
  • 따라서 getter 메소드만 가지고 있어야 한다.
  • VO 내부에 선언된 필드 모든 값들로 동일 객체인지 판단하기 위해 사용된다.
  • 따라서 equals(), hashCode()를 오버라이드 할 필요가 있다.

DTO (Data Transfer Object)

  • 계층간(Controller, View, Buiseness Layer) 데이터 교환을 위한 JavaBeans
    • DB의 데이터를 Service나 Controller 등으로 보낼 때 사용하는 객체
    • DB의 데이터가 Presentation Logic Tier로 넘어올 때는 DTO로 변환되어 오고간다.
  • DTO는 로직이 없는 순수한 데이터 객체
  • getter/setter 포함
  • 주로 비동기 처리시 많이 사용

DAO (Data Access Object)

  • DB의 데이터에 접근하기 위한 객체
  • 직접 DB에 접근하여 삽입/ 삭제/ 조회 등 조작하는 기능 수행
  • DB 접근을 위한 로직과 비즈니스 로직을 분리하기 위함
  • PA, Hibernate, Mybatis 등의 Persistence Framework를 통해 접근

Entity

  • 가장 Core한 클래스
  • Domain Logic
  • 실제 데이터베이스와 1:1로 매칭되는 클ㄹ래스
  • DB테이블 내에 존재하는 컬럼만을 속성(필드)로 가져야 함
  • 테이블 내에 없는 컬럼을 가져오면 안됨, 상속, 구현 안됨
  • 최대한 외부에서 Entity의 getter/setter를 사용하지 않게 클래스 내부에서 필요한 로직을 구현해야 함
  • setter 무분별하게 사용 금지 -> 객체의 일관성을 보장할 수 없기 때문
profile
github : https://github.com/kiaeh2323 , email : kiaeh9269@gmail.com

0개의 댓글