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 빈 웹 사이트]를 선택해준다.

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

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

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

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

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

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

빠른 컴퓨터에 대한 개발을 위하여…

빠른 컴퓨터에 대한 요구는 지금도, 앞으로도 지속적으로 있을 것으로 보여진다.

컴퓨터의 속도를 결정하는 첫 번째 요소는 다들 알듯 프로세서의 속도가 향상되는 것이다. 그러나, 그것이 한계에 부딧히게 되어 멀티코어를 만들고 병렬처리 기술들을 지속적으로 하고 있다.

병렬 처리란 다수의 프로세서들이 여러 개의 프로그램들 혹은 한 프로그램의 분할된 부분을 분담하여 동시에 처리하는 기술을 말한다. 병렬처리가 가능해지기 위해서는 다음과 같은 조건들을 만족해야 한다.

  1. 많은 수의 프로세서들을 이용하여 하나의 시스템을 구성할 수 있도록, 작고 저렴하며 고속인 프로세서들의 사용이 가능해야 함
  2. 한 프로그램을 여러 개의 작은 부분들로 분할하는 것이 간으해야 하며, 분할된 부분들을 병렬로 처리한 결과가 전체 프로그램을 순차적으로 처리한 경우와 동일한 결과를 얻을 수 있어야 함

첫 번째 조건은 최근 반도체 및 프로세서 기술의 발전으로 만족을 하고 있는 상황이다. 그러나 두 번째 조건은 다음과 같은 새로운 과제들을 야기시킨다.

  • 분할성
  • 복잡성
  • 프로세서간 통신

분할성이란 병렬 처리를 위하여 하나의 프로그램을 여러 개로 나눌 수 있어야 ㅎ나다는 것이다. 프로그램들 중에는 반드시 순차적으로 처리되어야 하는 것들도 있기 때문에 병렬 처리가 근본적으로 불가능할 수도 있다. 또한 많은 수의 프로세서들이 제공되더라도 프로그램을 그 수만큼 분할할 수 없는 경우에는 프로세서 이용률이 낮아져서 원하는 만큼의 성능 향상을 얻을 수 없기 때문에 분할성은 매우 중요하다. 이러한 경우에 병렬처리의 효과를 높이기 위해서는 순차적으로 처리해야 하는 부분을 최소화할 수 있는 새로운 알고리즘 개발이 필요하게 되고, 알고리즘 자체가 복잡해질 수도 있다. 이 부분이 복잡성에 해당한다.

하나의 프로그램이 여러 개의 작은 부분들로 나누어져 서로 다른 프로세서들에 의해 처리되는 경우에는 프로세서들 간에 데이터 교환을 위한 통신이 필요하게 된다. 프로세서의 수가 증가하면 통신 선로의 수도 그만큼 더 많아지고, 인터페이스를 위한 하드웨어도 복잡해진다. 그에 따라 프로세서간 통신을 지원하기 위한 소프트웨어 오버헤드와 하드웨어상 지연 시간 때문에 통신에 소모되는 시간이 길어져서 속도 향상에도 한계가 있게 된다.

이 밖에도 알고리즘의 병렬성을 표현해줄 수 있는 병렬 프로그램 언어와 컴파일러의 개발도 요구된다. 또한 프로세서들이 각종 하드웨어 자원들을 공유할 수 있도록 상호 베타 매너키즘이 설계되어야 하고, 공유자원들에 대한 경합을 줄이고, 이용률을 극대화시킬 수 있도록 운영체제에서도 특별한 기능이 추가되어야 한다.

이 내용들을 전부 정리해보면 병렬컴퓨터 시스템을 개발하기 위해서는 하드웨어의 구조, 운영체제, 알고리즘, 프로그래밍 언어, 컴파일러 등 거의 모든 분야의 컴퓨터 기술들이 통합되어야 한다.

p.s. 진짜 진짜 관심 있는 분야이긴 한데…./먼산