개발환경, 배치(일괄처리), 웹 아키텍처 , jsp 스프링 수업노트

 

spring 수업 1 .

목표

  • 개발환경 구축하기
  • 웹 아키텍처
  • JSP/SERVLET , SPRING , SPRING BOOT
  • 배치 ( 일괄 처리 )

서버 환경의 이해

client server 아키텍쳐 , web 아키텍쳐의 차이점

서버환경

presentation(jsp) , business logic ( 코딩들) , data/access logic(db , 연결들 )

  • one tier ( 세가지 모듈이 하나로 담겨 있다. ) → 불편

  • 2 tier ( 전용 client 프로그램이 필요하다 ( 병원 진료 )

    데이터는 공유 가능하나 클라이언트간 통신이 어렵다.

  • 3 tier

    온라인 게임

    Server 를 통해 Client 간 통신이 가능하다 ( Business logic )

    단점 : Client 프로그램의 배포의 문제

    모든 사용자가 다 업데이트 or 설치가 필요하다.

    client 수 만큼 배포가 이루어져야 한다.

  • web architecture

    배포를 서버에다만 한다.

    단점 : 브라우저 기능에 의존

    호환문제, 추가 기능 사용시 보완 취약

    Cross Browsing

    로직, 서버가 바껴도 서버에 저장 → 클라이언트는 저장할 필요가 없다

    server 2개로 나뉜다.

    Web Server, Web Application Server(was) 로 나뉜다.

    • 부하 분산 ( master → node 1 , node 2 , node 3 .... slave)

    • was 는 HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진 )

      was(jboss, IBM 웹스피어) : servlet Container + EJB Container

    형상관리의 필요성 이해

형상 관리의 필요성 이해

소스 코드의 변경이력을 관리할 수 있어서 추적성이 높다. ㅐ포 편리 , 여러사람 공유 개발 가능 공유할 때 생기는 버전 충돌 문제 해결

WORLD WIDE WEB

URL 을 통해 요청

정적 → 동적으로 컨텐츠를 생성하게 되었다. WEB 프로그래밍 환경 등장

HTML → 동적으로 할 수 있지 않을까? 하면서 생겨났다. applet, jsp , asp , 웹 어플리케이션, php )

  • nodejs

    확작성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하여 Non-blocking I/0 와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다.

servlet/jsp 는 thread 방식으로 실행한다. → 동시 처리 성능이 우수하다

main 함수를 통해 실행하지 않는다.

server가 실행을 시킨다.

화면중심(html , css )

데이터 중심(json, xml )

참고 : port number 를 생략 가능한 경우 : 정해진 포트 넘버를 사용할 때

http : 80 / https : 443

web container 란 ? : 표준 규약에 따라 구현된 웹 어플리케이션을 관리하고 실행할 수 있는 소프트 웨어

tomcat : web application server

servlet

servlet이란 ? : 자바의 웹 개발 표준 스펙에 따라 만들어진 소스. 멀티 쓰레드로 실행

httpservlet 을 상속받음, mapping or anotation

Servlet-Container The servlet container is a part of a web server

j2ee 의 표준 스펙중 하나

servlet, jsp

servlet : generates dynamic content

java 를 사용하여 동적 웹페이지를 생성하는 표준 스펙

HttpServlet 클래스를 상속하여 작성

*mime

: Multipurpose internet mail Extensions

전자 우편을 위한 인터넷 표준 포멧

메일을 전송하기 위한 표준 규약 :smtp 라는 프로토콜을 사용한다.

smtp 에서는 기본적으로 7 비트 기준 아스키코드만 전송이 가능하다.

영어가 아닌 외국어, 특수기호, 이미지 파일 전송등을 하려면 인코딩이 필요 → 이때 mime 사용

이것을 http 에서도 차용

*예시

요청 →네이버

→ html 코드를 해석 → 이미지태그, css 등을 만나면 → 한번 더 다시 요청

content-type : 응답이나 요청이 어떤 자료인지 알려주는 부가 정보

ex) application/javascript ⇒ 웹 표준으로 정해져 있다.

어떤 형식의 자료를 송/수신 하는지 표시 mime 의 종류를 표시한다.

Maven Project

프로젝트 관리를 수업시간에 Maven Project 로 관리할 것이다.

참고 : apache Maven :

Apache Maven 은 자바용 프로젝트 관리도구로 Apache Ant 의 대안으로 만들어졌다. Apache License 로 배포되는 오픈 소스 소프트웨어이다.

