티스토리 뷰
운영체제란?
운영체제란 오퍼레이팅 시스템(OS)라고도 불리며 사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어이다.
시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공한다.
01. 웹과 JSP 프로그래밍 이해하기
1.1 인터넷과 웹의 개요
인터넷은 컴퓨터가 서로 연결되어서 통신 프로토콜(TCP/IP)을 이용하여 정보를 주고 받는 컴퓨터 네트워크이다.
인터넷을 통해 광범위한 정보와 서비스를 제공할 수 있다.
웹은 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 잇는 정보 공간으로 월드 와이드 웹(www)의 줄임말이다.
1.2 웹의 동작 원리
웹은 기본적으로 클라이언트/서버 방식으로 동작한다.
클라이언트(웹 브라우저)가 특정 페이지를 웹 서버에 요청(request)하면 서버에서 처리한 후 그 결과를 클라이언트에게 보내 응답(response)한다. 이때 응답하여 HTML 페이지나 파일을 클라이언트에게 제공하는 장소가 웹이다.
쉽게 치킨 가게를 비유하여 설명을 할 수 있다.
고객이 치킨을 주문(요청)하면 치킨 가게가 치킨을 제공(응답)한다.
이때 요청을 한 고객은 클라이언트 응답을 제공 하는 치킨 가게는 웹 서버가 된다.
* 서버는 리소스를 서빙한다.
* 크롬은 웹 해석기로 HTML, CSS, JS를 해석한다.
1.3 정적 웹 페이지와 동적 웹 페이지
웹 페이지는 크게 정적(static) 페이지와 동적(dynamic) 페이지로 나눌 수 있다.
정적 웹 페이지는 컴퓨터에 저장된 텍스트 파일을 그대로 보는 것이고 동적 웹 페이지는 저장된 내용을 다른 변수로 가공 처리하여 본다.
정적 웹 페이지는 수동적이며 변수를 사용하지 않고 종류로는 HTML, CSS 등의 웹 언어를 사용하여 작성하고,
동적 웹 페이지는 능동적이며 변수를 사용하여 변화에 적응하기 쉽다 종류로는 PHP, ASP(C#), JSP(HTML+JAVA)를 사용하여 작성한다.
정적 페이지 절차
1. 클라이언트가 웹 페이지 요청
2. 웹 서버가 *.html 파일 검색
3. 이미 준비된 HTML 문서를 그대로 전달
4. 웹 브라우저가 HTML 문서를 보여준다.
동적 페이지 절차
1.클라이언트가 웹 페이지 요청
2. 웹 서버가 요청을 분석하여 처리
3. 결과를 HTML 문서로 생성
4. 요청에 맞게 정제된 HTML 문서를 전달
5. 웹 브라우저가 HTML을 보여준다.
1.4 웹 프로그래밍과 JSP
웹 프로그래밍 언어는 클라이언트(HTML, CSS ,JS) 측 실행 언어와 서버(JAVA,Python, C#...) 측 실행 언어로 구분된다.
JSP 또한 서버 측 웹 프로그래밍 언어 중 하나이다.
원래는 자바를 기반으로 하는 서버 측 프로그래밍 방식은 서블릿을 개발하여 사용했으나 HTML 코드에 직접 삽입할 수 있도록 개발된 기술인 JSP가 개발되었다.
서블릿과 JSP의 차이점은 서블릿이 자바 코드 안에 HTML 코드를 추가하고 JSP는 HTML 코드 안에 자바 코드를 추가한다.
* 서블릿 : 자바 객체, 기본적으로 제공된다.
JSP의 특징
1. JSP는 서블릿 기술의 확장이다.
: JSP에서는 서블릿의 모든 기능을 사용할 수 있다. 서블릿의 기능과 같이 JDBC,JNDI 등을 포함하는 자바 API를 사용할 수 있다. 또한 쉽게 개발할 수 있도록 내장 객체, 미리 정의된 탵그, 펴햔식 언어와 사용자 정의 태그를 사용할 수 있다.
(JSP=HTML+JAVA 이기 때문에 HTML에서 사용하는 태그와 JAVA에서 사용하는 객체를 사용한다.)
2. JSP는 유지 관리가 용이하다.
3. JSP는 빠른 개발이 가능하다.
:컴파일 하고 프로젝트를 배포하는 과정이 필요 없기 때문에 빠른 개발이 가능하다.
4. JSP로 개발하면 코드 길이를 줄일 수 있다.
1.5 JSP 페이지의 처리 과정
JSP페이지는 하나의 서블릿 프로그램으로 변환되어 실행된다.
JSP 페이지의 처리과정
1. 웹 브라우저가 웹 서버에 JSP 를 요청한다. 웹 서버는 요청된 Hello.jsp 에서 jsp확장자를 발견하여 JSP 페이지인 것을 확인하고 웹 서버에 있는 JSP 컨테이너에 전달한다.
2. JSp 컨테이너는 JSp 페이지를 서블릿 프로그램인 Hello_jsp.java로 변환한다.
3. JSp 컨테이너가 서블릿 프로그램을 컴파일하여 Hello_jsp.class로 만들고 이를 웹 서버에 전달한다.
4. 웹 서버는 정적 웹 페이지처럼 *.class의 실행 결과를 웹 브라우저에 응답으로 전달하므로 웹 브라우저는 새로 가공된 HTML 페이지를 동적으로 처리한 결과를 보여준다.
- 웹 서버, 웹 컨테이터, 웹 애플리케이션 서버의 차이
- 웹 서버(Web server)
HTTP 프로토콜을 이용하여 클라이언트(웹 브라우저)의 요청을 받아 html이나 오브젝트를 전송한다.
클라이언트의 요청 중 웹 서버 자체적으로 처리할 수 업슨ㄴ 것은 컨테이너처럼 처리할 수 있는 곳으로 넘겨 처리할 수 있다.
웹 서버만으로 구축된 서버는 웹 페이지, 이미지 등 정적 페이지를 생성한다.
ex) 아파치, llS 등
- 웹 컨테이너(web container)
웹 컨테이너는 JSP와 서블릿을 실행 할 수 있는 프로그램이다.
서블리 ㅅ컨테이너라고도 한다.
웹 서버에서 JSP를 요청하면 톰캣에서는 JSp 파일을 서블릿으로 변환하여 컴파일을 수행하고 서블릿의 수행 결과를 웹 서버에 전달한다.
WAS는 JSP 페이지를 컴파일하여 동적 페이지를 생성한다.
- 웹 애플리케이션 서버(web application server)
웹에서 사용하는 컴포넌트를 올려 놓고 사용하는 서버이다.
웹 서버와 웹 컨테이너를 결합한 서버이다.
WAS 서버는 톰캣, BEA는 웹로직 등을 많이 사용한다.
1.6 JSP 생명 주기
JSP 페이지를 컴파일한 *.class에는 jspInit(), _jspService(), jspDestroy() 메소드가 존재한다.
1. 번역 단계
JSP 컨테이너가 JSP 소스 파일을 자바 코드(서블릿)로 변환한다.
(JAVA 추출해서 코드로 변환)
2. 컴파일 단계
번역 단계에서 생성된 서블릿을 컴파일하여 클래스 파일을 생성한다.
Hello_jsp.java 파일이 컴파일 되어 Hello_jsp.class 파일이 생성된다.
컴파일 단계에서는 자바 코드의 모든 구문을 검사한다. 즉, JSP 페이지 내의 선언문,처리문, 표현문 등의 스크립트 태그를 사용하여 삽입된 자바 코드이 구문 오류를 검사한다.
3. 로딩 및 치기화 단계
서블릿의 init() 메서드인 jspInit()를 호출하여인스턴스가 된 객체를 초기화한다.
4. 실행 단계
각 클라이언트의 요청에 대해 JSP 컨테이너가 용청 및 응답 객체를 전달하는 _jspService() 메소드를 실행한다. 우엡 브라우저가 JSP 페이지를 요청하여 페이지가 로딩 및 초기화될 떄마다 JSP 컨테이너는 JSP 에서 _jspService() 메소드를 호출하영 응답 객체를 전달한다.
5. 소멸 단계
JSP 생명 주기를 완료한다.
JSP 컨테이너는 실행되고 있는 JSP를 jspDestroy() 메소드를 사용하여 제거한다.
jspDestroy() 메소드는 서블릿의 destroy() 메소드에 해당한다.
* jspInit() , jstDestroy() 메소드는 컨테이너가 기본 기능을 제공하기 떄문에 오버라이딩이 선택 사항이지만, 기본적으로 _jspService() 메소드는 컨테이너가 추가하기 때문에 오버라이딩 할 수 없다.
2. JSP 개발 환경 구축하기
이미 JDK와 이클립스가 설치되어 있으므로 과정을 생략하겠다.
(이클립스는 Web developer로 설치를 다시 진행해야한다.)
- 톰캣 설치
아파치 사이트에 접속하여 tomcat 9버전을 선택하여 다운로드한다.
(각자의 window 버전에 맞는 버전을 설치한다.)
모두 설치가 완료되었다면 이클립스와 톰캣 서버를 연동한다.
1. Servers 프로젝트를 생성한다.
(File → New → Dynamic web porject)
2. 웹 서버 유형 설정
server를 선책하여 apache → tomcat v9.0 server를 선택한 후 설정 완료한다.
3. 웹 서버 위치와 JRE 설정
tomcat server 창에서 browse를 클릭하여 톰캣을 설치한 경로를 설정한 후 finish 한다.
4. 연동 확인
아래의 그림과 같이 서버가 연동된 것을 확인할 수 있다.
'코딩 > JSP' 카테고리의 다른 글
웹쇼핑몰 (0) | 2023.12.01 |
---|---|
[8주 5일차] 액션 태그 (1) | 2023.12.01 |
[8주 4일차] 액션 태그 (1) | 2023.11.30 |
[8주 3일차] 디렉티브 태그 (0) | 2023.11.29 |
[8주 3일차] 스크립트 태그 (0) | 2023.11.29 |
- Total
- Today
- Yesterday