본문 바로가기

Back-end/JSP

JSP 개요

1. JSP의 개요

1-1. JSP 특징

  1. JSP는 Java Server Pages의 약어로 웹 페이지를 동적으로 처리할 수 있는 기술 중의 하나로 서블릿 프로그램의 기능을 HTML 파일 내에 스크립트 형식으로 구현할 수 있다.
  2. 프리젠테이션 로직과 비즈니스 로직의 분리
    • 프리젠테이션 로직 : 브라우저 화면에서의 표현을 꾸미는 절차 및 기능
    • 비즈니스 로직 : 사용자의 요청에 대한 내부적인 처리 절차 및 기능
    • JSP는 프리젠테이션 로직과 비즈니스 로직을 효율적으로 분리하여 동적 웹 사이트를 구축할 수 있는 스크립트이다.
    • 비즈니스 로직은 자바 빈즈 컴포넌트 모델을 통하여 구현 가능하다.
  3. 프리젠테이션 로직과 비즈니스 로직을 분리하는 이유?
    • 웹 페이지의 디자인이 변경되더라도 내부 비즈니스 로직을 처리하는 JSP 및 자바 빈즈 코드를 변경할 필요가 없기 때문.
    • 비즈니스 로직이 완전히 바뀌는 상황이라도 프리젠테이션 로직을 담당하는 코드에는 전혀 영향을 미치지 않기 때문.
    • 분리와 관련하여 MVC 모델을 통한 JSP(View), 자바 빈즈(Model), 서블릿(Controller)의 연계가 가능하다.
  4. 컴포넌트의 재사용
    • 로직의 분리에 의하여 발생되는 부수적인 효과이다.
    • 컴포넌트 재사용 : 많은 JSP 페이지나 자바 빈즈에서 공통적으로 사용되는 컴포넌트를 만들어 이 컴포넌트를 계속해서 재사용한다는 의미.
    • 주소 검색 기능, 한글 처리 기능, 데이터베이스 연결 기능 등을 공통 컴포넌트로 개발하여 개발을 좀 더 편리하게 할 수 있다.
  5. JSTL, EL, 커스텀 태그 등을 활용한 개발 용이성
    • 기본적인 스크립팅 언어 규칙 외에도 HTML 태그처럼 사용이 가능한 JSTL(Java Standard Tag Libray)를 제공.
    • JSTL과 함께 융통성 있고 손쉽게 사용이 가능한 EL(Expression Language)를 정의.
    • 개발자가 임의로 새롭게 태그를 만들어 사용하도록 하는 커스텀 태그 기능 지원.
  6. 서버 자원의 효율적 관리
    • JSP는 최초 요청 시에 해당 페이지에 대해 컴파일을 통하여 서블릿이 구성되고 메모리로 적재된다.
    • 이후 요청들에 대해서 새로운 컴파일 생성 및 메모리 적재 없이 이미 적재되어 있는 서블릿에서 바로 응답을 해준다.
    • 이로 인해 서버의 자원을 효율적으로 활용하면서 동시에 응답속도도 상당히 빠르다.

1-2. JSP의 처리과정

  • JSP 파일 최초 요청 시의 동작 과정
    1. JSP 파일은 Servlet인 Java 소스 파일로 변환되고 다시 클래스 파일로 컴파일 된다.
    2. 이 클래스 파일이 JSP/Servlet 컨테이너인 Tomcat 내에서 실행되어 웹 브라우저로 전달된다.

JSP 처리 흐름

  • JSP 파일 재요청 시의 동작 과정
    1. 변환 및 컴파일 과정은 맨 처음 요청했을 때에만 이루어지는 과정
    2. 한번이라도 요청했던 JSP 파일을 다시 재요청하면 이미 메모리에 적재된 클래스가 응답해 주기 때문에 대체로 평균 응답 시간이 매우 짧다.

JSP 처리 상세 흐름