목표
- 개발환경 구축하기
- 웹 아키텍처
- 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
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
댓글
댓글 쓰기