강좌

|  다양한 분야에 다소 전문적인 도움이 되는 강좌들입니다.

조회 수 242 추천 수 1 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form

본격적으로 작업에 들어가기 앞서, MVC가 무엇인지에 대해 알 필요가 있습니다.

MVC란 각각 Model, View, Controller 의 머릿글자를 따서 만들어진 용어입니다. 

데이터를 기술하는 Model과, Model로 부터 사용자에게 보여지는 부분을 정의하는 View, 그리고 각각의 처리에 대해 기술하는 Controller가 합쳐져 하나의 애플리케이션을 구성합니다.

기존의 사이트는 이들 역할을 하는 요소들이 한 데 모여있어 코드의 유지 보수가 많이 어려웠습니다.  ASP만 해도 컨트롤러 역할을 하는 코드와 뷰 역할을 하는 코드가 뒤죽박죽 섞여 있었고, 나름 코드를 분리하는 Code Behind라는 개념을 도입한 ASP.NET Web Form도 있었지만, 이 역시 MVC의 장점을 가지기에는 다소 어려웠던것이 현실입니다. 그러므로 코드의 유지보수 난이도 또한 같이 상승할 수 밖에 없었습니다.

이에 MVC 패턴을 적용한 프레임워크들이 등장하게 됩니다. 대표적으로 Java의 Spring Framework, PHP의 CodeIgniter/Laravel 등이 그러하고, 이 강좌에서 다루는 ASP.NET Core MVC 또한 MVC 아키텍쳐를 따르고 있습니다.




참고로 본 프로젝트에서 HTTP2를 사용할 예정이었지만, SSL 인증서를 받기 위해 도메인 주소가 필요하고, 또한 nginx 설정이 다소 길어지므로 원래 주제에 집중하기로 하였습니다. 해당 내용에 대해서는 모든 강좌가 끝난 후 부록으로 싣도록 하겠습니다.




이제! 드디어 ASP.NET Core MVC를 주무를 때가 왔습니다. 적당한 위치에 적절한 디렉토리를 만든 후(여기서 저는 github의 레포지토리 이름과 동일한 studyforus-aspnet-core-lect 라고 하였습니다.), 다음 명령을 내려주세요.

$ dotnet new mvc

그럼 몇줄의 메세지가 뜨고, Restore succeeded. 가 표시되면 완료된 것입니다. 이후 디렉토리를 확인해보면 다음과 같은 디렉토리/파일을 확인하실 수 있습니다. 그 중 신경써야 할 파일/디렉토리만 설명해보면..

obj
Controllers -> 컨트롤러 코드가 들어갈 디렉토리입니다.
Properties
Views -> 뷰 파일(.cshtml) 파일들이 들어갈 디렉토리입니다.
Models -> 모델 파일들이 들어갈 디렉토리입니다.
wwwroot -> 정적 파일(주소로 직접 접근할 수 있는) 파일들이 담긴 디렉토리입니다.
appsettings.Development.json -> 개발모드에서 사용하는 설정들이 기록된 파일입니다.
appsettings.json -> 전체 웹사이트의 설정들이 기록된 파일입니다.
Program.cs
Startup.cs -> 시작 설정을 수행하는 코드가 담긴 파일입니다.
studyforus-aspnet-core-lect.csproj

정도가 되겠습니다.

이 상태에서 다음 명령을 실행하면...

$ dotnet run

Using launch settings from C:\Users\pknowledge\studyforus-aspnet-core-lect\Properties\launchSettings.json...
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]
      User profile is available. Using 'C:\Users\pknowledge\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
Hosting environment: Development
Content root path: C:\Users\pknowledge\studyforus-aspnet-core-lect
Now listening on: https://localhost:5001
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

저는 윈도우에서 이 명령을 실행했기 때문에 경로가 윈도우 식으로 표시되지만, 다른 운영체제에서도 동일하게 작동하므로 크게 신경쓸 필요는 없습니다.

