(교재 내용 정리)
01. 웹 프로그래밍 이해하기
웹의 동작
클라이언트의 요청과 서버의 응답으로 동작
HTTP 프로토콜 지키면서 통신
CGI (common gateway interface)
웹 페이지를 동적인 페이지로 만들기(동적으로 HTML생성) 위한 기술
웹 서버와 콘텐츠 생성을 맡은 프로그램(웹서버 프로그램 = 백엔드프로그램 = 게이트웨이)
확장 CGI
매번 프로세스를 생성하는 방식이 아니고 동일한 프로그램에 대해서는 하나의 프로세스를 생성한 루
여러 개의 스레드 방식으로 요청 처리되는 방식(멀티 스레드 방식)
확장 CGI에 속하는 기술 : ASP, PHP, Servlet, JSP 등 (JSP도 이 방식에 해당)
Servlet / JSP
확장 CGI에 속하며, 자바 언어 기반으로 동적인 콘텐츠 생성하는 기술 제공
Servlet
서블릿은 자바 코드 안에 HTML 태그가 혼재돼있어 작업에 대한 분리적인 측면에서 그 효율성이 떨어짐
JSP(Java Server Page)
ASP,PHP 처럼 HTML태그 사이 중간에 동적인 콘텐츠 생성을 담당하는 Java 코드가 위치하는 형태 // 혼재돼있는 서블릿과는 다르다
동적콘텐츠를 생성하기 위해 스트립트 언어 형식으로 프로그램 작성할 수 있어 보다 쉬운 개발 가능
또한 사용자 정의 태그를 지정할 수 있는 기능이 있어 보다 효율적인 웹사이트 구성 가능
JSP
자바 기반 웹 프로그래밍 언어들 중 하나
웹 프로그래밍 언어 : 동적인 페이지 생성 위한 서버 측 스크립트 언어
자바(Java) 특징 : 객체 지향적 / 플랫폼 독립적 / 네트워크 지향적 / 뛰어난 보안성 / 멀티스레드 기능 / 자연어에 가까운 코드
JSP는 J2EE(Java 2 Enterprise Edition) API의 한 부분으로 웹 어플리케이션을 개발하기 위한 개발 언어
HTML코드 사이에 <%....%>가 동적인 부분을 담당
JSP 코드는 서버에서 동작하면서(서버 측 스트립트) 일정한 HTML 코드를 생성
생성된 HTML코드 + 프로그램 내 HTML코드 결합하여 종합적인 결과는 사용자에게 반환 -> 사용자는 HTML코드만 볼 수 있다.
Servlet
JSP 기술 이 전에 탄생되었던 JSP의 기반으로 볼 수 있는 기술
서블릿은 .java확장자를 가지는 하나의 파일로 표시, 즉 하나의 자바 프로그램.
JSP와는 달리 자바 코드가 있고 그 안에 HTML 태그의 형태같은 부분들이 삽입돼있음
스크립트보다는 자바프로그램에 더 가까운 형태
기본적으로 하나의 jsp 페이지는 하나의 서블릿으로 변환이 되고, 다시 컴파일되어 실행된다. 서버는 완전한 자바 프로그램으로 컴파일을 거친 후에 실행 가능한 상태가 된다. 그런 의미에서 보면 JSP와 서블릿은 같은 것으로 볼 수 있다.
다만 서블릿은 자바 코드 속에 HTML과 이미지 들이 혼재돼있기 때문에 디자이너가 디자인 변경을 하기 위해서는 프로그램을 작성한 자바 프로그래머의 도움이 필요하다.
마찬가지로 자바 코드 안에 디자인적 요소가 함께 있기 때문에 기능적인 변화를 줄 때에도 디자이너가 함께해야 한다.
-> 서블릿은 동적인 부분과 정적인 부분을 분리하기 어렵다.
보다 복잡한 웹사이트인 경우엔 JSP만으로 된 웹사이트 보다는
서블릿과 JSP가 상호보완적인 관계로, 즉 JSP는 화면 출력 부분을 맡고, Servlet은 처리부분을 맡아서 처리하는
웹사이트가 설계적인 측면에서 훨씬 효율적
용어 정리
웹 : 인터넷 상에 존개하는 온갖 종류의 정보를 통일된 방법으로 찾아볼 수 있게 하는 광역 정보 서비스 및 소프트웨어
동적 페이지 : 자동으로 개인화된 정보들을 제공하는 페이지
컴포넌트 : 소프트웨어 개발을 마치 레고(Lego) 블록을 쌓듯이 쉽게 할 수 있도록 하는 기술을 말한다.
스크립트 : 완성된 프로그램의 형태가 아닌 '어떤 일을 수행하는 부분 코드들', 명령어들의 부분적인 나열
이식 : 특정 시스템에서 개발한 스프트웨어를 다른 시스템에 설치해서 동작하게 하는 작업, 다른 기종으로 옮겨서 작동시키기에 용이, 기종 특성에 맞게 수정하는 작업이 쉽다 = 이식성이 높다
서버&클라인트 측 스크립트 :
스크립트 언어는 서버 측 스크립트(서버에서 실행), 클라이언트 측 스크립트(브라우저에서 실행)가 있다.
이 두 개로 나누는 기준은 스크립트 언어의 실행 위치
서버측 스트립트 언어 : JSP, Servlet, PHP, CGI, ASP 등 // 서버 측의 동적인 콘텐츠 생성을 담당하는 기술
클라이언트 측 스크립트 언어 : 자바스크립트, VB 스크립트 등
웹 어플리케이션 : 웹 응용프로그램. html문서, 각종 이미지, 텍스트 문서, 자바 스트립트 등 모든 요소들을 합쳐 만든 프로그램
jsp또한 웹 어플리케이션을 이루는 한 요소
(인강 내용 정리)
웹 프로그래밍 모델
Model1방식
클라이언트가 브라우저에서 서버에 보낸 요청(request)에 대한 모든 응답(response)를 JSP가 처리
-간단한 정보만을 전달하는 웹사이트에 사용
Model2방식
클라이언트의 요청을 서블릿이 처리하는 방식
JSP는 화면 출력 부분을 맡고, Servlet은 처리부분을 맡아서 처리
이처럼 View 따로 Controller 따로 있는 패턴을 MVC 패턴이라고 하는데, Spring도 MVC패턴
-웹사이트에서 UI를 많이 다루거나 리뉴얼이 많을 경우, 복잡한 프로그램이 많이 들어가는 경우 재설계하기 좋게 하기 위해 사용
*JavaBeans : DB에서 데이터를 가지고 올 때 사용하는 자바 클래스들
'JSP > JSP & Servlet ' 카테고리의 다른 글
내장 객체(implict object) (0) | 2019.04.29 |
---|---|
JSP 기초문법 (0) | 2019.04.28 |
서블릿 코드로 변환된 파일(.java) (0) | 2019.04.26 |
(이클립스 없이) 톰캣 서버 구동 (0) | 2019.04.26 |
JSP 동작원리(톰켓)와 서블릿 (0) | 2019.04.26 |