MixedCode

3일차
3.1 부트스트랩 템플릿 프로젝트 반영하기
3.2 레이아웃(마스터) 및 컨텐츠 페이지 구성하기
3.3 컨텐츠 및 입력폼 페이지 구성하기

3.4 부트스트랩 기본 사용법
3.5 로컬 웹서버  설치 및 사용법

웹프로그래밍은 좀더 정확히 말하면 웹서버 프로그래밍이라고 말합니다. 즉, 웹서버라는 소프트웨어를 통해 프로그래밍된 개발소스가 서비스 된다는것을 의미하죠.
따라서 우리가 개발한 웹서버 프로그래밍 개발소스를 실제 서비스하기 위해서는 반드시 웹서버가 필요하며 일반적으로 Microsoft의 웹개발 Framework인 ASP.NET 기반으로 개발된 개발소스는 IIS(Internet Information Server=인터넷 정보 서버)라는 Windows O/S기반 웹서버 소프트웨어를 통해 서비스 됩니다.

지금부터 ASP.NET 기반으로 개발된  MVC5 개발 소스를 서비스 하기 위한 서버 O/S 및 웹서버에 대해 좀더 구체적으로 알아보겠습니다.

1.Windows Server O/S & IIS 웹서버    

A.Windows Server Operation Systems
ASP.NET 기반으로 개발된 개발소스를 서비스하기 위한 서버 O/S로는 아래와 같은 윈도우즈 서버군 제품들이 존재합니다.
윈도우즈 서버용 O/S 는 기본적으로 PC용 윈도우 O/S처럼 동일한 사용자 인터페이스를 제공하기 때문에 서버 O/S라고 특별히 사용하기가 어렵지도 않고 이질감도 덜한게 큰 장점이며 각종 서버용 소프트웨어를 설치하여 다양한 서버기능을 제공할수 있는게 특징입니다.
Windows Server O/S에 웹서버 소프트웨어인 IIS를 설치하여 웹서버기능을 제공할수 있으며 DATABASE 소프트웨어인 MS SQL Server 프로그램을 설치운영하면 DB서버가,메일서버 소프트웨어를 설치하면 메일서버 기능을 제공할수 있습니다.

윈도우 서버 O/S는 기본적으로 윈도우 클라이언트 O/S기반에서 만들어지기 때문에 아래와 같이 윈도우 O/S 서버-클라이언트 운영체제별로 매칭이 이루어집니다.
-Windows Server 2008 : IIS7.0 웹서버 제공,Windows Vista의 서버 버전
-Windows Server 2008 R2 : IIS7.5 웹서버 제공,Windows7의 서버 버전
-Windows Server 2012  : IIS 8.0 웹서버  제공,Windows 8의 서버 버전
-Windows Server 2012 R2  : IIS 8.5 웹서버  제공,Windows 8.1의 서버 버전
-Windows Server 2016 : IIS 10 웹서버 제공, 2016년 09월 출시, Windows10의 서버 버전

TIP) Linux 기반에 ASP.NET MVC 응용프로그램 배포하기
Microsoft사의 .NET 이중화 전략에 따르면 Windows 기반 서버 O/S상에서는 .NET Framework4.6 과 .NET Core5 프레임워크 기반에서 IIS를 통해 ASP.NET MVC5 웹응용프로그램을 서비스가 가능하며 Linux기반에서는 .NET Core5(ASP.NET5) 프레임워크 기반에 개발툴로는 Visual Studio Code를 통해 개발된 ASP.NET MVC5 웹응용 프로그램을 리눅스 오픈소스 제품인
Ubuntu 또는
 클라우드 환경에서는 Docker라는  리눅스 컨테이너를 통해 배포 서비스가 가능하다고 설명하고 있습니다. 
https://docs.asp.net/en/latest/publishing/linuxproduction.html
https://azure.microsoft.com/ko-kr/documentation/articles/vs-azure-tools-docker-hosting-web-apps-in-docker/

B. 웹서버(Web Server)
- 정적이든 동적이든 모든 웹페이지들은 기본적으로 서버용 O/S환경에서 웹서버라는 프로그램 환경에서 구동됩니다. 
 
- 윈도우 서버 O/S환경에서는 IIS란 웹서버 프로그램을 무료로 제공하고 있으며 ASP.NET 기반으로 개발된 웹프로그램 소스는 IIS 웹서버 환경을 통해 서비스됩니다.
-IIS(Internet Information Server)?는 인터넷 정보 서버 또는 서비스라고 하며 윈도우 클라이언트,서버 O/S상에서 설치 및 사용이 가능한 웹서버의 한종류입니다.
-웹서버는 여러분이 개발한 웹사이트 개발소스를 실제 서비스하는 관리 및 운영 주체이며 웹응용프로그램이 구동되는 기본 환경을 제공합니다.
-IIS의 종류와 버전은 아래와 같습니다.