jar 파일을 공유할때 대규모 프로젝트 등등에서는 여러개의 jar 를 주고 받는데 불편함이 클것이다. 이러한 라이브러리들을 편리하게 공유하고 다운받과 나온 것 : maven

필요한 라이브러리를 특정 문서 ( pom.xml) 에 정의해 놓으면 네트워크를 통해서 라이브러리들을 자동으로 다운

네트워크를 통해서 라이브러리를 매우 손쉽게 다운

  • group id : 해당 프로젝트를 진행하는 회사에 대한 정보 . 일반적으로 회사의 도메인 역순으로 기술

         [naver.com](<http://naver.com>) → com.naver 
    

    google.comcom.google

ddit.or.kr → kr.or.ddit

  • Artifact id : Group id에 해당하는 회사에서 진행하는 프로젝트명

           google : Gmail , google drive 
    
  • Version : 프로젝트의 버전

        대.중.소 3.5.2
    

jar : java archive file : 클래스들을 묶어놓은 파일 . 압축파일

war : web Archive : 웹 프로그램을 묶어 놓은 파일

tomcat 의 webapps 폴더에 war 파일을 복사해놓고 톰캣을 기동하면 war 파일을 톰캣이 자동으로 압축을 해제하여 웹 어플리케이션이 서비스 되도록 한다.

  • test 폴더는 배포할 떄 배포가 안됨.

환경설정하기

war : web Archive : 웹 프로그램을 묶어 놓은 파일

tomcat 의 webapps 폴더에 war 파일을 복사 해놓고 톰캣을 기동하면

war 파일을 톰캣이 자동으로 압축을 해제하여 웹 어플리케이션이 서비스 되도록 한다.

src/test / 는 배포할떄는 배포가 안되 그래서 4개 만들어져 있다.

기준이 되는 폴더 : src /main/webapp 폴더

사진에서 봤던 webproject

dynamic web module 3.0 으로 변경 java를 1.8 로 변경

maven project 가 만들어지면

web-inf web.xml 만들기 : java ee tools 눌러서 → generate development stub

project 우클릭 properties 에서 text 형식 utf-8 로 변경해주기

open type → string → string lang → external type (?? 코드로 그냥 넣어갈수있다. )

alt shift j

→ 컴퓨터 이름 나옴

환경설정 - Java - Code Style - Code templete - comments: types

/**

  • ${file_name}

  • @author ${user}

  • @version 1.0

  • @see

  • <pre>

  • << 개정이력(Modification Information) >>

  • 수정자 수정내용


  • ${user} 최초 생성

  • </pre>

*/

단축키

불러오기 : alt shift j

open resource 단축키

ctrl + shift + r


개발환경 구축하기

웹 아키텍처

JSP/SERVLET , SPRING , SPRING BOOT

배치 (일괄처리)

서버환경의 이해

client server 아키텍처, web 아키텍처의 차이점

서버환경

presentation(jsp) , business logic(코딩들) , data/access logic(db, 연결들)

one 티어 (세가지 모듈이 하나로 담겨 있음 )

→ 불편

2 tier

→ 전용 client 프로그램이 필요하다. (병원 진료)

: 데이터는 공유 가능하나 클라이언트간 통신이 어렵다

3 tier

온라인 게임

Server 를 통해 Client 간 통신 가능(business logic)

단점 : Client 프로그램의 배포의 문제

모든 사용자가 다 업데이트 or 설치가 필요

Client 수 만큼 배포가 이뤄져야 한다.

web architecture

배포를 서버에다만 한다.

단점 : 브라우저 기능에 의존

호환문제, 추가기능 사용시 보완 취약

Cross Browsing

서버 ← 요청

jsp도 서버에 논다.

로직, 서버가 바껴도 서버에 저장 → 클라이언트는 저장할 필요가 없다.

server 2개로 나뉜다.

Web Server , Web Application Server 로 나뉜다.

rac

부하 분산 ( master → node 1, node 2 , node 3 )

형상관리의 필요성 이해

:

world wide web

url 을 통해 요청

정적 → 동적으로 컨텐츠를 생성. Web 프로그래밍 환경등장

html 을 동적으로 할 수 있지 않을까? → applet, jsp, asp, 웹 어플리케이션 , php )

nodejs

servlet/jsp 는 thread 방식으로 실행→ 동시 처리 성능이 우수

