기본 콘텐츠로 건너뛰기

웹 (WEB)

 서버

- 다수의 클라이언트에게 동시에 정보를 종하는 H/W나 S/W를 말한다.

클라이언트

- 서버에 접속하여 정보를 어디는 H/W나 S/W를 말한다.

웹서버

- 웹브라우저에서 요청 메시지를 받고 웹브라우저로 응답 메시지를 전송하는 서버쪽 SW

MIME 

- 인터넷을 통해 문서를 주고받을 때 사용되는 문서 형식의 정의

- 파일, 멀티미디어 형식의 문서등 여러 가지 타입(이미지, 비디오, 오디오등)을 제공

Servlet

- 웹브라우저로 접속하는 클라이언트에 대해 요청 접수, 요청 처리, 응답 HTML생성을 할 수 있는 서버 쪽 자바 클래스

장점

- 자바 클래스이므로 자바의 모든 기능을 사용할 수 있다.

- URL 경로로 Servlet 파일의 위치에 접근할 수 없으므로 보안성이 좋다

단점

- 자바 문버 안에 HTML, CSS, 자바스크립트 등이 문자열로 삽입되므로 개발자와 디자이너의 협업이 어렵고 디자인적 요소의 컨트롤이 어려움

쿠키

- 응답 메시지를 통하여 클라이언트에 전송되며 클라이언트 쪽에 저장된다.(4kb이하)

장점

- 클라이언트가 필요한 데이터를 웹서버 쪽에 두지 않고 클라이언트 쪽에 저장하여 사용함으로 각종 편의를 제공한다.

- 웹프로그램의 자원이 상업용으로 이용 가능한 각종 통게 자료를 얻는데 사용한다.

- 필요한 데이터를 클라이언트쪽에 저장므로 웹서버의 부담이 적다.

단점

- 해킹에 의해 중요한 개인 정보가 저장된 쿠키가 누출될 수 있다.

- 광고 회사나 인터넷 서비스업체의 자료 확보 수단으로 활용 된면서 사생활을 침해할 수 있다.

쿠키값 조건

- $로 시작 못하고, 공백, 괄호, 등호, 콤마, 콜론, 세미콜론을 포함할 수 없다.

- 쿠키값이 한글이면 URLEncoder.encode(~~)를 써야 한다.

JSP특징

 - 작성된 jsp는 내부적으로 class로 자동으로 변환되고 호출시 이클래스의 특정 메소드가 호출된다.

 - 자바 코딩을 사용자 정의태그로 대체할 수 있다.

DAO클래스 

 - DB에 직접 DB연동하는 클래스

 - 리턴되는 과정에서 데이터는 주로 [자바빈 - DTO - VO]에 저장하여 사용한다.

WAS(Web Server + Container)

 - 

HttpServletRequest 객체

 - 요청 메시지 안의 파라미터값 리턴, 클라이언트가 보낸 쿠키값 소유한 Cookies 객체 메위주 리터, HttpSession 객체 메위주리턴, 타 객체 저장/리턴 등등

 - URL주소로 접속 시 매번 새롭게 생성된다.

 - JSP 페이지 실행 후 바로 제거 된다.

HttpServletResponse 객체

 - 클라이언트에게 보낼 쿠키값 저장, 클라이언트에게 페이지 이동 명령 전달 등등

 - URL주소로 접속 시 매번 새롭게 생성된다.

 - JSP 페이지 실행 후 바로 제거 된다.

HttpSession 객체

 - 재접속 시 모든 JSP 페이지에서 사용할 타 객체 저장/리턴 등등

 - 웹브라우저와 웹서버간에 연결 상태가 없는 상태에서 처음 접속 시 한번만 생성된다.

 - 웹브라우저와 웹서버 간에 연결 상태가 끊어질 경우에만 제거 된다.

Cookies 객체

 - 웹브라우저가 보내온 [쿠키값] 소유하거나, 웹브라우저에게 전송할 [쿠키값]을 소유한다.

xxxx.do 

 - 가상 자원 주소이다. properties를 통하여 따로 관리 가능 하다.

