1. 웹 어플리케이션이란?
- 웹 어플리케이션은 웹 브라우저의 요청에 대하여 처리한 결과를 보여주는 프로그램을 의미
- 사용자가 어떤 상태로 무엇을 요청했느냐에 따라 스스로 판단하여 자동으로 각각의 요청에 대한 처리 결과를 보여주는 프로그램
- 정적인 홈페이지는 항상 일정한 화면을 제공해주며, 브라우저가 이미 저장된 HTML, CSS, JS 파일을 다운받음. 그에 비해 웹 어플리케이션은 누가 페이지를 요청했는지에 따라 다른 정보(다른 서비스 제공)를 보여줌
2. 웹 어플리케이션의 구성요소
웹 브라우저
- 인터넷 익스플로러, 크롬, 파이어폭스, 오페라, 사파리, ....
웹 서버(WAS : Web Application Server)
- 웹 서버란 웹 브라우저를 이용하여 World Wide Web 을 사용하는 클라이언트에게 미리 저장된 하이퍼텍스트(Hyper Text)를 제공하는 서버
- 대표적으로는 MS 기반의 IIS 서버와 유닉스 기반의 아파치 서버 등이 있음
어플리케이션 서버
- 처리 결과값을 웹 서버에 전달
- 클라이언트가 어떤 페이지를 요청했느냐에 따라 그 문서를 동적으로 만들어 전달
- JSP, Servlet 등으로 동적 웹 페이지 구축
데이터베이스
- 데이터 저장 및 처리
3. 웹 어플리케이션의 구분
어플리케이션 서버 방식
- 웹 어플리케이션 서버를 통해 간접적으로 웹 어플리케이션 프로그램을 실행함
- 대용량 처리에 유리하며, CGI(Common Gateway Interface) 방식 (리소스 소모가 심함)에 비해 메모리 사용량이 적음 (→ 여러 사용자가 파일을 열어도 프로그램은 하나만 돌아감)
스크립트 방식
- 코드 형태 : 컴파일 되지 않은 스크립트 코드
- 실행 방식 : 스크립트 코드를 해석한 뒤 실행
- 코드 변경 : 스크립트 코드만 수정
4. 웹 어플리케이션 개발을 위한 기술들
Servlet (Server + Applet)
- Sun 사에서 내놓은 기술로서 JAVA 라는 언어를 기반으로 하여 동적인 컨텐츠를 생성하는 기술
- JAVA 코드 안에 HTML 태그가 혼재되어 있어 효율성이 다소 떨어질 수 있음
- JAVA 가 HTML 을 품고 있는 형태 (확장자는 .java → .class)
- 웹 어플리케이션을 구축하기 위한 웹 프로그램을 구성하는 언어의 한 종류(JAVA 기반)
- JSP를 내부적으로 Web Container 가 Servlet 으로 변경시켜줌
- 『GenericServlet』이나 『HttpServlet(★)』을 활용함
JSP (Java Server Page)
- JSP 또한 Java 라는 언어를 기반으로 하여 만들어진 것이지만 ASP, PHP 처럼 동적인 컨텐츠를 생성하기 위해 스크립트 언어 형식으로 프로그램을 작성할 수 있어서 개발자에게 비교적 쉬운 개발을 할 수 있게 함
- 사용자가 직접 태그를 정의해서 사용할 수 있는 사용자 정의 태그를 지정할 수 있는 기능도 갖고 있음
- HTML 이 JAVA 를 품고 있는 형태 (확장자는 .jsp → .html)
JSP + Servlet
- JSP의 단점은 MVC 패턴을 적용하기 힘든 것이고, Servlet의 단점은 웹 페이지(view) 작성이 번거롭고 복잡(불편)하다는 것이므로 구조가 복잡해질 수는 있으나, Servlet + JSP 로 MVC 패턴 적용 및 웹 페이지(view)를 보다 편리하게 작성할 수 있음
- JSP 에서 정적인 부분을 담당하고, Servlet 에서는 동적인 처리를 위한 부분으로 사용되어 보다 효율적인 웹 어플리케이션을 구축할 수 있음
- JSP 만으로는 JSP(입력) → JSP(처리, 결과) 이나, JSP + Servlet 을 사용하면 JSP(입력) → Servlet(결과를 위한 처리) → JSP(결과) 방식으로 구성됨
- URL 패턴을 지정하여 어떤 요청이 어떤 서블릿에 매핑되는지 결정할 수 있으며, URL 패턴을 지정하는 방법은 크게 3가지(/a, /*, .do)
- 『init()』과 『destroy()』 는 단 한 번 호출되며, 『service()』는 클라이언트의 요청이 있을 때 마다 호출됨
'JSP - Servlet' 카테고리의 다른 글
| [JSP - Servlet] Chapter 4. 포워드(Forward)와 리다이렉트(Redirect) (0) | 2024.02.19 |
|---|---|
| [JSP - Servlet] Chapter 3. JSP 데이터 송수신 (1) | 2023.12.31 |
| [JSP - Servlet] Chapter 2. JSP 개념 (0) | 2023.12.31 |