인프런 커뮤니티 질문&답변

GwangGyu Lee님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

MVC 패턴 - 개요

Repository 관련 질문 드립니다!

작성

·

239

5

안녕하세요 김영한 선생님!

강의 항상 잘 듣고 있습니다ㅎㅎ

MVC 패턴 그림을 보다가 문득 궁금한 점이 생겼는데요,

아직 많은 곳에서 (제가 다니는 회사 포함) DB에 직접 접근하여 데이터를 처리하는 객체를 DAO 라는 용어로 사용하고 있는데,

이게 특정 시점부터 Repository 라는 용어를 사용하는 것으로 권장이 된건지, 아니면 ORM을 어떤걸 사용하느냐에 따라 달라지는건지 궁금합니다!

답변 2

8

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 청록님

둘다 비슷하게 사용되지만 의마상 어디에 초점을 맞추는가에 따라 다음과 같은 차이가 있습니다.

DAO는 데이터 접근 객체 그러니까 DB 같은 곳에 접근하는 객체를 뜻합니다. 일반적으로 DAO안에 DB에 접근하는 코드들이 모여있습니다.

Repository는 도메인 객체를 저장하고 관리하는 저장소 역할을 뜻합니다. 구현 보다는 도메인 객체를 관리하는 역할에 초점이 맞추어져 있습니다.

SQL을 직접 다룰 때는 쿼리 중심이고, 도메인 객체라는 것이 명확하게 없지만,

JPA를 사용하면 아무래도 명확하게 도메인 객체를 정하고(보통 엔티티로) 해당 도메인 객체들을 관리하기 때문에 Repository라는 단어가 더 맞다 생각합니다.

감사합니다.

GwangGyu Lee님의 프로필 이미지
GwangGyu Lee
질문자

자세하게 설명해주신 덕분에 명확하게 2가지 개념을 구분할 수 있을 것 같습니다!

감사합니다 :)

0

저도 이게 궁금햇엇는데 jpa 때문에 사용하는 용어에 가까웟네요 감사합니다.