How To Create a Microsoft Azure-Based MVC Application
"클라우드"는 한동안 유행어였습니다. 그렇다면 개발자로서 이는 어떤 의미일까요? 우선, 인-프레미스 애플리케이션용으로 이미 작성하고 있는 것과 클라우드용으로 매우 다른 코드를 작성할 필요가 없습니다.
"클라우드"는 한동안 유행어였습니다. 그렇다면 개발자로서 이는 어떤 의미일까요? 우선, 인-프레미스 애플리케이션용으로 이미 작성하고 있는 것과 클라우드용으로 매우 다른 코드를 작성할 필요가 없습니다.
MVC 응용 프로그램에 이미 익숙하다고 가정해 보겠습니다. 이것이 사실이라면 이 게시물에서는 클라우드를 위한 구축이 다른 개발과 크게 다르지 않다는 것을 보여주는 데 중점을 둘 것입니다. 단계별 접근 방식을 따라 클라우드(데이터 및 애플리케이션 모두)에서 완전히 호스팅되는 엔드 투 엔드 MVC 애플리케이션을 만듭니다.
SQL Azure에서 데이터베이스 설정
먼저 클라우드에 데이터베이스를 설정합니다. SQL Azure를 클라우드 플랫폼으로 사용할 예정이며 계속해서 School 데이터베이스를 만들어 보겠습니다. Azure에서 이를 만들려면 다음을 수행해야 합니다.
- Login to Microsoft Azure portal
- 측면 탭에서 SQL DATABASES 옵션을 선택합니다.
- 하단에서 NEW(새로 만들기) 버튼을 클릭합니다.

여기에서 새 데이터베이스를 만들 수 있는 옵션을 얻을 수 있습니다. 계정을 만들려면 다음 정보를 제공해야 합니다.
- 데이터베이스의 이름입니다. 여기서는 Microsoft에서 제공하는 School 데이터베이스를 사용하므로 데이터베이스 이름으로 "School"을 지정해야 합니다.
- 데이터베이스를 만들 Azure 구독을 선택합니다.
- 기존 서버를 선택하거나 새 데이터베이스 서버를 만들 수 있습니다. 새 데이터베이스 서버를 만들려면 지역, 로그인 이름 및 비밀번호와 같은 정보를 제공해야 합니다.

CREATE SQL DATABASE 옵션을 클릭하면 School 데이터베이스와 새 데이터베이스 서버가 생성됩니다. 데이터베이스를 성공적으로 만든 후에는 로컬 개발 컴퓨터를 SQL Azure 데이터베이스 서버에 연결할 수 있도록 데이터베이스 서버에 대한 방화벽 규칙을 구성해야 합니다. 방화벽 규칙을 구성하려면이 IP 주소에 대한 Windows Azure 방화벽 규칙 설정을 클릭합니다.

여기에 현재 IP 주소가 기존 방화벽 규칙에 추가되지 않았다는 정보가 표시됩니다. 예를 클릭하여 현재 IP 주소를 데이터베이스 서버의 기존 방화벽 규칙에 추가합니다.

다음으로 SQL Server 관리 스튜디오에서 새로 생성된 클라우드 데이터베이스를 연결하여 데이터가 포함된 테이블을 생성하는 스크립트를 실행할 수 있습니다. 이렇게 하려면 SSMS를 시작하고 다음 정보를 제공해야 합니다.
- SQL Azure 데이터베이스 서버의 이름입니다. 포털에서 데이터베이스 서버 이름을 찾을 수 있습니다.
- Choose authentication as SQL Server authentication
- 사용자 이름 및 암호

SQL Azure 데이터베이스 서버에 성공적으로 연결되면 아래와 같이 SSMS에서 연결을 볼 수 있습니다.

Microsoft에서 제공하는 School 데이터베이스를 사용하여 테이블과 데이터를 만들려고 합니다. 로컬 데이터베이스 서버에 제공된 스크립트에서 만든 학교 데이터베이스가 이미 있으므로 다음으로 SQL Azure 데이터베이스 서버에서 실행할 수 있는 스크립트를 만들어야 합니다. 이를 만들려면 데이터베이스를 마우스 오른쪽 버튼으로 클릭한 다음 작업을 선택한 다음 스크립트 생성을 선택합니다. 스크립트 생성 창에서 전체 데이터베이스 및 모든 데이터베이스 개체 스크립팅을 선택합니다.