1) IIS유형
ㄴ로컬 IIS 웹서버 : 클라이언트 O/S(Windows7/8/8.1/10) Pro버전 이상에 내장되어 있는 Client PC에서 설치.작동되는 IIS 유형 
ㄴ IIS Express : Visual Studio 2015 설치 시 함께 설치되는 개발 및 디버깅용으로 사용되는 개발용 웹서버
   (Visual Studio 개발툴 디버깅 모드시 IISExpress는 자동으로 활성화되며 윈도우 우측하단 트레이바에 IIS Express 트레이아이콘이 나타납니다.)
ㄴ운영 IIS 웹서버 : 실제 윈도우 서버(Windows Server 2008/2012) O/S에서 제공되는 서비스용 웹 서버

2) IIS Version
-IIS7  : Windows Vista, Windows Server 2008
https://technet.microsoft.com/ko-kr/library/ee692294(v=ws.10).aspx

-IIS7.5 : Windows 7,Windows Server 2008 R2
https://technet.microsoft.com/ko-kr/library/ee692294(v=ws.10).aspx
iis7.5 설치방법 : http://www.iisunderground.com/installing-iis-7-5/

-IIS8 : Windows8,8.1,Windows10, Windows 2012 Server(Signal R서비스 제공가능)
ii8 설치방법 :
http://www.howtogeek.com/112455/how-to-install-iis-8-on-windows-8/

실제 우리가 개발한 ASP.NET MVC5 개발소스가 서비스 되는 서버측 운영환경은 아래와 같습니다.
ㅁASP.NET MVC5 웹프로젝트 서비스 환경
- Server O/S : Windows Server 2008 R2 or Windows Server 2012 권장
- WebServer : IIS7.5  or IIS8.0 권장
- .NET Framework 4.6 이상

C.로컬 웹서버 설치하기
1) 사용자 PC의 제어판을 오픈합니다.

2) 프로그램를 클릭합니다.


3) 프로그램 및 기능에 Windows 기능 켜기 끄기를 클릭합니다.


4) 트리에서 인터넷정보서비스 하단에 있는 모든 항목을 체크하여 인터넷정보서비스 앞에 네모박스안이 검정색 네모가 아닌  체크가 표시되게한 후 팝업창 맨 하단의 확인버튼을 클릭합니다. 설치가 완료되면 컴퓨터를 재부팅 해주십시오.


5) 재부팅 후
제어판>시스템 및 보안 > 관리도구>IIS(인터넷 정보 서비스) 관리자를 클릭하여 IIS웹서버 관리자가 보이면 웹서버 설치가 완료된것입니다.



2. 웹서버 개발소스 배포하기

개발소스를 실제 운영서버 환경에 배포하기에 앞서 서비스 환경과 동일한 사용자 PC내에 존재하는 로컬 웹서버 환경을 통해 사전 배포 테스트를 실시해봄으로서 실제 웹서버의 사용법까지 익혀보도록 하겠습니다.

A.개발소스 준비하기
-지금까지 개발한 ASP.NET MVC5 개발소스를 최종 빌드하여 개발산출물을 준비하도록 하겠습니다

-Visual Studio.NET으로 개발소스를 오픈 한 후 상단 메뉴중 빌드 메뉴 아래에 있는 빌드모드 콤보 박스를 클릭 후 Release 모드를 선택합니다.
-Visual Studio.NET 의 솔루션 탐색기에서 솔루션명을 선택하고 오른쪽 마우스 클릭하고 솔루션 다시빌드를 클릭합니다.
-솔루션 다시빌드를 통해 최종 개발한 내용이 릴리즈 버전으로 새롭게 개발 산출물로  만들어집니다.
-솔루션 탐색기의 솔루션명을 선택하고 오른쪽 마우스 클릭한 후 파일탐색기에서 폴더 열기를 클릭하여 파일 탐색기를 오픈합니다.
-물리적  솔루션 폴더내의  웹 프로젝트  폴더를 선택 복사하여  특정 서비스 폴더로 붙여넣기 합니다.

-저는 D 드라이브에 WEBSITE-ROOT란 폴더를 하나 만들고 여기에 붙여넣기 하였습니다.
EX) D:\WEBSITE_ROOT\EddyHomePage
-여기까지 개발된 소스의  배포준비가 완료되었습니다.

TIP) 빌드의 Debug 모드 와 Release 모드의 차이점
-빌드란 행위는 개발된 소스를 최종 배포 산출물로 만들어내는 행위를  말합니다.
-Visual Studio 개발툴에서 빌드를 실시할경우는 Debug 모드 와 Release 모드 두가지 모드중 하나로 빌드가 가능하며
개발중에는 디버깅을 위해 Debug모드로 빌드를 실시하며 최종 산출물의 배포를 위해서는  Release모드로 변경하여 빌드합니다.
-Debug 모드로 빌드하면  최종 개발산출물에  디버깅을 위한 프로세스가 및 관련 리소스가 포함되어 산출물이 만들어 지기 때문에
서비스를 위한  최종 배포산출물을 만들때는 Release모드로  변환 후 빌드를 실시하여 불필요한 리소스 낭비가 발생하지 않도록 합니다..

