JSP 2. 웹 어플리케이션과 서블릿 (Servlet)

업데이트:
1 분 소요

웹 애플리케이션과 서블릿

Web의 동작 원리

  • 기본적으로 클라이언트-서버 구조를 지님
  • client-server 간 통신을 위해 HTTP 이용
    • Hyper Text를 전송하기위한 프로토콜 (통신을 위해 정의된 규약)

클라이언트

  • 주로 웹 브라우저

URL (Uniform Resource Locater)

  • 웹 페이지 주소
 프로토콜 :// 서버주소 : 포트번호 / 파일경로
  • 서버 : 웹 서버

Web 프로그래밍

  • FrontEnd : 클라이언트 중심의 프로그래밍(HTML, CSS, JS)
  • BackEnd : 서버를 구성하며 서비스를 제공하기 위한 서버쪽 프로그래밍 영역

BackEnd 중심 개발

  • 전통적인 웹 개발 모델
  • 서버에서 모든 것을 담당하는 방식임.
  • 특히 자바 서블릿/JSP가 가장 인기 있는 백엔드 개발 기술임.

1) 장점

  • 서비스 연동에 필요한 다양한 서버 환경에 대응할 수 있음.
  • 검색 엔진 최적화에 유리함
  • 기술이 안정적이고 검증됨
  • 기존에 개발된 시스템이 많고 레거시 시스템은 오랫동안 유지됨.

2) 단점

  • 서버에 화면 갱신의 과도한 요청이 발생시 문제가 될수 있음.
  • 기존의 대규모 구축된 모놀리틱 아키텍처 방식으로 서버가 적용이 됨.
    => MSA(Micro Service Architecture) 방식이 확산되고 있음.

FrontEnd 중심 개발

  • 클라이언트에서 HTML을 가지고 있거나, 서버로부터 화면 구성에 필요한
    데이터만 자바스크립트(NOdejs)로 받아와 화면을 조합해 보여줌.
    • CSR (Client Side Rendering)이라고 함.

1) 장점

  • 필요한 부분의 데이터만 갱신이 가능하기 떄문에 서버로 부터 매번 갱신된
    전체 화면을 받아올 필요가 없음.
  • 실시간 데이터 갱신이 자유로움
  • SPA ( Single Page App ) , PWA( Progressive Web App )등의 구현에
    적용할 수 있다.
  • React, Vue, Angular 등 다양한 프레임워크를 사용할 수 있음.

2) 단점

  • 프론트엔드 중심 개발이라 하더라도 데이터 제공을 위한 서버는 필요함.
  • 백엔드 작업은 당연히 존재함.
  • SSR(Server Side Rendering)을 접목해야 함.

웹 개발 트랜드

  • Nodejs, 파이썬을 이용한 서버 프로그램 개발이 늘어나고 있음.
  • REST API 형태의 개발이 주를 이루게 되면서 백엔드에서 화면을 다루어야
    하는 경우는 점점 줄어들고 있음.

스프링 프레임워크이 대세.

  • 국내에서는 자바 기반 대표적인 백엔드 개발 방식 자리잡음.
  • 전자정부 프레임워크 역시 스프링 기반임.
  • 스프링 부트(Spring Boot)의 경우 JSP 사용에 제약이 있음.

전동적인 모톨리틱 아키텍처 중심 서버 운영

  • 소규모 분산 운영 방식인 MSA로 전환되기 시작함.

one-Premise

  • 서버를 직접 운영하는 방식
  • Serverless : 서버를 작업을 서버내부가 아닌 클라우드 서비스로 처리

JSP 프로그래밍

하나의 클라이언트와 2개의 서버가 필요

  • 브라우저 (HTML)

웹 서버와 데이터베이스 서버

1) 웹 서버
  • JSP 컨테이너를 포함한 웹 서버가 필요.
  • 톰캣 : 실제 톰캣의 내부 구현 또한 아파치 소스 코드를 기반으로
    JSP 처리 부분을 추가한 형태
2) DB 서버
  • SQL(Structred Query Language) 형식의 명령어(쿼리) 필요

댓글남기기