다음 화면에서 고급 옵션을 클릭합니다.

고급 창에서 다음 값을 변경합니다.
스크립팅할 데이터 유형: 스키마 및 데이터
Script for database engine type: SQL Azure database

새 쿼리 창에 저장할 옵션을 선택하고 다음을 클릭합니다. 생성된 스크립트가 생성되고 SSMS 내의 새 쿼리 창에서 열리는 것을 확인할 수 있습니다. SQL Azure 데이터베이스 연결을 선택하고 스크립트를 실행합니다. 데이터와 함께 테이블이 SQL Azure 데이터베이스 서버에 있는 School 데이터베이스에 만들어졌음을 알 수 있습니다.

클라우드에 있는 School 데이터베이스를 만들었습니다. 다음 섹션에서는 클라우드 데이터베이스를 사용하여 MVC 애플리케이션을 만듭니다.
MVC 응용 프로그램 만들기
이 섹션에서는 Azure 웹 사이트에 게시할 MVC 응용 프로그램을 만들고 설정합니다. MVC 템플릿을 선택하면 됩니다.

이 응용 프로그램에 대한 인증을 원하지 않습니다. 이를 구성하려면 Change Authentication(인증 변경) 옵션을 클릭하고 대화 상자에서 아래와 같이 No Authentication(인증 없음)을 선택합니다.

클라우드에서 애플리케이션을 호스팅하려고 합니다. 정확히 말하면 응용 프로그램은 Azure 웹 사이트에서 호스팅됩니다. 이를 구성하려면 Host in the cloud(클라우드의 호스트) 확인란을 선택하고 드롭다운에서 Web Site(웹 사이트)를 선택합니다.

다음으로 계정을 인증하라는 메시지가 표시됩니다. 사용자 이름과 암호를 제공하여 자신을 인증합니다.

다음 화면에서 다음을 구성해야 합니다.
- 사이트 이름입니다. 이 이름은 Azure 서버에서 호스팅될 때 응용 프로그램에 액세스하기 위한 URL로 사용됩니다.
- 지역: 응용 프로그램이 호스팅될 Azure 서버 지역입니다.
- 데이터베이스 서버입니다. 이 예제에서는 School 데이터베이스가 있는 것과 동일한 데이터베이스 서버를 선택합니다.
- 데이터베이스 서버에 연결하기 위한 암호입니다.

Azure 서비스 및 데이터베이스 서버를 사용하여 인증에 성공하면 Visual Studio에서 응용 프로그램이 준비되었다는 메시지가 표시됩니다.

응용 프로그램 빌드
이제 데이터베이스를 설정하고 Azure 웹 사이트에서 호스팅할 MVC 응용 프로그램을 만들었습니다. 이제 애플리케이션을 빌드해 보겠습니다.
Adding the data model
SQL Azure에서 호스팅되는 School 데이터베이스를 사용하여 데이터 모델을 만드는 것부터 시작하겠습니다. 엔터티 데이터 모델을 사용하여 ADO.NET 모델을 만듭니다. MVC 프로젝트에서 모델을 만들려면 Infrastructure 라는 폴더를 만듭니다. infrastructure 폴더를 마우스 오른쪽 버튼으로 클릭하고 새 항목 추가를 선택합니다. 새 항목 추가 대화 상자의 데이터 탭에서 ADO.NET 엔터티 데이터 모델을 선택하고 이름을 SchoolModel로 지정합니다.

다음 화면에서 데이터베이스의 EF 디자이너 옵션을 선택합니다.

새 연결을 클릭하고 새 연결 대화 상자에서 다음 정보를 제공합니다.
- SQL Azure 데이터베이스 서버 이름입니다. 이전 섹션에서 이 서버를 만들었습니다
- Select SQL Server Authentication option
- SQL Azure 데이터베이스 서버 사용자 이름 및 암호를 제공합니다.
- 드롭다운에서 School 데이터베이스를 선택합니다.

다음 대화 상자에서 예 옵션을 선택하고, 연결 문자열에 중요한 데이터를 포함하고, 연결 문자열의 기본 이름을 그대로 둡니다.