B.웹사이트 만들기
1) 제어판>시스템 및 보안 > 관리도구>IIS(인터넷 정보 서비스) 관리자를 클릭하여 IIS웹서버 관리자 프로그램을 가동합니다.

2) 사용자  PC에 설치되어 있는 IIS웹서버 관리자 툴 화면입니다.
-좌측 트리메뉴를 확장해보면 컴퓨터명으로 웹서버명이 최상단에 표기됩니다.
-웹서버 하위에는 응용 프로그램 풀 트리노드와 사이트 트리노드가 나타납니다.
-DefaultWebSite가 샘플로 제공됩니다. 디폴트 웹사이트는 오른쪽 마우스를 클릭>웹사이트관리> 중지를 클릭하여 디폴트 웹사이트 기능을 정지시키거나 제거를 클릭하여 디폴트 웹사이트를 삭제합니다.
-좌측 사이트 트리노드에 오른쪽 마우스를 클릭하고 웹사이트 추가를 클릭합니다.


-웹사이트 추가 팝업창의 각 항목을 입력 또는 선택합니다.
-사이트이름: 웹서버상의  웹사이트 임의의 고유 이름을 입력합니다. EX) EddyHomePageWebSite
-응용프로그램풀: DefaultAppPool 기본값을 사용합니다.
-컨텐츠 디렉토리>실제경로: 실제 개발소스의 경로를 찾아 맵핑합니다. EX) D:\WEBSITE_ROOT\EddyHomePage
-바인딩>IP주소: 현재 PC또는 서버의 랜카드가 사용하는 IP주소를 선택합니다.
-바인딩>포트: IP의 사용포트를 지정합니다.( 웹사이트 기본서비스 포트는 80 포트입니다.)
-바인딩>호스트이름: 도메인을 보유한 경우 해당 도메인의 호스트명과 도메인명을 입력합니다.
EX)localhost,www.eddyhomepage.co.kr, admin.eddyhomepage.com
-웹사이트 즉시시작: 체크
상기 해당값을 모두 입력 후 확인 버튼을 클릭하면  웹서버에 신규 웹사이트가 생성됩니다.


C. 웹사이트 바인딩 정보 관리하기

-하나의 웹사이트는 다양한 형태로 네트워크 상에서 바인딩이란 방식을 통해 URL 주소형태로 서비스 될수 있습니다.

1) IP주소와 PORT를 통한 바인딩 방식
-IP주소를 이용해 웹사이트를 서비스하는 경우는 일반적으로 사용자에게 서비스하기 보다는 개발용으로 이용하기 위해 특정 IP와 특정 PORT 조합으로만 웹서버 내에서 중복되지 않게 사용할수 있습니다.  

EX)
http://172.16.12.50:9000   http://172.16.12.50:9001   http://172.16.12.50:7000/

2)도메인 호스트명을 이용한 바인딩 방식
-IP주소+포트+도메인호스트 조합으로 보유한 도메인을 이용해 동일 IP주소+포트 조합을  여러개의 도메인 호스트를 통해 서비스 할수 있는 방식입니다.

EX)
http://localhost (172.16.12.50:80) - localhost 도메인은 공식 도메인 주소가 아닌 웹 서버가 제공하는  웹서버를 자신을 호칭하는
가상의 개발 및 테스트용 도메인입니다.
http://eddyhomepage.co.kr   (172.16.12.50:80)
http://www.eddyhomepage.co.kr   (172.16.12.50:80)
http://admin.eddyhomepage.co.kr ( 172.16.12.50:80)
http://test.eddyhomepage.co.kr:9000   (172.16.12.50:9000)

-바인딩 절차

-신규 웹사이트에 오른쪽 마우스를 클릭하고 바인딩 편집을 클릭합니다.


-사이트 바인딩 팝업창이 오픈되며 현재 해당 웹사이트에 설정된 바인딩  목록이 나타납니다.


-추가 버튼을 클릭하여  신규 바인딩 정보를 추가합니다.
-상기  IP+PORT 조합 또는 IP+PORT+도메인 조합 둘중 하나의 방법을 선택하여  관련정보를 입력 후 확인버튼을 클릭합니다.
** 웹서버내 여러개의 웹사이트가 존재할 경우  바인딩정보를 추가시 동일정보가 이미 동일/다른  웹사이트에서 사용중일경우 경고창이 뜨며
신규 추가가 불가합니다.**

지금까지 IIS서버의 설치 와 IIS내에 우리가 만든 ASP.NET MVC5  개발소스를 이용 신규 웹사이트를 만들고 바인딩 방식을 통해 다양한 바인딩 방식으로
서비스하는 방법에 대해 알아보았습니다.

다음 4일차 시간에는  ASP.NET MVC5 와 EF(Entity Framework)을 이용한  DB 프로그램밍하는 방법을 알아 보도록 하겠습니다.
수고 많으셨습니다.






Comments

Leave a Reply

*