2024-소프트웨어과 1학년/ASP

ASP 중간고사 대비 내용 정리 [지속 업데이트]

simless786-it 2024. 9. 26. 15:08

[웹 프로그래밍의 이해]

<네트워크 기반 프로그램>

  • 하나 이상의 컴퓨터에서 자료와 자원을 공유하며 업무를 처리함.
  • 서버(server): 자료나 자원을 제공.
  • 클라이언트(client): 자료나 자원을 요구

<웹 애플리케이션(웹 응용 프로그램)>

웹 프로그래밍 = 웹 애플리케이션 개발

>서버(IIS, Apache, Tomcat, PHP..)

>클라이언트(웹 브라우저)

 

웹을 통한 상호 커뮤니케이션 형태 진화

>다양하고 창의적인 웹 애플리케이션 개발 필요성 대두

 

[정적 웹 페이지]

<웹의 구성>

  • URL(Uniform Resource Locator): 웹 페이지의 위치를 표현하는 주소
  • HTTP(Hypertext Transfer Protocol): 자원을 주고받기 위한 약속(protocol 규약)
  • HTML(Hypertext Markup Language): 자원을 표현하고 자원 사이의 이동을 쉽게 할 수 있도록 개발된 언어.

<정적 웹 페이지(static web Page)

클라이언트에서 문서 요청-> 저장된 문서 그대로 클라이언트에게 전달.

서버에 있는 문제가 수정되지 안는 한 항상 같은 웹 문서 응답.

 

<웹 사이트(web site)>

서로 관련 있는 웹 페이지들을 모아 놓은 것.

 

[동적 웹 페이지]

<동적 웹 페이지(Dynamic Web Page)>

  • 시시각각 변화하는 데이터를 반영하는 페이지
  • 웹 애플리케이션

 

[ASP.NET]

<ASP.NET>

웹 애플리케이션 개발 언어 중 하나이다.

> ASP, ASP.NET, JSP, PHP, Ruby(on Rails)...etc

 

웹 애플리케이션 구축을 위한 프로그래밍 프레임워크

 

<MS사의 웹 솔루션 발전 과정>

 

  • 1세대 CGI(Common Gateway Interface)
  • 클라이언트의 요청으로 서버에서 프로그램 실행-> HTML 문서 생성
  • C나 Perl로 프로그램 작성
  • 사용자 요청 때마다 이를 처리하기 위한 새로운 프로세스 생성.(동시 접속자 수가 늘어날 경우 웹 서버에 막대한 부하)
  • 2세대 ISAP(Internet Server Application Programming)
  • CGI가 실행 파일 형식인 반면 ISAP는 DLL(Dynamic Linking Library)형식
  • DLL(동적 연결 라이브러리)은 여러 함수의 공유 라이브러리(프로세스에서 해당 프로세스의 실행 코드에 포함되지 않은 함수 호출 가능, 데이터와 자원 공유 용이, 여러 개의 응용 프로그램이 메모리에 있는 하나의 DLL 복사본 내용 동시 엑세스, DLL을 사용하지 않는 응용 프로그램보다 컴퓨터 부하 감소)
  • 3세대 IDC(Internet Database Connector)
  • MS사가 선보인 최초의 스크립트 방식의 웹 솔루션.
  • 스크립트(기계어로 변환하는 컴파일 과정을 거치지 않고도 해석 가능한 프로그래밍 코드, 서버 스크립트와 클라이언트 스크립트로 구분)
  • 서버스크립트=ASP,ASP.NET, JSP, PHP..
  • 클라이언트 스크립트= 웹 브라우저에서 처리되는 코드로 자바스크립트, VB스크립트 등
  • 액세스나 엑셀 등에 저장된 데이터 이용 동적인 웹 페이지 구현

 

<ASP의 단점>

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

=스파게티 코드 (HTML태그와 스크립트 혼합)로 유지 보수에 어려움.

한정된 데이터형

variant 데이터형만 지원. 변수에 대한 명시적인 데이터형 선언이 불가능. 물리적, 논리적 오류 발생 가능성이 높다

 

<ASP.NET의 특징>

이벤트 기반 프로그래밍 모델

>체계적인 프로그래밍 구조 제공

>높은 재사용성, 쉬운 공유, 작성 용이, 높은 가독성

 

컨트롤 기반 페이지

>부품을 조립하여 완성품을 만들듯 쉽고 직관적으로 프로그래밍

 

언어 독립적인 플랫폼(Platform) 제공

>스크립트 언어뿐 아니라 컴파일된 언어도 제공

