백엔드/닷넷
서버 아키텍처 - 레포지토리
Jin-Co
2023. 3. 29. 23:38
반응형
비즈니스 로직과 데이터를 처리하는 코드는 분산하는 것이 좋습니다. 엔티티프레임워크의 디비 콘텍스트 사용으로 두 코드의 분산은 가능하지만 프로젝트의 규모가 커지면 컨트롤러에서 디비 콘텍스트를 직접 사용하는 것보다 중간에 레포지토를 생성하여 사용하면 중복코드의 감소와 테스트가 쉬워지는 장점이 있는데요, 오늘은 레포지토리 패턴을 사용하여 애플리케이션을 구성하는 방법을 보겠습니다.
프로젝트 구성하기
프로젝트 생성 및 기본구조 구성
서버 아키텍처 - 프로젝트 분산하기
서버 구조 인터페이스는 서버에 대한 요청과 응답처리하며 데이터베이스에 전송할 쿼리를 작성하고 데이터를 받는 역할을 수행하는 인프라스트럭처 프로젝트에 의존합니다. 인프라스트럭처
jin-co.tistory.com
MVC 패턴구현하기
서버 아키텍처 - 엠브이씨
비즈니스 로직과 데이터를 처리하는 코드는 분산하는 것이 좋습니다. 엔티티프레임워크는 MVC 패턴을 제공하는데요. 사용법을 살펴보겠습니다. 프로젝트 구성하기 프로젝트 생성 및 기본구조
jin-co.tistory.com
레포지토리 패턴 구성하기
레포지토리 생성
레포지토리 클래스를 생성합니다
컨스트럭터를 생성하고 콘텍스트를 추가합니다
private readonly StoreContext _context;
public ItemRepo(StoreContext context)
{
this._context = context;
}
메서드에 필요한 코드를 작성합니다
public List<Item> GetItems()
{
return _context.Items.ToList();
}
컨트롤러 클래스에서 레포지토리 메서드 호출하기
레포지토리 패턴을 사용하지 않은 MVC패턴은 아래와 같은데요. 먼저, 콘텍스트를 지우고 레포지토리를 주입합니다.
private readonly ItemRepo _repo;
public StoreController(ItemRepo repo)
{
this._repo = repo;
}
레포지토리에서 생성한 메서드를 호출합니다.
[HttpGet]
public ActionResult<List<Item>> GetItems()
{
return _repo.GetItems();
}
이상으로 레포지토리 패턴을 사용하는 방법을 보았습니다.
728x90
반응형