파트 4: 모델 추가하기

등록일시: 2015-05-04 08:00,  수정일시: 2015-05-04 08:00
조회수: 11,514
이 문서는 ASP.NET MVC 기술을 널리 알리고자 하는 개인적인 취지로 제공되는 번역문서입니다. 이 문서에 대한 모든 저작권은 마이크로소프트에 있으며 요청이 있을 경우 언제라도 게시가 중단될 수 있습니다. 번역 내용에 오역이 존재할 수 있고 주석은 번역자 개인의 의견일 뿐이며 마이크로소프트는 이에 관한 어떠한 보장도 하지 않습니다. 번역이 완료된 이후에도 대상 제품 및 기술이 개선되거나 변경됨에 따라 원문의 내용도 변경되거나 보완되었을 수 있으므로 주의하시기 바랍니다.

계속해서 이번에는 데이터베이스에 저장된 영화 정보를 관리하기 위한 클래스를 추가해보도록 하겠습니다. 이 클래스가 ASP.NET MVC 응용 프로그램의 "모델(Model)" 역활을 수행하게 될 것입니다.

그리고 이 모델 클래스를 정의하고 사용하기 위해서 Entity Framework라는 .NET 프레임워크의 데이터-접근 기술을 사용하도록 하겠습니다. Entity Framework는 (일반적으로 EF라고 부르는 경우가 많습니다) Code First 라는 이름의 개발 패러다임을 지원해줍니다. Code First 기법을 사용하면 간단한 클래스(이런 클래스들을 POCO 클래스라고 하는데, 이는 "Plain-Old CLR objects"의 약자입니다)들을 작성해서 모델 개체들을 생성할 수 있습니다. 그런 다음 이 클래스들에 기반해서 실시간으로 데이터베이스를 생성하게 되는데, 이런 과정을 통해서 매우 깔끔하고 신속한 개발 워크플로우를 경험할 수 있습니다. 그러나 만약 여러분이 데이터베이스를 먼저 생성해야만 하는 상황이더라도 계속 본 자습서를 통해서 MVC와 EF 응용 프로그램 개발에 대한 다양한 정보들을 알아보시기 바랍니다. 그리고 EF의 Database First 방식에 관해서 설명하고 있는 Tom Fizmakens의 ASP.NET Scaffolding 자습서를 살펴보면 많은 도움이 될 것입니다.

모델 클래스 추가하기

먼저 솔루션 탐색기(Solution Explorer)에서 Models 폴더를 마우스 오른쪽 버튼으로 클릭하고 추가(Add)를 선택한 다음, 클래스(Class)를 선택합니다.

클래스 이름을 "Movie"로 지정하고 추가(Add) 버튼을 클릭합니다.

그런 다음 만들어진 Movie 클래스에 다음과 같이 다섯 개의 속성들을 추가합니다:

using System;

namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }
}

Movie 클래스는 데이터베이스의 영화 정보를 나타내기 위해서 사용됩니다. 각각의 Movie 개체 인스턴스는 데이터베이스 테이블의 로우들에 해당하며 Movie 클래스의 각 속성들은 테이블의 컬럼들과 매핑됩니다.

계속해서 이 파일에 다음과 같이 MovieDBContext 클래스를 추가합니다:

using System;
using System.Data.Entity;

namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet<Movie> Movies { get; set; }
    }
}

지금 추가한 MovieDBContext 클래스는 데이터베이스로부터 Movie 클래스의 인스턴스를 조회하여 가져오고, 저장하고, 갱신하는 작업을 처리하는 Entity Framework 영화 데이터베이스의 컨텍스트입니다. 이 코드에서 MovieDBContext 클래스가 Entity Framework가 제공해주는 DbContext 기본 클래스를 상속받고 있는 점에 주목하시기 바랍니다.

이처럼 DbContext 클래스나 DbSet 클래스를 참조하려면 파일 상단에 다음과 같은 using 문을 추가해야 합니다:

using System.Data.Entity;

직접 using 문을 입력할 수도 있지만, 구불구불한 붉은 색 선으로 밑줄처진 코드를 마우스 오른쪽 버튼으로 클릭한 다음, 확인(Resolve)을 선택하고 다시 using System.Data.Entity;를 선택하면 using 문이 자동으로 입력됩니다.

노트: 뿐만 아니라 사용하지 않는 using 문들 역시 손쉽게 제거할 수 있습니다. 클래스 파일 내부를 마우스 오른쪽 버튼으로 클릭한 다음, Using 구성(Organize Usings)을 선택하고 다시 사용하지 않는 Using 제거(Remove Unused Usings)를 선택하면 됩니다.

본문에서는 MVC의 가장 마지막 구성 요소이자 가장 중요한 구성 요소인 모델을 추가해봤습니다. 다음 과정에서는 데이터베이스 연결 문자열에 관해서 살펴보도록 하겠습니다.

이 기사는 2013년 10월 17일에 최초 작성되었습니다.