본문 바로가기
Web/웹프로그래밍

[웹프로그래밍] JSP

by sseddi 2021. 3. 29.
728x90

JSP는 동적 페이지를 만들기 위한 제작 기술 중 하나이다.

JSP에 대해 알아보기에 앞서 등장하게된 배경을 먼저 살펴보자.

 

CGI(Commom Gateway Interface)

https://hohshho.github.io/phpNginxCI_2/

초기 웹 프로그래밍에서 동적 페이지를 위한 기술로 사용되었다.

프로세스 단위로 실행되기 때문에 사용자 증가 시 성능이 급격하게 저하된다는 단점이 있었다. (매우 느려짐)

 

이런 CGI의 단점을 보완하고자 확장 CGI가 나왔다.

 

확장 CGI

확장 CGI는 기존 CGI의 프로세스 생성 방식을 변화시켜 시스템의 부하를 줄였다.

여기에 ASP, PHP, Servlet/JSP 등이 포함된다.

 

Servlet/JSP 는 Java 언어를 기반으로 한다. Java 언어를 알아야 하므로 진입장벽이 높다는 단점이 있지만, (Servlet이 Java로 짜여져 있다) Java의 장점인 플랫폼에 대해 독립적인 것과 컴파일된 파일을 재컴파일 없이 즉시적인 이식이 가능한 것을 수용했다. 또한, 사용자정의 태그로 기능 확장이 가능하고 아파치 서버를 지원한다.

 

Servlet

Servlet은 완전한 자바파일의 형태로 접근성이 어렵다. (왜냐면 Servlet이 JSP 보다 먼저 개발되었기 때문 - 이를 축소시켜 나온 것이 JSP) JSP도 자바 언어를 기반으로 하고 있지만 그와 달리 자바 코드 안에 HTML태그들도 포함되어 있다. JSP 페이지는 하나의 servlet으로 자동 변환이 되고 다시 컴파일 되어 실행되기 때문에 servlet은 JSP 동작을 할 때 사용된다. 또한 브라우저에 표시될 필요가 없지만 내부적으로 처리되어야 할 부분에 유용하게 사용이 된다.

 

JSP

JSP는 웹 프로그래밍 언어들 중 하나로 동적 페이지를 생성하기 위한 서버 측 스크립트 언어이다.

자바 언어를 기반으로 아래와 같은 자바의 장점을 가지고 있다. 

객체지향적 / 플랫폼 독립적 / 네트워크 지향적 / 뛰어난 보안성 / 멀티스레드 기능 / 친근한 코드(?)

 

이제 JSP의 동작 구조를 살펴보자

http://www.w3big.com/ko/jsp/jsp-architecture.html

사용자가 JSP 페이지를 웹서버에 요청한다.

그러면 웹서버는 JSP 컨테이너에게 넘기고,

JSP 컨테이너는 JSP 파일을 찾아서 확인하고

.java 확장자 파일로 변환한다. 그럼 JSP 코드가 자바 코드(서블릿)로 변환되는 것이다.

그 후 자바 코드를 컴파일 하면 .class 확장자의 바이트 코드로 변환된다.

이 바이트 코드는 웹 서버를 거쳐

다시 사용자의 웹 브라우저로 보내져서 요청한 JSP 페이지를 나타낸다.

 

 

JSP Life Cycle (생명주기)

https://www.programmingforfuture.com/2013/02/jee-java-server-page-jsp-life-cycle.html

 

 

 

 

 

 

 

 

 

728x90

'Web > 웹프로그래밍' 카테고리의 다른 글

[웹프로그래밍] SQL  (0) 2021.05.18
[웹프로그래밍] JSP 지시자와 액션 태그  (0) 2021.04.16
[웹프로그래밍] 인터넷과 웹  (0) 2021.03.29

댓글