Tiny Bunny
본문 바로가기

2023-02 몰입형 SW 정규 교육

웹 프로그래밍 개념 (Web Programming)

728x90


Web Programming 언어

 

 

 


 

 

 

Web Programming이란?

 

클라이언트와 웹 서버간 request(요청)과 response(응답)을 주고 받는 행위를 말합니다.

* request는 클라이언트가 서버에게 요청을 보내는 행위
* response는 서버가 클라이언트에게 응답을 보내는 행위

 

 

 

Web Programming 언어 종류

 

CGI (Common Gateway Interface)

ASP (Active Server Page)

PHP (Personal Homepage Tools)

JSP (Java Server Page)

 

 

 

CGI (Common Gateway Interface)이란?

 

응용 프로그램과 웹 서버 사이의 정보를 주고 받는 방식이나 규약들을 정해놓은 것을 말합니다.

 

- 초기 웹 프로그래밍에 사용된 기술입니다.

- CGI는 프로세스 단위로 실행되기 때문에 사용자가 증가하면 성능이 저하됩니다.

등장배경
정적인 html 방식으로는 동적인 웹 페이지를 만들기 어렵기 때문에 서버 측에서 동적인 데이터를 처리해 클라이언트에서 html 문서로 전송해줄 수 있는 응용 프로그램의 필요성이 드러났고 이때 나온 게 CGI입니다.

 

 

 

ASP (Active Server Page)란?

 

Microsoft사에서 동적인 웹 페이지의 구현을 위해 Visual Basic 언어를 기반으로 만들어진 웹 프로그래밍 기술입니다.

단점
- 플랫폼에 비독립적입니다.
- 다른 언어에 비해 시스템 자원의 효율성과 확장성이 떨어집니다.

 

 

 

PHP (Personal Homepage Tools)란?

 

ASP와 유사한 스크립트 기반의 언어이지만, ASP와는 다르게 C를 기반으로 만들어진 언어이기 때문에 속도가 빠르다는 장점이 있습니다.

단점
- 서버측 지원이 부족하고 기업형의 복잡한 시스템 구조에 적용하기가 어렵습니다.
- JSP에 비해 보안상의 약점을 가지고 있습니다.

 

 

 

JSP (Java Server Page)란?

 

자바를 이용하여 동적인 웹 페이지를 만들기 위해 Sun사가 개발한 기술입니다.

 

- 서버페이지에서 쉽게 작성할 수 있고, 서블릿(servlet)과 함께 구동함으로써 서블릿의 기능을 사용할 수 있고 자바빈즈, EJB와 같은 기술로 보다 강력한 객체지향적 지원이 가능합니다.

- 대규모 프로젝트에 용이합니다.

 

# JSP 특징
강력한 이식성
- JVM을 이용한 자바 언어의 특성상 어떤 운영체제에서도, 어떤 JSP 컨테이너에서도 사용이 가능하므로 한 번 작성한 코드를 별다른 수정 없이 다른 플랫폼으로 얼마든지 이식이 가능합니다.

서버 지원의 효율적인 사용
- Thread 기반의 아키텍처를 사용하여 서버 자원을 효율적으로 관리할 수 있습니다.

간편한 MVC(Model - View - Controller) 패턴 적용
- JSP(View)와 자바빈즈(Model) 그리고 서블릿(Controller)를 이용해 쉽게 구현할 수 있습니다.

JSTL, 커스텀 태그 등을 이용하여 개발 용이성
- JSP의 문제점은 문서 내에 자바 형식의 문법과 태그 형식의 html 문법이 같은 페이지 내에 존재하기 때문에 JSP 문서의 코딩 양이 많아질수록 가동성이 떨어집니다.
- 하지만 JSP 2.0 이후로 JSTL(JSP Standard Tag Library)과 커스텀 태그에 대한 지원이 강화됨으로써 자바 형식의 문법을 태그 라이브러리 파일로 만들어서 태그만으로 구성할 수 있게 만드는 기능이 강력해졌습니다.

 

 

 

서블렛(Servlet)이란?

 

브라우저는 기본적으로 html형식의 문서만을 표시할 수 있기 때문에 사용자의 요구에 맞는 동적 웹 페이지의 표시에 한계점을 가지고 있습니다. 그러므로 웹 서버 측에서 사용자의 요구에 따라 자동으로 변화된 html 형식의 페이지를 생산해 전송해 줄 수 있는 여러 기술이 개발되었고 그 중 자바 진영의 기술이 서블릿입니다.

 

- 서블릿은 기본적으로 자바의 모든 api를 그대로 사용할 수 있습니다.

 

 import java.~;


- 강력한 객체지향성등 자바의 모든 장점을 계승하고 있습니다.

728x90