• Home
  • About
    • on Weekend photo

      on Weekend

      𝙎𝙩𝙪𝙙𝙮𝙞𝙣𝙜

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • 필사
  • Projects

자바 웹을 다루는 기술 - 1

08 Dec 2020

자바 웹을 다루는 기술

  • 해당 강의는 자바 웹을 다루는 기술 책과 해당 책을 교재로 사용하는 유투브 강의 자바 웹을 다루는 기술 강의를 기반으로 진행됩니다.

목차

  1. 프로그램의 발전 과정
  2. 웹 프로그래밍과 JSP
  3. 개발 환경 설정하기
  4. 웹 애플리케이션 이해하기
  5. 서블릿 이해하기
    …(강의 진행에 따라 계속 추가할 예정)

1. 프로그램의 발전 과정

1.1. 클라이언트 pc 프로그램의 특징

왜 웹 기반 프로그램, 즉 브라우저에서 서비스되는 프로그램들이 많이 사용되는가? 이를 통해 왜 자바 웹기술을 학습해야하는지 목적의식을 뚜렷히 하자.

우선 클라이언트 pc 기반으로 동작하는 프로그램이란 워드, 엑셀, 계산기처럼 클라이언트로 동작하는 프로그램을 의미한다. 스마트폰 어플리케이션도 마찬가지이다. 이러한 프로그램의 문제점은

  1. 프로그램의 기능이 변경될 때마다 다시 설치하거나 업그레이드를 해야함
  2. 클라이언트 pc에서 실행되므로 데이터베이스 접속 정보와 같은 정보가 쉽게 노출이 되어 보안이 취약하다.
1.2. 클라이언트 서버 프로그램의 특징

클라이언트 프로그램과 서버 프로그램으로 나뉜다.

  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 수강 및 정리



javabackend Share Tweet +1