
일반적 의미 (저장소)
소프트웨어 설계 패턴에서의 리포지터리
리포지터리 패턴은 데이터 접근을 추상화한 설계 방식이다.
데이터베이스, API, 파일 등 데이터의 출처에 상관없이 데이터를 가져오고 저장하는 작업을 담당하는 계층을 말한다.
C (Create) : 새로운 데이터를 생성.
(새 유저를 추가)
R (Read) : 데이터를 읽거나 조회.
(특정 유저 정보를 가져온다)
U (Update) : 기존 데이터를 수정.
(유저의 정보를 수정 및 업데이트)
-D (Dlelte) : 데이터를 삭제.
(유저 정보 삭제)
리포지터리와 CRUD를 같이 포스팅한 이유는 깊은 관계가 있기 때문이다.
리포지터리는 주로 CRUD 작업을 추상화해서 처리하는 역할을 맡는다.
리포지터리 패턴에서는 데이터베이스 작업(CRUD)을 직접 노출하지 않고, 특정 메서드를 통해 작업을 처리한다.
@UsereRepository에는 다음과 같은 메서드가 있다.
createUser(user)
getUserById(id)
updateUser(user)
DeleteUser(id)
스프링부트에서 엔티티(Entity)로 테이블을 구성하여 데이터를 관리할 수 있지만, 테이블의 데이터를 저장, 조회, 수정, 삭제 등을 할 수가 없기 때문에 이와 같은 데이터를 관리하려면 데이터베이스와 연동하는 리포지터리가 필요하다.
A) 둘은 서로 관련은 있지만, 다르다.
리포지터리는 데이터를 다루는 소프트웨어 설계의 한 부분이다. 데이터베이스와 같은 저장소에 직접 연결돼서 데이터를 다룬다.
리포지터리는 서버의 일부로 동작하며 클라이언트와 직접 소통하지 않는다.
반대로 서버는 클라이언트의 요청을 처리하고 응답을 보내는 역활을 한다. 클라이언트가 요청한 데이터를 리포지터리와 같은 내부 구성 요소를 사용해 처리한다.

A) 서버는 클라이언트로부터 요청을 받아 처리하고, 결과를 다시 돌려주는 역할을 한다. 리포지터리는 서버로부터 받은 요청을 처리하고 데이터베이스와 직접적으로 상호작용한다.
예를 들어,
1. 게시판 목록 보기
손님(클라이언트)가 종업원(서버)에게 "김치볶음밥 주세요" (데이터요청).
종업원(서버)가 주방(리포지터리)에게 김치볶음밥 요청
주방(리포지터리)에서 요리를해서 종업원(서버)에게 전달.
종업원(서버)는 손님(클라이언트)에게 김치볶음밥 전달.
종업원은 영어로도 서버다. Server..
:p