닷넷 환경에서 웹 사이트 배포 방식

 

웹 사이트를 배포할 때 디자인 파일(*.aspx, *.ascx, etc)과 소스코드를 컴파일한  

binary(웹사이트명.dll) 파일로 업데이트할지(닷넷 1.1버전), 아니면 런타임으로 자동 컴파일하도록

비하인드 파일(*.cs)까지 업데이트할지(닷넷 2.0버전)에 대해 고민해 볼 것입니다.

 

닷넷 1.1 버전에서는 페이지의 코드 비하인드 파일을은 미리 컴파일하여 웹사이트명.dll

컴파일해야 했지만 ASP.NET 2.0에서는 처음 실행될 때 런타임으로 코드비하인드 페이지까지

자동으로 컴파일되기 때문에 개선된 배포방법이라고 생각합니다.

하지만 코드 비하인드 파일을 웹 서버에 업로드 해야하는 보안상의 문제가 있습니다.

사실 비하인드 파일은 DB와 직접 통신하지 않고 비지니스 로직 프로젝트나 기타 외부

라이브러리와 Adapter 역할을 하는거라 보안상 문제가 될 소지는 적어 보입니다.

각각의 방식에 대한 장단점으로 어떤게 있는지 내용을 정리해 봤습니다.

 

소스코드 컴파일(1.1) 배포방식

 

장점

- 디자인 파일만 업데이트하고 bin 폴더에 바이너리 파일을 업데이트 하면 되므로

웹 서버에 리소스를 줄일 수 있다.

- 바이너리로 관리되므로 보안상 문제가 없다.

 

단점

- 바이너리 업데이트일 경우 사소한 버그를 고치더라도 전체 소스코드를 업데이트해야 하므로

비효율적이다.

- 사이트 오픈 초기에 잦은 업데이트일 경우 업데이트의 비용이 많이 든다.

 

런타임시 컴파일(2.0) 배포방식

 

장점

- 업데이트한 페이지만 컴파일하므로 전체 페이지에 영향을 주지 않으므로 관리상 이점이 있다.

- 업데이트에 대한 비용이 적게 들기 때문에 빠른 업데이트가 가능하다.

 

단점

- Adapter역할을 하는 소스코드라 할지라도 소스 코드를 업데이트해야 하기 때문에

이로 인한 문제가 발생할 수 있다.

 

참고) cs파일은 ISAPI필터를 통해 외부에서 접근이 금지(403에러)되어 있기 때문에 직접적으로

외부에서 소스코드를 해킹할 수 있는 방법은 없다.

 

페이지별 DLL 배포

 

장점

- 페이지 당 하나의 dll이 배포되므로 수정할 페이지의 dll만 업로드하면 되므로 관리가 편리하다.

 

단점

- 페이지당 하나의 dll이 생성되므로 웹 소스 관리가 복잡해진다.

- 페이지 별로 동적으로 DLL 이 생성되기 때문에, 상호 개체간의 참조가 불가능하다.

 

 

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 허둥사마 | 2009/09/15 10:36 | .NET (웹폼) | 트랙백 | 덧글(2)
트랙백 주소 : http://tit99hds.egloos.com/tb/2489282
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 네모도리 at 2009/09/15 10:44
사이트 유지 보수 입장에서보면 런타임 컴파일이 최선입니다.
오늘 이거 고쳐 달라고 해서 한참 고치는데 저게 더 급하다고 저걸 먼저 해달라고 하면 난감하거든요
보안 유출이 우려되는 부분만 DLL 로 만든다면 보안 상 문제도 크지 않고 말입니다.
유지 보수를 생각한다면 한덩어리는 무조건 비추
Commented by 허둥사마 at 2009/09/15 10:48
저도 같은 생각입니다..^^
팀 내에서 이 문제로 토론을 했었는데 저혼자
런타임 배포방식을 주장하고 다들 보안상의 이유로 1번이나 3번으로 주장을 해서
힙겹게 결정한 일이 있었는데 사이트 관리한지 1년이 다되가는 시점에서 잘 선택한게 아닌가 생각이 듭니다.

:         :

:

비공개 덧글



< 이전페이지 다음페이지 >