소년포비의 세계정복!!

ASP.NET 2.0 의 배포 방법 본문

프로그램 세상/ASP.NET

ASP.NET 2.0 의 배포 방법

소년포비 2009. 10. 6. 06:34

ASP.NET 2.0 의 배포 방법

 

ASP.NET 2.0 으로 웹 사이트를 만들고 난 후 실제 웹 서버에 배포 하는 방법은 여러 가지가 있다.

 

1. ASP.NET 1.x 환경의 배포

기본적으로 기존 1.x 버전에서는 Visual Studio 에서 웹 사이트 빌드를 하게 되면 코드 비하인드 파일들을 묶어서 하나의 DLL 로 내 뱉었다.

결국 웹 서버에 다음과 같은 파일들을 저장하게 된다. (config 등의 설정파일은 제외)

-          aspx 파일들

-          bin 폴더의 dll 파일

 

결국 aspx 파일은 최초 사용자의 요청 시 cs 파일의 내용과 연관되는 컴파일 과정을 거치게 된다.

 

2. ASP.NET 2.0 환경의 배포

2.0 에서는 Pre-Complication 을 지원한다.

, 완전히 컴파일 해서 dll 만 웹 서버에 배포하는 방식이다.

이렇게 하면 최초 요청자 마저 컴파일 시간을 기다릴 필요가 없게 되는 것이다

 

이외에도 2.0 에서는 다양한 형태로 배포를 할 수 있도록 지원하는데 하나씩 살펴 보자.

 

2.1 웹 사이트 복사

가장 단순한 형태의 배포에 해당한다.

모든 파일(cs 파일 포함)을 웹 서버로 복사하는 방법이다.

VS 상단 메뉴의 웹 사이트 -> 웹 사이트 복사를 선택하거나 프로젝트 우 클릭 후 웹 사이트 복사 항목을 선택하면 아래와 같은

파일을 전송할 수 있는 화면이 나온다.

여기서 로컬 폴더나 네트워크 드라이버, ftp, http 로 파일들을 전송하면 된다.

, 한가지 생각해 보아야 할 것은 cs 파일을 웹 서버에 배포를 할 것인가에 대한 보안적인 측면을 고려해 보아야 할 것이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2 웹 사이트 게시

미리 컴파일 된 형태로 배포를 하고 싶을 경우 웹 사이트 게시를 이용하면 된다.

상단 메뉴에 빌드 -> 웹 사이트 게시메뉴나 프로젝트 우 클릭으로 웹 사이트 게시를 선택하면 아래와 같은 게시 옵션 창이 뜬다.

 

옵션에서 기준이 되는 것은 aspx 파일 분리 유/컴파일 되는 범위이다.

 

1) 미리 컴파일 된 이 사이트를 업데이트 할 수 있도록 허용

이 항목은 aspx 파일은 업데이트가 가능하도록 소스를 남겨두겠냐는 옵션이다

이 옵션이 체크되면,

1.x 때와 유사하게 cs 파일들은 컴파일 되어서 dll 로 만들어 지고 aspx 파일들은 여전히 남게 되어 웹 서버에 aspx 파일들과

dll 파일을 배포하면 된다.

업데이트 할 수 있도록 허용이라는 말을 풀이해 보면 aspx 파일의 소스가 유지되도록 하여 향후 수정할 수 있도록 한다고 할 수 있겠다

 

2) 고정된 이름을 사용하고 페이지당 하나의 어셈블리만 만들기

   1) 의 과정에서 생기는 dll 파일은 해당 프로젝트의 모든 cs 파일을 단일 dll 로 컴파일 하는데 반해,

   이 옵션이 선택되면, 페이지 하나당 하나의 dll 이 생긴다. 즉 페이지 수만큼 dll 이 생기는 것이다

   이렇게 배포를 하면 특정 cs 파일 하나만 업데이트 할 경우 해당하는 dll 만 업데이트 하면 되므로 유지/보수성이 좋아 질 수 있다.

   또한 컴파일 되어 생성된 어셈블리 이름은 파일이름을 그대로 포함한 형태가 된다.

  

