JSP 2. 웹 어플리케이션과 서블릿 (Servlet)
웹 애플리케이션과 서블릿
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) 형식의 명령어(쿼리) 필요
댓글남기기