main 함수를 통해 실행하지 않는다.

server 가 실행을 한다.

화면중심/(html, css/....)

데이터중심 (json, xml)

200 데이터가 잘들어왔다.

404 주소를 찾을 수 없다.

parameter 를 보낸다.

querystring

port number 를 생략가능한 경우 : 정해진 포트넘버를 사용할 떄

http : 80

https : 443

servlet : 자바의 웹 개발 표준 스펙. 스펙에 따라 만들어진 소스. 멀티 쓰레드로 실행

web container : 표준 규약에 따라 구현된 웹 어플리케이션 관리하고 실행할 수 있는 소프트웨어

tomcat : web application server

http 메시지를 이용해서

httpsservlet 을 상속받아서

mapping 이나 어노테이션

servlet

j2ee 의 표준 스펙중 하나

servlet, jsp,

servlet : generates dynamic content

java 를 사용하여 동적 웹페이지를 생성하는 표준 스펙

HttpServlet 클래스를 상속하여 작성

Web Application server : was (jboss , IBM 웹스피어)

: Servlet Container + EJB Container

  • tomcat 에는 tomcat 에서 담지 않아.

servlet container[Web Container] ( tomcat)

Servlet-container

The servlet container is a part of a web server

mime

: Multipurpose internet mail Extensions

전자 우편을 위한 인터넷 표준 포멧

메일을 전송하기 위한 표준 규약 : smtp 라는 프로토콜을 사용한다

: smtp 에서는 기본적으로 7비트 기준 아스키코드만 전송 가등

영어가 아닌 외국어, 특수기호, 이미지 파일 전송위해 인코딩이 필요 → mime

이것을 http 에서도 차용했다.

요청을 네이버로 요청 →

html 코드를 해석 → 이미지태그, css 등을 만나면 → 한번더 다시 요청

content - type : 응답이나 요청이 어떤 자료인지 알려주는 부가 정보

: ex) applicatuon/javascript ⇒ 웹 표준으로 정해져 있다.

어떤 형식의 ㅏ료를 송/수신 하는지 표시

mime 의 종류를 표시

servlet 생성/ 등록

클래스 생성 (HttpServlet 상속)

url mapping

url-servlet

xml

anotation

  • webApplication
  • WEB-INF - XML WEB.XML , LIB 폴더 → .JAR , CLASSES → class

프로젝트 관리를 Maven Project 로 관리할 것이다.

프로젝트 템플릿을 선택해서 만들 수 있지만, 기본 설정을 먼저 해볼 것이다.

Maven Project

Group id : 해당 프로젝트를 진행하는 회사에 대한 정보

       일반적으로 회사의 도메인 역순으로 기술 

       [naver.com](<http://naver.com>) → com.naver 

 [google.com](<http://google.com>) → [com.google](<http://com.google>) 

ddit.or.kr → kr.or.ddit

Artifact id : Group id에 해당하는 회사에서 진행하는 프로젝트명

         google : Gmail , google drive 

Version : 프로젝트의 버전

      대.중.소 3.5.2

jar : java archive file : 클래스들을 묶어 놓은 파일, 압축파일

class, html , jsp , image, css, javascript

war : web Archive : 웹 프로그램을 묶어 놓은 파일

tomcat 의 webapps 폴더에 war 파일을 복사 해놓고 톰캣을 기동하면

war 파일을 톰캣이 자동으로 압축을 해제하여 웹 어플리케이션이 서비스 되도록 한다.

src/test / 는 배포할떄는 배포가 안되 그래서 4개 만들어져 있다.

기준이 되는 폴더 : src /main/webapp 폴더

사진에서 봤던 webproject

dynamic web module 3.0 으로 변경 java를 1.8 로 변경

maven project 가 만들어지면

web-inf web.xml 만들기 : java ee tools 눌러서 → generate development stub

project 우클릭 properties 에서 text 형식 utf-8 로 변경해주기

open type → string → string lang → external type (?? 코드로 그냥 넣어갈수있다. )

alt shift j

→ 컴퓨터 이름 나옴

환경설정하기

환경설정 - Java - Code Style - Code templete - comments: types

/**

  • ${file_name}

  • @author ${user}

  • @version 1.0

  • @see

  • <pre>

  • << 개정이력(Modification Information) >>

  • 수정자 수정내용


  • ${user} 최초 생성

  • </pre>

*/

불러오기 : alt shift j

open resource 단축키

ctrl + shift + r


댓글