Visual Web Developer 2010으로 ASP.NET 웹 사이트 만들기 01

Visual Web Developer 2010으로 ASP.NET 웹 사이트를 만드는 것을 하나하나 진행해 보려고 한다.

우선 Visual Web Developer 2010으로 솔루션 관리가 좀 되었으면 해서 정리한다. 이 내용은 이후의 모든 Visual Studio에 동일하게 적용된다. 탬플릿 프로젝트를 만드는 게 아니라 직접 만드는 거라면 이 쪽이 더 편할지도 모르겠다. 게다가 사이트가 뭐 페이지 한두개로 이루어지는 것도 아니고 하니 페이지를 많이 이용하기 위해서도 IDE를 이용하는 거니깐.

ASP.NET은 IIS에서 동작하기 때문에 비주얼 스튜디오는 해당 IIS에 직접 파일을 작성하여 이용할 수 있다. 그렇게 되면 바로바로 확인할 수 있게 된다. 개발할 때 실제로 동작하는 웹사이트를 실시간으로 바로바로 수정하진 않겠지만 (설마 유저가 이용하는데 바로바로 수정하고 할 일이 있을리가…/먼산) 로컬에서 만들어서 그대로 동기화 하고 하는 건 할 수 있으니, 로컬 IIS에 직접 작성할 수 있도록 하려 한다.

이 작업을 위해서는 Visual Web Developer를 관리자 권한으로 실행해야 한다. 윈도우 7 이후에서부터는 실행을 위한 바로가기 아이콘의 속성에 호환성 -> 권한 수준에 있는 [관리자 권한으로 이 프로그램 실행]을 체크하여 설정해 주면 된다.

Screenshot - 2016년 05월 17일 - 22시 32분 46초

Visual Web Developer를 실행하여 새 웹 사이트를 생성한다. [파일]->[새 웹 사이트]를 클릭하여 만든다. 설치된 탬플릿에 언어를 Visual C#으로 선택하고, 탬플릿에는 [ASP.NET 빈 웹 사이트]를 선택해준다.

Screenshot - 2016년 05월 17일 - 22시 35분 55초.png

그 다음에 웹 위치를 지정하는데, 파일 저장 위치를 지정할 수도 있지만, HTTP 서버 혹은 FTP 서버를 지정할 수 있다.

Screenshot - 2016년 05월 17일 - 22시 36분 02초

IIS에 적접 작성하기 위해 HTTP를 선택한 다음 찾아보기를 클릭하면 서버와 사이트를 선택할 수 있는 창이 나온다. 로컬에서 직접 개발해서 돌려보려면 자기가 직접 쓰는 사이트를 선택하면 된다. 가상 디렉터리도 당연히 지원된다.

Screenshot - 2016년 05월 17일 - 22시 36분 20초

이런 경고가 남녀 그냥 예를 한다. 마이크로소프트의 웹 솔루션은 웹 응용 프로그램이냐 아니냐를 은근 많이 따진다.

Screenshot - 2016년 05월 17일 - 22시 36분 43초

그 담에 필요하면 하부에 폴더를 설정해주면 그 폴더를 기준으로 사이트를 만들 수 있다. 내부에 별도로 02라는 폴더를 만들어서 처리했다.

Screenshot - 2016년 05월 17일 - 22시 38분 57초

만들어진 화면은 아래와 같이 진행된다. 솔루션 탐색기에 웹 전용 설정 파일 만들어진 것 외에는 아무것도 없다. 여기서부터 파일 하나 둘 만들어서 개발하면 된다.

Screenshot - 2016년 05월 17일 - 22시 39분 24초

어려운 작업은 아니다. 걍 C 배울 때 빈 프로젝트로 만들어서 파일 하나 둘 추가하던 거랑 다를 거 없는 수준이라고 보면 된다.

Advertisements

ASP.NET의 스크립트 언어

ASP.NET이 처음 만들어졌을 때에는, 스크립트 언어로 VB.NET을 많이 이용하였다. 그러나 지금 규링도 이용하는 스크립트는 C#이다. 사실 Eiffel, 파스칼, 코볼도 닷넷 프레임워크에 연동하여 이용할 수도 있다. 어떤 스크립트를 연결해서 쓰냐 마냐에 대해서는 그냥 개발자 맘이다. 닷넷과 제대로 연동해서 쓸 수많 있다면 말이다. 어떤 언어를 선택하든지 컴파일러는 작성된 코드를 일련의 중간 언어(Intermediate Language) 명령어들로 변환하기 때문에 어떤 게 좋다고도 말하기 어렵다. 중간 언어가 생성되었을 때의 성능은 각자 다르기 때문이다.

