본문 바로가기
  • soobinhand의 기술 블로그
Computer Science/디자인 패턴

[디자인 패턴] DAO Pattern

by soobinhand 2021. 10. 29.
728x90

목적

  • 업무와 DBMS를 분리하기 위해 사용됩니다.
  • 업무와 데이터 2계층을 분리하고, 서로 그 상태를 동일하게 유지합니다.

 

문제

  • DB를 사용하는 방법이 변경되면 클라이언트의 수정이 많아집니다.
  • 데이터를 저장하는 방식이 다양합니다. (데이터베이스, 파일, XML, 엑셀 등등)
  • DBMS에 따라 SQL문이 다를 수 있습니다.

 

해결방안

  • 사용 방법의 분리 -> loose coupling, 확장성
  • 데이터를 저장하는 방식을 분리하여 클라이언트의 변경 부분을 최소화 시킵니다.

 

설계

  • DAO
    • 모델에 대한 기본적인 CRUD 인터페이스
  • DAOImpl
    • DAO 인터페이스를 구현한 concrete class
  • Value Object
    • DAO를 사용하여 데이터를 저장하는 단순 POJO(Plain Old Java Object)
728x90

댓글