본문 바로가기

백엔드/닷넷

서버 아키텍처 - 엠브이씨

반응형

비즈니스 로직과 데이터를 처리하는 코드는 분산하는 것이 좋습니다. 엔티티프레임워크는 MVC 패턴을 제공하는데요. 사용법을 살펴보겠습니다.

프로젝트 구성하기

프로젝트 생성 및 기본구조 구성

 

서버 아키텍처 - 프로젝트 분산하기

서버 구조 인터페이스는 서버에 대한 요청과 응답처리하며 데이터베이스에 전송할 쿼리를 작성하고 데이터를 받는 역할을 수행하는 인프라스트럭처 프로젝트에 의존합니다. 인프라스트럭처

jin-co.tistory.com

패키지 설치

데이터베이스와 연결을 위한 설정을 해 줄 패키지가 필요한데요. 검색창에 누겟갤러리를 검색하여 엽니다.

NuGet: Open NuGet Gallery

▶ 설치할 패키지

패키지를 설치할 때 주의할 점은 패키지 버전이 반드시 .NET의 버전과 같아야 한다는 점입니다. 예를 들어 .NET 7의 경우 7.으로 시작하는 패키지를 다운로드하여야 합니다.

Microsoft.EntityFrameworkCore.Sqlite

시퀄라이트 데이터베이스 패키지로 시퀄라이트 사용을 가능하게 해 줍니다. 해당 패키지를 데이터를 다루는 인프라스트럭처 폴더에 설치합니다

Microsoft.EntityFrameworkCore.Design

코드 우선 데이터베이스 방식을 사용하기 위해서 필요한 패키지로, API 폴더에 설치합니다

마이그레이션에 필요한 패키지를 API 폴더에 설치합니다.

dotnet-ef

 

모델생성

코어 프로젝트에 개체를 담을 폴더를 생성하고

아래와 같이 개체 클래스를 추가합니다

콘텍스트 생성하기

인프라스트럭쳐 프로젝트에 콘텍스트를 담을 폴더를 생성하고

콘텍스트 클래스를 생성

콘텍스트 클래스에 디비콘텍스트를 부모 클래스로 추가한 뒤

아래처럼 사용할 개체를 속성으로 추가합니다

using Core.Entities;
using Microsoft.EntityFrameworkCore;

namespace Infrastructure.Data
{
  public class StoreContext : DbContext
  {
    public StoreContext(DbContextOptions options) : base(options)
    {
    }

    public DbSet<Item> Items { get; set; }
  }
}

콘텍스트 서비스 등록

 

시퀄라이트 사용하기 - 코드 우선 방식

.NET은 데이터베이스를 생성할 때 작성된 코드를 통해 데이터베이스를 생성하는 Code first (코드우선) 방식과 데이터베이스의 데이터를 바탕으로 코드를 작성하는 data first (데이터 우선) 방식을 제

jin-co.tistory.com

마이그레이션

 

시퀄라이트 사용하기 - 코드 우선 방식

.NET은 데이터베이스를 생성할 때 작성된 코드를 통해 데이터베이스를 생성하는 Code first (코드우선) 방식과 데이터베이스의 데이터를 바탕으로 코드를 작성하는 data first (데이터 우선) 방식을 제

jin-co.tistory.com

데이터베이스 생성

 

시퀄라이트 사용하기 - 코드 우선 방식

.NET은 데이터베이스를 생성할 때 작성된 코드를 통해 데이터베이스를 생성하는 Code first (코드우선) 방식과 데이터베이스의 데이터를 바탕으로 코드를 작성하는 data first (데이터 우선) 방식을 제

jin-co.tistory.com

컨트롤러 생성하기

에이피아이 폴더에 새로운 컨트롤러로 사용할 새로운 클래스를 생성합니다

컨트롤러 클래스에 컨트롤러 베이스를 부모 클래스로 추가하고

아래 데코레이터로 컨트롤러 경로를 설정

[ApiController]
[Route("[controller]")]

다음으로 컨스트럭터를 생성하고 콘텍스트를 아래와 같이 인젝션 합니다

private readonly StoreContext _context;
public StoreController(StoreContext context)
{
  this._context = context;
}

사용하기

데이터베이스에 접근은 컨트롤러 클래스에 주입한 콘텍스트를 통해서 합니다. 예를 들어 아이템 목록을 가져오는 코드는 아래와 같습니다

[HttpGet]
public ActionResult<List<Item>> GetItems()
{
  return _context.Items.ToList();
}

이상으로 엠브이씨 패턴을 사용하는 방법을 보았습니다


참고

https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm

 

Design Patterns - MVC Pattern

Design Patterns MVC Pattern - MVC Pattern stands for Model-View-Controller Pattern. This pattern is used to separate application's concerns.

www.tutorialspoint.com

 

728x90
반응형