spring 수업 노트 - 서버환경 이해 , WORLD WIDE WEB, servlet , Maven Project

 

목표

  • 개발환경 구축하기
  • 웹 아키텍처
  • 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

댓글