관리 메뉴

나의 개발일지(김지헌)

항해 99 30일차 10/18일 본문

항해 99

항해 99 30일차 10/18일

코딩이좋아요 2022. 10. 18. 23:44

저장소 

더보기

저장소 계층(Repository Layer) 이란?

저장소 계층(Repository Layer)이란 데이터 엑세스 계층(Data Access Layer)이라고도 불리는데요 대표적으로 Database와 관련된 작업을 수행하는 계층입니다.

모든 데이터가 Memory상에 존재하는 것처럼가정해 데이터 접근과 관련된 세부 사항을 감춥니다

대표적인 저장소 계층의 메소드

add(): 새 원소를 저장소에 추가합니다.

get(): 이전에 추가한 원소를 저장소에서 가져옵니다.

저장소 계층을 구현했을 때 데이터를 저장하는 방법을 더 쉽게 변경할 수 있고, 테스트 코드 작성시 가짜 저장소(Mock Repository)를 제공하기가 더 쉬워집니다.

어플리케이션의 다른 계층에서는 저장소의 세부 사항이 어떤 방식으로 구현되어 있더라도 영향을 받지 않습니다.

객체 지향의 개념 중에서 추상화(Abstraction)와 관계가 있습니다.

저장소 계층은 데이터 저장소를 간단히 추상화한 것으로 이 패턴을 사용하면 모델 계층과 데이터 계층을 분리할 수 있습니다.

 

장점

모델과 인프라에 대한 사항을 완전히 분리했기 때문에 단위 테스트(Unit test)를 위한 가짜 저장소(Fake Repository)를 쉽게 만들 수 있습니다.

도메인 모델을 미리 작성하면 처리해야 할 비즈니스 문제에 더 잘 집중할 수 있다.

접근 방식을 바꾸고 싶을 때 외래키나 마이그레이션등을 염려하지 않고 모델에 반영할 수 있다.

객체를 테이블에 매핑하는 과정을 원하는 대로 제어할 수 있어서 DB 스키마를 단순화할 수 있다.

저장소 계층에 ORM을 사용하면 필요할 때 MySQLPostgres와 같이 DB를 서로 바꾸기 쉬워집니다.

 

단점

저장소 계층이 없더라도 ORM이 어느 정도 (모델과 저장소의) 결합을 완화시켜줍니다.

ORM 매핑을 수동으로 하려면 개발 코스트가 더욱 소모됩니다.

 
 

DB 관리 (연결, 해제, 자원 관리)

DB CRUD 작업 처리

 

 

지금은 Layered Architecture Pattern으로 코드를 짜고 있고 포스트, 로그인, 회원가입 까지 작성하고 코멘트 코드를 설계하고 있다

'항해 99' 카테고리의 다른 글

항해 99 32일차 10/20일  (0) 2022.10.21
항해 99 31일차 10/19일  (0) 2022.10.19
항해 99 29일차 10/17일  (0) 2022.10.18
항해 99 28일차 10/16일  (0) 2022.10.16
항해 99 27일차 10/15일  (0) 2022.10.16