Person 테이블로 작업하겠습니다. 따라서 Person 확인란을 클릭하고 다른 확인란을 기본값으로 둡니다.

Finish를 클릭하면 아래와 같이 데이터 모델이 생성됩니다.

MVC 애플리케이션에서 데이터 모델을 성공적으로 만들고 추가했습니다. SchoolModel은 이제 SQL Azure의 클라우드 데이터베이스에 연결되었습니다.
읽기 및 쓰기 작업이 있는 Controller 추가
다음으로 Entity 프레임워크를 사용하여 뷰가 있는 컨트롤러를 추가합니다. MVC 스캐폴딩을 사용하여 Person 테이블에서 CRUD 작업을 수행하는 뷰를 만듭니다. 컨트롤러를 추가하려면 컨트롤러 폴더를 마우스 오른쪽 버튼으로 클릭하고 아래와 같이 Entity Framework 옵션을 사용하여 뷰가 있는 MVC 5 컨트롤러를 선택합니다.

다음 대화 상자에서 모델과 컨텍스트 클래스를 선택해야 합니다. 여기서는 Person을 모델 클래스로, SchoolEntities를 DataContext 클래스로 선택합니다. 데이터베이스 작업을 방해하는 보기를 만들려면 다른 확인란이 선택되어 있는지 확인합니다.

이 단계에서는 개인 테이블에서 CRUD 작업에 대한 컨트롤러와 뷰를 만들었습니다. 솔루션 탐색기에는 다음 파일이 있어야 합니다.

이 시점에서 응용 프로그램을 실행하면 SQL Azure에 있는 개인 테이블에서 데이터를 가져올 수 있습니다. 새 데이터를 만들고 데이터를 편집 및 삭제할 수도 있습니다.

응용 프로그램을 더욱 몰입감 있게 만들기
이 예에서는 Home(홈), About(정보) 및 Contact View(연락처 보기)가 필요하지 않습니다. 또한 응용 프로그램의 기본 URL에 있는 사람 목록을 원한다고 가정해 보겠습니다.
먼저 홈 컨트롤러를 제거하고 View 폴더와 layout.cshtml 파일에서 div를 navbar-header 클래스로 주석 처리하여 Home 하위 폴더를 삭제해 보겠습니다. 홈 컨트롤러와 보기가 삭제되면 App_Start 폴더에서 RouteConfig.cs 열고 아래와 같이 경로에서 기본 컨트롤러를 School로 변경합니다.

이제 응용 프로그램 생성이 완료되었습니다. F5 키를 눌러 응용 프로그램을 로컬로 실행하고 테스트합니다. 아래와 같이 응용 프로그램이 실행되는 것을 볼 수 있어야 합니다.

응용 프로그램 게시
앱을 게시하려면 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 게시를 클릭합니다. 연결 대화 상자에서 값의 유효성을 검사하고 다음을 클릭합니다.

설정 대화 상자에서 데이터베이스에 대해 SchoolEntities 연결 문자열을 선택하고 다음을 클릭합니다.

마지막으로 게시를 클릭하여 Azure 웹 사이트에 응용 프로그램을 게시합니다.

오류가 발생하면 관리 포털을 열고 데이터베이스 서버에 대해 허용된 서비스에서 Windows Azure 서비스 옵션이 예로 설정되어 있는지 확인할 수 있습니다. 아래와 같이 Yes로 설정해야 합니다.

결론
이제 Azure 웹 사이트에서 호스팅되는 MVC 응용 프로그램에서 CRUD 작업을 수행하고 SQL Azure에서 호스팅되는 데이터베이스에 액세스 할 수 있습니다. 이 게시물에서 우리는 다음에 대해 배웠습니다.
- SQL Azure에서 데이터베이스 만들기
- 로컬 데이터베이스 서버에서 SQL Azure 데이터베이스 서버로 데이터 마이그레이션
- Entity Framework를 사용하여 MVC 응용 프로그램에서 클라우드의 데이터 사용
- Azure 웹 사이트에서 MVC 응용 프로그램 호스트
- Azure 웹 사이트에 응용 프로그램을 게시합니다.
이 기사가 유용하다는 것을 알게 되었기를 바랍니다 – 읽어 주셔서 감사하고 즐거운 코딩 되세요!