근데 요즘은 C#을 이용하는 것을 중요하게 생각한다. 이 이유는 다음과 같다.

  • 닷넷 프레임워크 프로그래밍 모델을 가장 잘 반영한 언어가 처리하기 좋다.
    VB.NET과 C#은 중간언어 형태고 컴파일되는 닷넷 프레임워크의 프로그래밍 모델을 가장 잘 반영하는 언어이다. (당연히 마소에서 만드니깐) 즉, 버전이 올라가면 올라갈수록 언어적 차원에서 가장 많은 걸 지원한다.
  • 닷넷 언어들도 다른 언어들의 장점들을 지속적으로 이식해서 발전하고 있다.
    이건 요즘 모든 언어들이 다 가지고 가는 상황이다. 지속적으로 다른 언어들의 장점을 흡수해서 진화해 가기 때문에 프로그램 기능이 막강해진다.
  • 사용자가 지속적으로 증가하고 있다.
    이건 되게 중요한 것이다. 현재 마이크로소프트는 닷넷 플랫폼의 사용을 여러 곳에 지원하고 있고, 그를 위해 응용 프로그램 개발을 하기 쉽도록 하려고 C#쪽에 좀 더 힘을 쓰고 있다. 그래서 사용자도 엄청나게 증가하고 있는 추세이다. (글을 작성하는 현 시점같이 멀티 랭귀지가 기본인 곳에서 점유율이 늘어나는 것은 별 의미가 없을수도 있지만, 그렇다고 해서 신경 안쓰고 할 정도의 그런 건 아니다.) 게다가 자바랑도 유사해서 쉽게 배우고 하다보니 은근 경험 공유도 많이 된다.

그 중에서도 요즘 마이크로소프트가 제대로 지원하는 C# 쪽이 더 지원력은 강하다. 마소가 닷넷을 여러 플랫폼에서 확장하기 위해 제대로 밀고 있는 것도 C#이기도 하고…

이런 상황이다보니 갠적으로는 C#을 이용하여 스크립트를 작성하는 쪽을 좀 더 좋게 본다.

IIS의 가상 디렉터리 설정하기

가상 디렉터리란 물리적으로 루트 디렉터리 또는 이에 종속된 하위 디렉터리가 아님에도 불구하고 웹에서는 웹 사이트의 하위 디렉터리로 인식되는 디렉터리를 말한다. 형식은 http://%5B사이트 주소]/[가상 디렉터리 이름]/[파일]이다.

라고 적으면 이게 뭔 개소린가 싶다. (…)

처음 설치하면 생성되는 C:\inetpub\wwwroot 같은 폴더의 경우에는 실제로는 그냥 쓰면 안된다. 그리고 각각의 서비스들을 별도의 하위 폴더로 만들어서 쓰는 것도 좋지 않다. program1이라는 서비스를 만들었을 때, wwwroot 밑에 program1 폴더를 만들어서 거기에 생성해서 쓰면 안된다. 이런 식으로 보이는 서비스들은 전부 가상 디렉터리를 이용해서 제공되는 서비스들이다. 왜 쓰면 안되는지는 다음과 같은 이유가 있다.

  1. 보안 문제: 웹 주소와 디렉터리가 그대로 노출된다. 기본 디렉터리를 바꿨다 하더라도 디렉터리를 탐색하면 위치가 그대로 노출될 수 있다. 게다가 기본 디렉터리의 루트에서부터 공개되기 때문에 악의적으로 해킹해서 접속하게되면 획득한 권한으로 하부의 모든 서비스를 다 가로챌 수 있게 된다.
  2. 공간 부족 문제: 지속적으로 추가되는 것들을 전부 다 저장하기에는 C:의 용량은 한정되어 있다. 그렇기 때문에 다른 드라이브에 생성하여 용량을 널럴하게 주는 것이 좋다.

이런 문제를 해결해주는 것이 바로 가상 디렉터리이다. 임의의 드라이브, 임의의 폴더를 지정하여 쓰게 되면 위의 문제를 해결할 수 있다.

그럼 IIS에서 어떻게 가상 디렉터리를 이용할 수 있는지는 다음 설정을 따라가면 된다. 우선 제어판 -> 관리도구 -> IIS 관리자를 실행한다.

그 다음, 자신의 서버에 있는 사이트(Site)의 하위에 있는 Default Web Site를 선택하였을 때 나오는 내용 중에 [가상 디렉터리 보기]라고 나와있는 것을 클릭하면 가상 디렉터리를 관리할 수 있다.

Screenshot - 2016년 05월 16일 - 18시 24분 21초

가상 디렉터리를 추가해준다.

Screenshot - 2016년 05월 16일 - 18시 24분 29초.png

추가하려는 이름과 디렉터리를 지정한다. 여기에 입력하는 이름이 그대로 사이트 주소에 적용되니 잘 작성한다. 실제 경로는 파일을 저장할 경로인데, 원하는 곳에 폴더를 만들어서 지정하면 된다.

Screenshot - 2016년 05월 16일 - 18시 25분 45초

지정한 디렉터리에 아까 만들었던 FirstApp.aspx 파일을 복사한다.

Screenshot - 2016년 05월 16일 - 18시 26분 35초

이제 브라우저에서 확인을 한다 http://localhost/WebEx/FirstApp.aspx 라고 입력하면 아래 화면처럼 그전에 만든 것이 그대로 실행되면 된다.

Screenshot - 2016년 05월 16일 - 18시 26분 56초

별로 어렵진 않다.