TIL 40 | [JSP] JSP 시작

Yoonsik·2022년 9월 16일
1

JSP

목록 보기
1/12
post-thumbnail

💻 웹 프로그래밍에 대한 이해

웹 서비스 프로세스


웹 서비스 프로세스를 그림으로 나타내면 다음과 같습니다.

웹 브라우저의 주소창에 도메인을 입력하면 해당 사이트에 접속할 수가 있습니다.
예를 들어 주소창에 http://naver.com을 입력하고 엔터를 치면 '네이버'에 해당하는 컴퓨터(서버)로 접속(Request) 하게 되고, 네이버는 우리가 요청한 정보를 컴퓨터 안에서 찾아, 내 컴퓨터로 다시 보내줍니다.(Response)

이런식으로, 내 컴퓨터는 네이버라는 서버회사에게 Request를 했고, 이에 대한 대답(Response)받을 수 있었습니다.

이러한 Request와 Response가 인터넷을 통해 왔다갔다하는 컴퓨터들간의 대화를 통신이라 합니다.

이때, Request를 하는 컴퓨터를 클라이언트(Client) 라고 하고, Request를 받아, Response를 하는 컴퓨터를 서버(Server) 라고 합니다.

기본 용어

  • ip

    인터넷상으로 연결되어 있는 모든 장치(컴퓨터, 스마트폰, 노트북, 서버 ...)들은 각각의 장치들을 식별할 수 있는 주소를 가지고 있는데, 이 주소가 바로 ip 입니다.
    인터넷에 연결되어있는 장치들은 모두 ip를 가지고 있어야 인터넷상에서 통신이 가능합니다.

  • 도메인

    숫자로 이루어진 ip는 사람이 이해하고 기억하기 어렵다는 단점을 가지고 있습니다.
    이를 해결하기 위해 각 ip마다 이름을 부여할 수 있게 했는데 이것이 바로 도메인 입니다.

    ex) [도메인] naver.com -> [ip] 220.95.233.172

  • URL

    URL은 쉽게 표현하면, 도메인 + 경로 로, 도메인이 가리키고 있는 서버가 가지고 있는 다양한 컨텐츠를 식별하기 위한 식별자 입니다.

  • 서버(Server)

    웹에서 서비스를 제공하는 컴퓨터 시스템을 의미합니다.

  • 웹 서버(Web Server)

    사용자로 부터 http를 통해 요청받거나 웹 컨테이너가 전달해준 결과물을 정적인 페이지로 생성하여 사용자에게 응답해주는 소프트웨어 입니다.

  • 웹 컨테이너(Web Container)

    웹 서버가 전송해준 요청을 기초로 동적인 페이지를 생성하여 웹 서버로 돌려줍니다.

  • WAS(Web Application Server)

    웹 애플리케이션이 실행될 수 있는 환경을 제공하는 소프트웨어로, 컴퓨터에서 운영체제와 비슷한 역할을 하는 소프트웨어라 할 수 있습니다.
    WAS 는 웹 서버와 웹 컨테이너를 포함한 개념입니다.
    WAS 제품으로는 톰캣(Tomcat), 웹 로직, 웹스피어 등이 있습니다.

  • 프로토콜(Protocol)

    네트워크를 통해 컴퓨터들이 정보를 주고받는 절차 혹은 통신 규약을 말합니다.
    네트워크 상에서 서로 다른 컴퓨터들이 통신할 때 필요한 공통언어 역할을 해줍니다.
    프로토콜의 종류로는 대표적으로 HTTP가 있으며, 파일전송을 위한 FTP, 이메일 전송을 위한 SMTP 등이 있습니다.

  • HTTP(Hyper Text Transfer Protocol) / HTTPS(HTTP Secure)

    보통 www라고 줄여쓰는 World Wide Web에서 웹 서버와 사용자 사이의 통신을 위해 사용하는 프로토콜(공통언어)입니다.
    사용자가 요청하면 웹 서버가 응답하는 구조의 프로토콜이며, HTTPS는 암호화된 HTTP입니다.

  • 포트(Port)

    포트를 직역하면 '항구'라는 뜻인데, 컴퓨터 사이에서 데이터를 주고받을 수 있는 통로를 의미합니다.
    인터넷에서는 IP 주소를 통해 컴퓨터에 위치를 파악합니다. 그리고 그 컴퓨터가 제공하는 특정 서비스포트번호를 통해 알 수 있습니다.
    우리가 이용하는 인터넷상의 모든 서비스는 IP 주소와 함께 포트번호까지 지정해야 제대로 요청을 전달할 수 있습니다.


