본문으로 바로가기

[ASP.NET] 2. ASP.NET의 이해

category Program/ASP.NET 2017. 2. 22. 17:57

동적 웹 페이지를 만들기 위해 웹 애플리케이션을 개발해야 한다. 웹 애플리케이션의 개발을 위해 사용되는 언어에는 ASP, ASP.NET, JSP, PHP, Ruby등이 있다.


ASP.NET은 MS사에서 개발한 ASP의 차세대 버전으로, 웹 애플리케이션을 구축하기 위한 프로그래밍 프레임워크이다. .NET 기반에서 이야기하는 프레임워크란, 제품을 구성하는 부분을 의미한다.


집을 짓는 것을 예로 들어보자. 집은 모래, 자갈, 철근, 벽돌, 시멘트 등으로 지을 수도 있지만, 조립식 주택과 같이 이미 만들어져 있는 부분들을 결합하여 지을 수도 있다. 철근, 시멘트로 집을 짓는 데 서너 달 이상의 시간이 소요된다고 할 때 조립식 주택은 한 달이면 기초 공사에서 내부 마감까지 끝낼 수 있다.





MS사의 웹 솔루션 발전 과정


 1세대

 CGI

실행 파일 형식

 2세대

ISAP 

DLL 방식 

 3세대

IDC 

최초의 스크립트 방식 웹 솔루션 

 4세대

ASP 

서버 측의 스크립트 엔진으로 Inlin방식을 채택 ADO를 이용한 데이터베이ㅡㅅ 연동 

 5세대

ASP.NET 

.NET 프레임워크 기반 극소 코드를 지향 


1. CGI : 전통적인 웹 프로그래밍 기법으로, 서버에서 실행되는 프로그램을 말한다. 클라이언트의 요청을 기반으로 프로그램이 실행되고, 그 결과로 HTML 문서가 생성된다. 주로 Perl이나 C와 같은 언어로 제작된다.

2. ISAP : 기존의 CGI가 실행 파일 형식이라면 ISAP는 DLL 형식이다. 웹 서버의 부하를 줄이고 성능을 향상 시켰다.

3. IDC : MS사가 최초로 선보인 스크립트 방식의 웹 솔루션이다. 액세스나 엑셀 등에 저장된 데이터를 이용하여 동적인 웹 페이지를 구현하였으며, 지금의 ASP 모습과 비슷한 형태였다.

4. ASP : ASP는 1996년 코드명 Denail 라는 이름으로 첫선을 보였고, 그 해 말 ASP 1.0 이 IIS 3.0 의 add-on 형태로 배포되었다. ASP는 서버 측의 스크립트 엔진으로 Inline 방식을 채택하여 쉬우면서도 강력한 웹 프로그래밍 기술을 제공하였으며, 특히 ADO를 이용한 데이터베이스 연동 기술은 많은 웹 개발자들의 관심을 끌었다.


ASP.NET을 살펴보기전에 ASP의 단점을 살펴보자면,

1. HTML 태그와 스크립트로 인한 복잡한 코드

ASP 페이지는 HTML 태그와 스크립트가 혼합된 형태로 이루어져 있기 때문에 복잡한 애플리케이션의 경우에는 한 페이지의 코드가 수백 줄에서 수천 줄에 이른다. 따라서 유지 보수하는 데 많은 문제가 발생한다. 디자인이 변경될 경우, 디자이너의 입장에서는 ASP 서버 코드를 피해 작업해야 하고, 개발자의 입장에서는 서버 코드를 수정하기 위해 수많은 HTML 태그를 피해 작업해야 한다.


2. 한정된 데이터형

ASP에서는 Variant 데이터형만 지원한다. 따라서 변수에 대한 명시적인 데이터형 선언이 불가능하고, 하나의 변수에 문자나 숫자 등과 같은 서로 다른 데이터형 값이 대입되어 예기치 않은 물리적, 논리적 오류가 발생할 수 있다.


5. ASP.NET : ASP의 문제점을 극복하기 위한 오랜 연구, 개발 기간을 거쳐 2000년 5월에 ASP+가 발표되었다. 그러나 MS사의 브랜드로 결정된 .NET의 영향을 받아 ASP+를 ASP.NET으로 개명한 뒤 2002년 초 ASP.NET 1.0을 출시했다. 2.0 으로 넘어가면서 새로운 기능이 추가되었으며, 내부 구조도 많이 바뀌었다. 2010년에 ASP.NET 4.0 버전은 AJAX, LINQ 등이 ASP.NET 프레임워크에 포함되는 등 변화를 거쳤다.




ASP.NET의 특징


1. 이벤트 기반 프로그래밍 모델 : ASP에 비해 재사용성이 높고, 공유하기 쉬우며, 작성하기 쉽고, 읽기도 쉬움

2. 컨트롤 기반 페이지 : .NET의 페이지는 웹폼과 서버 컨트롤들로 만들어진다.

3. CLR을 통한 언어 독립적인 플랫폼 제공 : 기존의 ASP와 같이 스크립트 언어뿐만 아니라 컴파일된 언어도 제공함. 언어 독립적인 플랫폼을 제공한다는 것은 어떠한 .NET 언어로도 ASP.NET 페이지를 만들 수 있다는 것과 이렇게 만들어진 웹 페이지들은 CLR이 지원되는 그 어떠한 운영체제에서도 구동할 수 있다는 것을 의미한다.

4. Code-behind 모델 : 사용자 인터페이스를 위한 HTML 부분과 업무 처리를 위한 코드 부분을 분리할 수 있는 방식이 제공된다. 이 방식은 웹 브라우저를 통해 사용자에게 보여지는 HMTL 코드 부분과 프로그래밍 코드 부분이 각 파일로 존재하기 때문에 개발하는 데 있어서 많은 편리함을 제공해준다.

- HTML부분을 확장자가 aspx 인 파일로 저장한다. - 소스코드 부분는 확장자가 cs인 파일로 저장한다.

5. 성능향상 : 인터프리터 방식인 ASP 와 달리 ASP.NET은 컴파일 언어를 사용하여 페이지를 작성한다. 

6. 다양한 웹 브라우저의 지원 : 여러 클라이언트 웹 브라우저를 지원한다. IE, 파이어폭스, 크롬등 ASP.NET 은 각 웹 브라우저에 맞게 최적화된 HTML을 생성해준다. 때문에 개발 시간을 크게 단축시킬 수 있다.




내용 참조

http://www.hanbit.co.kr/store/books/look.php?p_code=B2448793397