마지막 옵션은 컴파일된 어셈블리에 강력한 이름을 부여하는 옵션으로 자세한 사용 빈도가 그리 크지 않으므로 설명은 생략하도록 한다

 

결국 1) 2) 의 옵션 조합으로 배포를 할 수 있게 되는데 이 둘을 조합하게 되면 두 옵션의 조합으로써 말로 풀어 써 본다면,

Aspx 는 별도로 두고 (dll 에 포함시키지 않으면서 페이지 당 컴파일된 어셈블리(dll) 하나 씩 생성되는 것이다.

 

다음 그림은 웹 사이트 게시를 선택했을 때 나타나는 속성 창이다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2.1 옵션 조합 별 생성 파일 예시

웹 프로젝트에 다음과 같이 3개의 페이지가 있다고 가정하고 옵션을 조정해 가며 결과물을 보자.

- Default.aspx, Default.2aspx, Default.3aspx

 

1) 미리 컴파일 된 이 사이트를 업데이트 할 수 있도록 허용 만 체크

Aspx 파일은 수정 가능하도록 남겨두고 모든 cs 파일은 단일 어셈블리로 컴파일 하도록 한다

, aspx 파일의 소스는 그대로 남아 있게 된다. (1.x 때의 배포와 동일한다)

 

 

 

 

 

 

 

 

Bin 폴더 :

 

 

 

2) 고정된 이름을 사용하고 페이지당 하나의 어셈블리만 만들기 만 체크

Aspx 파일은 cs 파일과 같이 컴파일 되고 페이지 별로 컴파일 하도록 한다

 

 

 

 

 

 

 

 

Bin 폴더 :

 

 

 

 

 

 

 

 

이 경우 aspx 파일은 cs 와 같이 컴파일 된다.

그러나 여전히 aspx 파일들은 남아있기는 하지만, aspx 파일을 열어 보면 소스는 없어지고 다음과 같은 메시지만 존재한다.

이 마커 파일은 미리 컴파일 도구에서 생성한 것으로서 삭제하면 안 됩니다.’

즉 운용을 위해서만 존재할 뿐 소스는 모두 없어졌다는 말이 된다.

 

또한 각 페이지별로 컴파일이 되어 페이지 당 1개의 dll 이 생성되었음을 알 수 있다

 

3) 두 옵션 모두 체크

Aspx 파일을 수정 가능하도록 남겨두고 cs 파일은 페이지 별로 컴파일 하도록 한다.

 

 

 

 

 

 

 

 

Bin 폴더:

 

 

 

 

 

이 경우에는 aspx 파일을 열어 보면 소스가 그대로 남아 있다

 

4) 두 옵션 모두 해제한 경우.

이렇게 하면 모든 aspx파일과 cs 파일은 단일 어셈블리로 컴파일 되도록 하는 것이 된다.

이렇게 하면 웹 사이트의 모든 소스를 숨길 수 있게 된다.

 

 

 

* 결론

지금 까지 살펴 본 대로, ASP.NET 2.0 에서는 다양한 형태의 배포 모델을 지원한다.

서비스의 성격 및 유지보수성 등을 고려하여 적절한 배포 방법을 선택하는 것이 좋을 것 이다.

, 현재의 배포환경 및 제약조건뿐만 아니라 향후 유지/보수성 및 확장성을 고려하여 적절한 배포 방법을 선택해야 할 것이다.

 

 

다음의 msdn 에서는 웹 게시와 관련된 상세한 내용을 담고 있습니다.

꼭 한번 읽어보기를 강추 합니다~~

참고 url : http://www.microsoft.com/korea/msdn/library/ko-kr/dnaspp/html/aspnet_merge_exe.aspx