한번 웹 브라우저를 열고 localhost:5000 을 입력해보세요. 페이지가 표시되면 성공입니다. 만일 https 페이지로 연결되면서 인증서 오류를 내뿜는 경우, Properties/launchSettings.json 파일을 열어 다음 부분을 이렇게 고쳐주세요.

    "studyforus_aspnet_core_lect": {
         "commandName": "Project",
         "launchBrowser": true,
         "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }

그리고난 뒤 기존의 dotnet 을 종료하고 dotnet run을 다시 한 후 페이지에 접속하면...



사실, https://localhost:5001 로도 (인증서 오류만 무시한다면) https 웹사이트 개발이 가능하지만, 강좌 초반에서도 말했듯 HTTP2 및 SSL을 사용하지 않을 것이므로 해당 부분에 대한 설명은 생략하고, 이후 부록에서 다루도록 하겠습니다. 




축하합니다! 처음으로 ASP.NET Core 홈사이트를 구동하는데 성공하셨습니다.

다음 강좌에서는 어떤 웹사이트를 만들게 될 지, EF(Entity Framework)에 대해 간략하게 짚고 넘어가 보겠습니다.

오늘도 수고하셨습니다. 다음 강좌에서 뵙겠습니다.

  • profile
    이니스프리 2018.09.07 19:54
    감사합니다! 주말에 시간을 내서 연습해봐야겠네요~ ^^
  • profile
    맛스타 2018.09.07 23:47
    저도 연습해봐야겠네요.

    국내 많은 사이트들이 WAS로 ASP를 선택하는데에는 이유가 있겠죠 ㅎㅎ
  • profile
    joyful 2018.09.09 08:53
    딱 알고있눈게 MVC밖에 없네요

강좌

다양한 분야에 다소 전문적인 도움이 되는 강좌들입니다.

List of Articles
번호 게시판 제목 글쓴이 날짜 조회 수
공지 앞으로 ssh 사용시 한글 사용이 가능합니다. 7 마스터 2018.10.12 4238
공지 접속 불가 사태 수습은 진행중입니다. 35 마스터 2018.10.05 4452
공지 회원 전용 페이지가 생겼습니다. 10 file 마스터 2018.03.20 5367
86 강좌 쿠키 삭제하기 맛수타 2017.06.12 431
85 강좌 윈도우 10 정품을 싸게 구매해보자! 31 file title: 도밥위키!Dobob 2017.07.08 7797
84 강좌 웹호스팅에 쉽게 Let's Encrypt 설치하기 (1) - ZeroSSL 이용하기 6 title: YJSoft 로고YJSoft 2017.07.12 1808
83 강좌 이것만 알면 호스팅 초보도 무료로 할 수 있습니다! 19 기특한크리퍼 2017.09.26 689
82 강좌 간단한거지만 윈도우 공유폴더 만들기 막시모:) 2017.10.05 932
81 강좌 [시놀로지NAS] 로그아웃 타이머 시간 늘리기 3 막시모:) 2017.10.05 551
80 강좌 현재 내 컴퓨터에서 공유되어있는 공유폴더 확인하기 file 아이노 2017.10.14 865
79 강좌 밑에 공유 폴더 시리즈가 있길래 공유 폴더 팁 2 맛스타 2017.10.14 551
78 도다의 강좌 안녕하세요. 6 title: 은메달도다 2017.10.21 444
77 맛스타의 Study For Us 맛스타의 Study For Us 입니다. 5 맛스타 2017.10.21 559
76 신쓸재수 [신쓸재수] 소개합니다! 2 file title: 열려라 맛스타의 자물쇠TVJ 2017.10.22 1119
75 신쓸재수 첫번째 이야기. 다음 팟 플레이어를 트위치 플레이어로! 8 file title: 열려라 맛스타의 자물쇠TVJ 2017.10.22 3171
74 준그루의 소소한 강좌 준그루의 잡다하고 소소한 강좌 -오프닝- 3 준그루 2017.10.22 100
73 신쓸재수 두번째 이야기. 광고 없이 수익을 낼 수 있는 방법이 없을까? 25 file title: 열려라 맛스타의 자물쇠TVJ 2017.10.22 922
72 웹앱 개발 강좌 2. Cordova 작업환경 구축하기 (수정됨) 3 file 네모 2017.10.22 746
71 도다의 강좌 [미디어위키] #1 | 설치해보자 (1) 6 file title: 은메달도다 2017.10.22 612
70 맛스타의 Study For Us OS 선택하기 15 file 맛스타 2017.10.22 1521
69 도다의 강좌 [미디어위키] #1 | 설치해보자 (2) 6 file title: 은메달도다 2017.10.22 634
68 웹앱 개발 강좌 3. Cordova 프로젝트 생성 6 file 네모 2017.10.23 1797
67 웹앱 개발 강좌 4. 숫자야구 게임 앱을 만들어 봅시다! 4 file 네모 2017.10.24 546
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11
서버에 요청 중입니다. 잠시만 기다려 주십시오...