본문 바로가기

Web Programming

[ASP.NET MVC 3] 자기혼자 다하는 신비의 마술

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
사실 이전 편에 보여줄려했던 신비의 마술은 동영상에만 살짝 나와있고... 실제로는 지금부터 시작해 보려고 합니다.
일단 이전 내용처럼 구성이 되어있어야 하니 이걸 선행 하도록 합니다. --> 바로가긔 

먼저 이런 형태의 웹 프로그램을 만든다고 가정하고... 이 웹사이트는 한 회사의 조직과 그 구성원들을 관리하는 사이트이며, 여기서 도출 될 수 있는 레코드의 단위인 조직과 구성원은 다음과 같이 한 조직은 여러 구성원을 가지고 있고, 구성원은 여러명이 존재하는 이런 관계를 지을 수 있습니다.
 


1. 일단 DB에 대해서는 생각치 않고 Model 부분부터 작성 해 봅니다.


별 것 없이 위에 정의한 UML 대로 클래스를 구성했고 대부분의 내용은 그냥 제 취향대로 넣어봤습니다.

2. 이제 컨트롤러를 작성합니다.

작성하는 방법도 무지하게 간단합니다. 솔루션 탐색기에서 Controller 추가를 하면 우측과 같은 창이 나옵니다. Team 이라는 모델에 대한 컨트롤러를 작성하고 Member에 대한 컨트롤러도 작성합니다.  사진에서 처럼 설정을 하고 Add 를 눌러줍니다. 주의할 점은 둘다 CompanyContext 라는 같은 것으로 만들어주셔야 한다는 겁니다. Add를 누르면 지혼자 뭔갈 막 합니다.

3. 드디어 신비의 마법이?

컨트롤러도 알아서 생성되었을 뿐만 아니라, View 들도 모두 다 만들어 졌습니다. 결국 사용자는 Model Class 만 만들어 줬을 뿐인데 말이죠.. 이 부분은 좀 신기합니다. 100% 다 원하는대로는 아니겠지만 어느정도 구색을 맞춘 템플릿이 도출된다는 점은 굉장히 편리합니다.
자.. 이제 그럼 DB를 구성해서 테스트를 해봐야할까요?

4. DB에도 신비의 마술이?
- 솔루션 탐색기 > 참조 > 우클릭 > Add Library Package Reference... 를 선택하면 다음과 같은 화면이 나옵니다.


위 스샷대로 EntityFramework 와 EntityFramework.SqlServerCompact 두개다 설치를 해줍니다.

설치가 모두 끝나면.. 솔루션 탐색기 아래 있는 App_Data 라는 폴더를 열어두고 내부를 살펴봅니다. 처음엔 폴더가 비어있습니다.

 
 사이트를 Run 시키고 나면 이렇게 웹사이트가 표시가 됩니다.

 
헉.. 그런데 App_Data 항목에 없던 항목이 생성이 됩니다.
해당 컨트롤러를 호출 해봅니다. http://localhost:xxxx/[컨트롤러이름] 으로 접근합니다. 여기서 컨트롤러명은 Team 이나 Member 가 되겠지요.


 
스샷에서 처럼 Team 레코드를 생성합니다. 해당 스샷은 등록화면인데 CRUD 모든 기능들이 다 구현이 되어있습니다. 물론 자동으로요! 이미 이부분은 컨트롤러를 생성할때 짐작했던 부분입니다. 또 스샷에서 볼 수 있듯 위에 Model 클래스들을 만들때 표시했던 [Required] 에 대한 궁금증이 풀리는건데 자동으로 Vaildation 처리도 해줍니다. 테스트를 위해 Team 두개를 등록해 보았습니다. 잘 나옵니다..

 



이제 팀 구성원을 등록하는 부분인데.. 아주 스마트 하게도 두 Model 간의 관계를 Model 내에서 품은 뜻을 어떻게 이해를 했는지 스샷에서 처럼 Team 을 선택하여 만들어진 팀 레코드와 연관을 지을 수 있게 까지 도와주고 있습니다. 개발자로 하여금 DB에 대한 고민도 덜어주고 소스코딩하는 시간모다 시스템 구성을 어떻게 하고 프로그램을 어떻게 디자인 할 것인지에 집중하도록 도와주는 것 같네요.

 제가 이와 같은 예제들을 수행하면서 실제 코딩한 클래스는 Team, Member 이렇게 둘 뿐 입니다. ASP.NET MVC 라는 것의 위력을 새삼 느끼네요. 다음번엔 Razor 라는 View Engine을 다뤄보도록 하겠습니다.