자바 웹을 다루는 기술
- 해당 강의는 자바 웹을 다루는 기술 책과 해당 책을 교재로 사용하는 유투브 강의 자바 웹을 다루는 기술 강의를 기반으로 진행됩니다.
목차
- 프로그램의 발전 과정
- 웹 프로그래밍과 JSP
- 개발 환경 설정하기
- 웹 애플리케이션 이해하기
- 서블릿 이해하기
…(강의 진행에 따라 계속 추가할 예정)
1. 프로그램의 발전 과정
1.1. 클라이언트 pc 프로그램의 특징
왜 웹 기반 프로그램, 즉 브라우저에서 서비스되는 프로그램들이 많이 사용되는가? 이를 통해 왜 자바 웹기술을 학습해야하는지 목적의식을 뚜렷히 하자.
우선 클라이언트 pc 기반으로 동작하는 프로그램이란 워드, 엑셀, 계산기처럼 클라이언트로 동작하는 프로그램을 의미한다. 스마트폰 어플리케이션도 마찬가지이다. 이러한 프로그램의 문제점은
- 프로그램의 기능이 변경될 때마다 다시 설치하거나 업그레이드를 해야함
- 클라이언트 pc에서 실행되므로 데이터베이스 접속 정보와 같은 정보가 쉽게 노출이 되어 보안이 취약하다.
1.2. 클라이언트 서버 프로그램의 특징
클라이언트 프로그램과 서버 프로그램으로 나뉜다.
- 클라이언트 프로그램 : 화면 기능과 서버와의 데이터 송-수신 제공
- 서버 프로그램 : 그 외의 모든 기능을 수행
서버에서 외화 환율 정보와 원화 정보를 받아와서, 원화를 외화로 환산하여 그 결과값을 클라이언트로 전송한다.
- 특징 : 기능, 로직이 변경되어도 모두 서버에서 처리하므로 클라이언트 프로그램은 수정할 필요가 없다. 중요한 기능은 서버에서 처리하므로 보안 측면에서도 우수하다. 그러나, 화면에 관련된 프로그램이 바뀌면 프로그램에 대해서도 추가작업을 해주어야 한다. 즉 보안성은 좋아졌지만, 그 외에는 그렇지 않다.
1.3. 웹 기반 프로그램 동작 방식
화면과 데이터 처리를 모두 서버에서 처리합니다. 브라우저에서 주소창에 url을 입력해 요청하면, 웹서버는 그 url에 대하여 html 태그를 브라우저로 전송해서 계산기 화면을 표시한다.
계산기 화면에서 변환을 누르면 정보가 웹서버로 전송되어, 웹서버에서 이 데이터를 이용하여 변환 결과를 브라우저로 출력하여 결과값을 표시한다.
- 특징 : 화면, 로직을 모두 서버에서 처리하여 클라이언트에서 수행할 특별한 작업이 없고, 보안면에서도 월등히 우수하다. 기능 추가를 하더라도 화면도, 로직도 모두 서버에서 처리할 수 있다.
2. 웹 프로그래밍과 JSP
웹 기반 프로그램은 결국 유지보수가 편리해서 사용했다.
2.1. 정적 웹 프로그래밍
- 초기에 나온 웹 프로그래밍. 웹서버, 아파치와 같은 웹 서버에 미리 보여줄 html, css, image, js 파일을 저장해두고 브라우저에서 요청할 경우 그대로 보여준다. 사용자는 페이지가 변경되지않는한 그대로의 페이지를 접한다. 그러나 실시간 정보를 출력하는 데에는 부적합하고, 고정된 화면/정보를 표현하는 데에 사용된다.
- 웹서버 : 각 클라이언트에게 서비스를 제공하는 서버 컴퓨터
- 클라이언트 : 서비스를 제공받는 컴퓨터
- http 프로토콜 : www 서비스를 제공하는 통신 규약을 의미한다. 웹서버와 클라이언트는 이를 이용하여 정보를 주고받는다.
- 자바스크립트 : 동적 기능을 제공하는 스크립트 언어
- css : 페이지의 디자인에 관련된 기능
초기에 사용된 정적 웹 프로그래밍 방식의 문제점
- 실시간 정보를 제공하는 데에 부적합 (환율, 주가)
왜? 고정된 디자인 제공, 정보 수정 시 관리자가 직접 html 소스를 수정한다.
이벤트를 처리하는 용도로는 지금도 중요하게 사용되고 있다.
2.2. 동적 웹 프로그래밍의 특징
클라이언트 ↔ 웹서버 ↔ 웹애플리케이션서버(WAS) ↔ 데이터베이스
처음 동적인 방식으로 처리하는 건 CGI 언어였다. 가령 펄. 프로세스 방식으로 실행되고, 서버의 부하가 심하다는 단점이 있다. ⇒ 가령 환율 조회 기능을 수행하는 프로세스를 메모리에 생성한 후, 데이터베이스와 연동하여 환율 정보를 받아온 후 클라이언트에게 결과를 반환한다. 이를 클라이언트 요청이 들어올 때마다 반복한다.
CGI 동작 방식의 문제점 : 같은 기능을 수행하더라도 매번 메모리에 로드하여 수행하며 메모리 과부하가 심각해진다. ⇒ jsp, asp, php 등장
2.3. JSP 프로그래밍의 특징
jsp 프로그램 : 브라우저 요청시 스레드 방식으로 실행하므로 CGI보다 효율적으로 기능을 수행한다. 스레드 방식으로 동작하는 과정 : 클라이언트 ↔ 웹서버 ↔ 와스 ↔ 데이터베이스 이되, 같은 요청에 대해 이미 만들어진 기능을 이용하여 환율 정보를 가져온다. 최초 한번만 기능이 메모리에 로드된다. 따라서 프로세스 방식보다 훨씬 빠르게 수행할 수 있다.
3. 개발 환경 설정하기
3.1. JDK 설치하기
- java se 10
3.2. JDK 환경변수 설정하기
- 고급 시스템 설정 → 환경변수 → 시스템 변수
- JAVA_HOME, jdk-10 설치 경로
- Path, %JAVA_HOME%\bin (빈 폴더에 설정)
- 확인 : cmd javac -version
3.3. 톰캣 설치
- Binary Distributions에서 9.0.16버전 exe 다운받아 셋업한다. 포트번호는 8090으로 변경, User Name admin, 비밀번호 1234, 설치 폴더는 디폴트가 아니라 C에서 새폴더를 만들어 tomcat9로 지정한다.
3.4. 이클립스 IDE 설치
- C/javaWeb 폴더 → workspace 폴더로 설정
3.5. Java EE API 문서 즐겨찾기에 추가하기
- 오라클에 접속하여 Menu → Products → Java → Java EE → Enterprise Edition 클릭 → documentation → API Documentation Java EE 8을 즐겨찾기에 추가
3.6. 비쥬얼 스튜디오 코드 설치하기
- code.visualstudio.com에 접속하여 설치 → Download for Windows → exe실행파일 클릭하여 설치 시작 → VisualStudio code 실행
3.7. Oracle DBMS 설치
- 보이는 주소로 들어가여 다운로드 → 교육용 오라클 Database Expression Edition 11g Relrease 11.2.0.2.0(11gR2) for Windows x64 다운로드 (오라클 로그인 사용자이름 : 메일주소, 비밀번호 : 대문자 특수문자 포함) → setup.exe 클릭하여 설치 시작 (설치 시간이 오래 걸린다), 비밀번호 1234
- cmd에서 오라클 접속 프로그램인 sqlplus 라고 입력, system에 이전에 입력한 비밀번호로 접속
- create user scott identified by tiger; (비밀번호가 tiger)
- grant resource, connect to scott;
- exit
- sqlplus
- scott, tiger 로 접속
- 컴퓨터관리-서비스에서 OracleServiceXE와 리스너 수동으로 설정
3.8. SQL Developer 설치하기
- 보이는 주소로 들어가여 다운로드 → 18.1 받아야하는데 이전 버전 19.1까지만 볼 수 있어서 19.1 다운받음
3.9. exERD
- 이클립스 플러그인
- 설치 되었는지 확인 : Show view > Other > eXERD 설치 되었는지 확인
4. 웹 애플리케이션 이해하기
5. 서블릿 이해하기
[진행 내역]
12.08 Section 1, 2 수강 및 정리