Spring MVC

 - 코딩이 많이 줄어듬

    주요 객체의 객체 생성, 메소드 호출 코딩이 필요없다.(XMl 파일에 자바 클래스 정보를 태그로 등록만 하면 주요 객체 생성과 메소드 호출을 Spring 프레임워크가 알아서 한다.

    클라이언트가 보낸 데이터가 자동으로 자바빈에 저장된다.

    DB연동이 쉽고 강력하다.

        Spring에서 제공하는 DB연동 관련 API를 사용하거나 mybatis를 사용할 수 있다.

        JPA를 사용하면 SQL구문도 사용할 필요가 없다.

    트랜잭션 설정이 간단하다.

    Spring 폼태그를 사용하면 JSP페이지에서 DB연동 결과물을 아주 쉽게 HTMl소스에 반영할 수 있다.

 - 유지보수가 쉽고, 보안성이 좋고, 확장성이 좋다.

    일부 코딩 수정시 연쇄적으로 수정할 내용이 적다.(기존 방식은 많았음?)

 - 작동 구조가 복잡하여 처음에 공부하거나 숙지가 어렵다.

 - XML 파일에 클래스 정보, 트랜잭션 정보, 기타 사용 기술 정보를 등록해야 한다. 즉 환경 설정이 복잡하다.

EL태그

 - empty는 굉장히 쓸만함


댓글

이 블로그의 인기 게시물

mac 맥 맥북 Brew 완전 삭제

맥북에서 Brew 초기화 Brew를 써서 h2를 쓰려고 하는데 brew install h2가 안되서 이리 저리 알아보다가 완전 삭제 후 다시 설치 하니까 되서 그 방법을 남겨놈 1. 터미널에 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)" 입력후 y랑 뭐 비번.. 2. /usr/local 폴더에서 Homebrew 폴더 삭제 rm -rf Homebrew/ 권한설정으로 잘.....삭제하고 3. 다시 설치 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 좀 오래걸리니까 기다려야한다는걸 배움... 출처.... https://discourse.brew.sh/t/error-no-formulae-found-in-taps/8331/9

ORA-28000 계정이 잠금되었습니다 계정 잠길때

오라클 계정이 잠길때 해제방법 증상 t he account is locked 오류 발생 원인 Oracle 에서 t he account is locked  에러가 나는 원인은 ● 잘못된 패스워드로 설정횟수만큼 접속 시도시 Lock. ●  30일동안(Default) 해당 계정으로 로그인을 하지 않았을 경우 Lock. 등이 있다. 해결방법 command창에서 * 로컬일경우, sqlplus "/as sysdba"  또는  sqlplus /nolog  conn /as sysdba  * 로컬이 아닐 경우, sqlplus /nolog conn sys/password@<sid> 이름/패스워드@sid로 입력 로 접속 후 SELECT username, account_status, lock_date FROM dba_users; 으로 Lock이 된 사용자를 확인한 후 LOCKED<TIMED> 라고 되있으면, 패스워드 설정횟수 입력 오류로, 아래의 Unlock 명령만, EXPIRED & LOCKED 라고 되있으면, 패스워드 기간만료로, Unlock 후 비밀번호를 지정해줘야 한다. ALTER USER 사용자명 ACCOUNT UNLOCK; 로 Lock된 사용자를 Unl ock 시킨다 방금 말했다시피, 다시 Lock된 사용자 확인했는데,  Open되지 않고 EXPIRED되어 있다면, alter user 사용자명 identified by 바꿀패스워드;  로 패스워드를 변경하거나 또는 SQL*PLUS 를 재시작하여 Lock를 해제한 계정(사용자명/패스워드)로 로그인 하면 패스워드 변경 창이 뜬다. 추가로 패스워드 Lock 횟수 확인하는 방법은 SELECT U.USERNAME,P.PROFILE, P.RESOURCE_NAME, P.LIMIT  FROM D

메이븐으로 라이브러리 인식

 간혹 퍼블릭 jar가 아닌 파일이 있는데 그럴때 쓰면 될듯 <dependency> <groupId> SimpleCryptLib </groupId> <artifactId> SimpleCryptLib </artifactId> <version> 1.1.0 </version> <scope> system </scope> <systemPath> ${basedir}/src/main/webapp/WEB-INF/lib/SimpleCryptLib-1.1.0.jar </systemPath> </dependency> version, scope, systemPath는 꼭 작성해야 한다 groupId, artifactId, version은 암거나 해도 되는거 같음 최근(2021.05.04)스프링 부트    < dependency > < groupId > NiceID </ groupId > < artifactId > NiceID </ artifactId > < version > 1.0 </ version > < scope > system </ scope > < systemPath > ${basedir}/src/main/resources/lib/NiceID.jar </ systemPath > </ dependency > 이걸 추가해주는것도 필요할지도..?? < build > < plugins > < plugin > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-maven-plugi