[MustHave JSP] 1장 JSP 기본 -1

0woy·2024년 6월 14일
0

개발도서

목록 보기
1/3
post-thumbnail
post-custom-banner

출처

알고리즘 스터디 방에서 현업자 분께 추천받아 구매 후 장 별로 정리하고자한다.

🍰 학습 목표
JSP의 개념, 탄생 배경, 동작 원리를 이해하고 JSP 파일의 기본 구조와 핵심 요소 익히기.


1. 기본 용어 소개

  • 서버(Server) : 웹에서 서비스를 제공하는 컴퓨터 시스템
    서비스를 제공하는 웹 애플리케이션은 서버 컴퓨터에 파일의 형태로 저장

  • 웹 서버(Web Server): 사용자로부터 HTTP를 통해 요청을 받거나, 웹 컨테이너가 전달해준 결과물을 정적인 페이지로 생성해 사용하에게 응답해주는 SW

  • 웹 컨테이너(Web Container) : 웹 서버가 전송해준 요청을 기초로 동적인 페이지를 생성해 웹 서버로 돌려줌

  • WAS(Web Application Server) : 웹 애플리케이션이 살행될 수 있는 환경을 제공하는 SW, 웹 서버와 웹 컨테이너를 포함한 개념
    EX) 톰캣, 웹로직, 웹스피어 등

  • 프로토콜(Protocol) : 네트워크를 통해 컴퓨터들이 정보를 주고받는 절차 혹은 통신 규약, 서로 다른 컴퓨터들이 대화하는 데 필요한 공통 언어 역할을 함
    EX) HTTP, FTP, SMTP 등

  • HTTP/HTTPS(HyperText Transfer Protocol Secure) : www에서 웹 서버와 사용자 사이의 통신을 위해 사용하는 통신 규약, 사용자가 요청하면 웹 서버가 응답하는 구조

  • 포트(Port) : 항구라는 의미, 컴퓨터 사이에서 데이터를 주고받을 수 있는 통로
    우리가 이용하는 인터넷 상의 모든 서비스는 IP 주소와 함께 포트 번호까지 지정해야 제대로 요청을 전달할 수 있음


2.1 정적 / 동적 웹 페이지

1) 정적 웹 페이지
웹 서버에 저장되어 있는 파일 을 그대로 웹 브라우저에 전송해 출력하는 가장 기본적인 웹 페이지

사용자가 어떤 형태로 요청하더라도 항상 동일한 모습을 보여준다.

2) 동적 웹 페이지
동일한 페이지라 할지라도 내용이 달라질 수 있는 웹 페이지

서버가 사용자의 요청을 해석해 가장 적절한 웹 페이지를 생성해 보내주는 기술

동적 웹 페이지는 전처리 과정을 거친 후 응답 페이지를 동적으로 생성
전처리 처리 방식에 따라 구체적인 동적 웹 페이지 기술이 나뉘고, 대표적으로 JSP & 서블릿이 있음 그 외) PHP, ASP


2.2 탄생 배경

1) 자바 애플릿(JAVA Applet)

웹을 동적으로 구현하기 위한 고대 자바 기술 (할아버지)
웹에서 실행되도록 설계된 자바 애플리케이션을 통째로 웹 브라우저로 전송.
그 후, 자바 가상 머신을 탑재한 웹 브라우저가 이를 실행함

HTML, JS가 발전하면서 더 이상 지원되지 않음..

2) 서블릿(Servlet)

자바 애플릿은 속도, 보안, 유연성 등에서 한계 존재. 당연함 통째로 옮겨버림
요청을 받으면 서버에서 처리한 후, 응답으로 결괏값만 보내주는 서블릿 등장

전처리 부분을 서블릿이 담당하는 구조.
서블릿은 자바파일(.java)을 컴파일한 클래스 파일(.class) 형태!
이를 실행하고 관리해주는 런타임을 서블릿 컨테이너라고 한다.
대표적인 서블릿 컨테이너: 아파치 톰캣

위처럼 기본적으로 서블릿은 자바 코드임
근데 HTML을 결과로 보여줄 때 HTML을 하나하나 자바로 생성하고 조합하다 보니까 코드가 겁나게 많아져버리는 단점.!

3) JSP

생각의 가성비 -> 기본을 HTML로 하고, 필요한 부분만 자바 코드 삽입

복잡해 보이지만, JSP 파일을 서블릿으로 변환해서 서블릿을 실행하는 구조.
한 번 서블릿으로 컴파일된 JSP 파일은 캐시되므로 실질적인 성능 저하 없이
개발 생산성과 유지보수 편의성을 모두 취한다.

JSP가 서블릿으로 변환되어 실행된다는 건 서블릿 기술도 사용할 수 있다는 것
= 적재적소에 JSP와 서블릿 선택 사용 가능

JSP서블릿
HTML 코드 안에서 필요한 부분만 자바 코드를 스크립트 형태로 추가자바 코드 안에서 전체 HTML 페이지 생성
자주쓰이는 기능을 내장 객체로 제공반드시 변수 선언 및 초기화 선행
처리된 결과를 보여주는 View 를 만들 때 사용Controller를 만들 때 사용

오늘날의 웹 사이트

대부분의 웹 사이트나 웹 애플리케이션은 정적 콘텐츠와 동적 콘텐츠가 혼합 되어있음.
= 정적 웹 페이지와 동적 웹 페이지 둘 다 씀

post-custom-banner

0개의 댓글