>어떠한 .NET(VB,C#,J#)언어로도 ASP.NET 페이지 작성 가능

>만들어진 웹 페이지는 CLR(Common Language Runtime)이 지원되는 운영체제에서 구동 가능.

 

<Code-behind>

ASP의 스파게티 코드의 문제점 극복을 위해 UI와 업무 로직 분리

사용자 UI-HTML부분으로 사용자들에게 보여지는 부분

업무 로직- 업무 처리를 위한 코드 부분

 

 

 

<ASP.NET의 특징>

성능 향상

  • 인터프리터 방식인 ASP와 달리 ASP.NET은 컴파일 언어 사용 페이지 작성
  • 컴파일 된 페이지를 캐싱(Caching) 기법에 의해 메모리에 올려놓아 성능 향상
  • 가비지 컬렉터(Garbage Collector)에 의한 객체 관리
  • 메모리 누수와 같은 원인으로 서버가 다운되는 일 최소화

다양한 웹 브라우저의 지원

  • 인터넷 익스플로러, 파이어폭스, 구글 크롬..
  • 모바일 폰, PDA, 스마트폰 등에도 적합하게 동작하는 콘텐츠 동적 구성 기능 보유

 

<홈 디렉터리(루트 디렉터리) 사용의 문제점>

보안의 문제: 웹 주소의 구조가 루트 디렉터리의 구조, 루트 디렉터리의 구조 공개로 악의적 침입에 의한 주요 문서 유출 가능, 루트 디렉터리의 권한 획득으로 하위 폴더 접근.

 

공간 부족 현상: 홈 디렉터리에만 모든 사이트의 문서 저장 불가능.

 

<가상 디렉터리>

물리적으로 루트 디렉터리 또는 이에 종속된 하위 디렉터리가 아님에도 불구하고 웹에서 웹 사이트의 하위 디렉터리로 인식되는 디렉터리. 가상 경로와 실제 경로를 서로 대응시키는 작업 필요.

 

<가상 디렉터리 설정하기>

  1. XAMPP Control Panel에서 모두 Stop으로 중단
  2. IIS 관리자 실행 및 시작 Defult Web Site/고급설정
  3. IIS 실행->고급 설정, 이름, 실제경로 변경
  4. IIS 실행-> Defult Web site 시작
  5. 가상 디렉터리 추가
  6. 별칭, 실제 경로 설정
  7. ASP 가상 디렉터리 사용권한 편집
  8. 보안/고급/사용권한/User권한에서 읽기 및 쓰기 실행 체크
  9. EditPlus 실행 새파일/다른 파일들/VBScript
  10. 예제삽입
  11. 파일저장. 확장자 .ASP
  12. 웹브라우저 URL창에 localhost/asp/파일경로/파일이름.asp 입력

[정리]

<정적 웹 페이지와 동적 웹 페이지>

정적 웹 페이지: 수정하지 않는다면 늘 동일한 웹 페이지

동적 웹 페이지: 사용자에 따라, 실시간으로 변화하는 내용에 따라, 저장된 데이터를 바탕으로 만들어지는 페이지

 

<웹 프로그래밍>

웹을 기반으로 실행되는 프로그램을 웹 애플리케이션(응용 프로그램)이라 하고 이를 개발하는 것을 프로그래밍 한다고 함.

 

<동적 웹 페이지 개발 언어의 종류>

동적 웹 페이지를 만들기 위해서는 웹 애플리케이션을 개발하여야 하고 개발에 사용되는 언어에는 ASP, ASP.NET, JSP, PHP, Ruby(on Rails)등이 있음

 

<ASP.NET의 특징>

  • 기존 ASP의 모든 기능을 제공하고 ASP와 완벽 호환
  • ASP의 문제(스파게티 코드, 한정된 데이터형 등) 해결
  • 웹 애플리케이션을 구축하기 위한 프로그래밍 프레임워크
  • 웹 애플리케이션을 실행하고 서비스하기 위해서는 IIS 서버를 설치해야함
  • 이벤트 기반프로그래밍 모델을 통해 체계적인 프로그래밍 구조제공
  • 컨트롤들을 통해 쉽고 직관적으로 프로그래밍할 수 있는 컨트롤 기반 페이지
  • CLR(Common Language Run time)을 통한 언어 독립적인 플랫폼 제공
  • Code-behind모델로 ASP의 스파게티 코드 문제 해결
  • 컴파일 언어를 사용하여 페이지 작성, 컴파일된 페이지는 캐싱(Caching)기법을 통해 성능 향상
  • 가비지 컬렉터로 메모리 누수와 같은 원인으로 인해 서버가 다운되는 일 최소화
  • 다양한 웹 브라우저 지원

<가상 디렉터리>

가상 디렉터리란 물리적으로 루트 디렉터리 혹은 이에 종속된 서브 디렉터리가 아님에도 불구하고 웹에서 웹 사이트의 하위 디렉터리로 인식되는 디렉터리.

 

<ASP 단점>

스파게티 코드(HTML태그와 스크립트가 혼합된 형태)로 이루어져 유지보수에 어려움이 있음.

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