정적(Static) 웹 페이지와 동적(Dynamic) 웹 페이지

  • 정적 웹 페이지

    정적 웹 페이지란 웹 서버에 저장되어 있는 파일을 그래도 웹 브라우저에 전송해 출력하는 가장 기본적인 웹 페이지를 말합니다.

    클라이언트가 어떤 형태로 요청하더라도 같은페이지는 항상 동일한 모습을 보여주기 때문에 '정적'이란 수식어가 붙습니다.

  • 동적 웹 페이지

    동적 웹 페이지란 동일한 페이지라 할지라도 그때그때 내용이 달라질 수 있는 웹 페이지 입니다.

    서버가 클라이언트의 요청을 해석하여 가장 적절한 웹 페이지를 그때그때 생성해 보내주는 기술로, 클라이언트는 요청한 계정, 시간, 지역, 언어, 기타 입력값에 따라 다른 결과를 제공받습니다.


동적 웹 페이지와 서블릿(Servlet),JSP

동적 웹 페이지는 '전처리 과정'을 거쳐 응답 페이지를 동적으로 생성합니다.
이 전처리를 어떻게 처리하느냐에 따라 구체적인 동적 웹 페이지 기술이 나뉩니다.
대표적인 기술로는 JSP와 서블릿, ASP, PHP 등이 있습니다.

서블릿(Servlet)

서블릿은 애플리케이션 전체가 클라이언트에 다운로드 된 후 실행되는 기존 애플릿 방식의 속도, 보안, 유연성 등의 한계를 해결하기 위해 만들어진 웹 프로그래밍 기술 입니다.

클라이언트에 다운로드되어 실행되는 애플릿과 달리 서블릿은 서버측에서 실행되는 방식이며, 클라이언트에게 요청(Request)를 받으면 서버에서 처리한 후, 응답으로는 결과값만 보내주는 구조입니다.

앞에 설명하였 듯이, 동적 웹 페이지를 개발하는 데에는 '전처리' 라는 과정이 필요한데 이 전처리를 서블릿이 담당하는 구조입니다.

서블릿은 자바파일(.java)을 컴파일한 클래스 파일(.class)로, 코드 형태이며 이(코드)를 실행하고 관리해주는 런타임을 서블릿 컨테이너라고 합니다 .

클라이언트가 브라우저를 통해 WAS에게 요청을 하면, 웹 서버에서 이 요청을 받아 서블릿 컨테이너에게 전달하고 서블릿 컨테이너가 해당 요청을 수반할 수 있는 코드를 서블릿에서 찾아 실행한 뒤, 결과를 다시 웹 서버에 전달하고, 웹 서버는 전달받은 결과를 클라이언트에게 전달해 줍니다.

서블릿의 단점

서블릿은 기본적으로 Java 코드로 이루어져 있는데, 클라이언트에게 결과로 보여줄 HTML 코드를 일일이 Java로 생성+조합하다 보니 코드가 너무 복잡해지고, 많은 코드가 필요해 졌습니다.

이를 해결하기 위해 기존 서블릿방식과는 반대로 기본적으로 HTML 코드를 사용하고, 필요한 부분만 Java 코드를 삽입하는 형태인 JSP가 탄생하게 되었습니다.

JSP


JSP는 위에서 설명하였듯이, 기본을 HTML로 하고, 필요한 부분만 Java 코드를 삽입하는 형태를 띕니다.
또, JSP파일을 서블릿으로 변환하여 서블릿을 실행하는 방식입니다.

오늘날에는 JSP는 클라이언트에 보여지는 결과 페이지를 생성할 때 주로 쓰이고, 서블릿은 UI요소가 없는 제어나 기타 처리 용도로 쓰입니다.


[참고]

성낙현의 JSP 자바 웹 프로그래밍 | 성낙현 저
https://m.blog.naver.com/tmdwn2012/221332020828
https://opentutorials.org/course/228/1450

profile
꾸준함의 힘

0개의 댓글