본문 바로가기

개발일지

(233)
서블릿과 서블릿 컨테이너 서블릿과 서블릿 컨테이너 서블릿 컨테이너는 서블릿을 실행하기 위한 서버 소프트웨어를 말하는 것으로 JSP나 서블릿으로 만들어진 웹 프로그램을 개발하고 실행하기 위한 환경이다. 톰캣(Tomcat)이 대표적임 구분 웹서버 서블릿 컨테이너 사용 목적 웹서비스 제공을 위한 서버 기반의 소프트웨어 서블릿으로 개발된 자바 프로그램을 실행 및 처리를 위한 서버 기반의 소프트웨어 처리 콘텐츠 HTML. CSS, 자바스크립트, 이미지 파일 등 서블릿 클래스 실행 방법 URL 요청에 의해 실행. 요청할 때마다 매 번 디스크에서 읽어 처리함 서블릿 클래스 정보에 따라 서버에 매핑된 URL에 의해 실행이 되며 컨테이너에 적재된 상태에서 처리함 JSP 실행 자체로 처리를 못 하고 서블릿 컨테이너로 처리를 넘긴다. JSP 자체로..
웹 서비스 설계구조(Web Service Architecture) Client 클라이언트 - 브라우저 및 모바일 App은 클라이언트가 요청을 하기 위한 수단이다. - 메인페이지에서는 가장 가벼우면서도 중요한 것들을 넣어 놓는다. Web server ( 80port 기본 ) - 확장자 html, css, js, jpg, gif, 동영상 파일 등 웹서버에서 처리할 수 있다면 WAS까지 가지 않고, 바로 클라이언트에게 전해준다. 웹서버에서 받았을 때 내가 처리할 수 있는 게 없을 때 WAS로 넘겨주고 답이 올 때까지 기다린다. - 웹페이지 입장에서는 모든 파일들을 가지고 있으면 부하가 걸리기 때문에 텍스트 기반으로 최소화 시켰다. - 웹서버와 WAS를 분배하는 이유는 동시접속이 몰리는 걸 피하고, 업무를 분배하기 위해서이다. - WAS(Web Application Serve..
web.xml 기본설정 web.xml - 정해 놓은 규칙에 맞게 작성해야 하며 모든 WAS에 대하여 작성법이 동일 - web application의 설정을 위한 Deployment descriptor - Deploy할 때 Servlet 정보를 설정해 줌 - 브라우저가 Java Servlet에 접근하기 위해서는 WAS(Tomcat)에 필요한 정보를 알려줘야 해당하는 Servlet을 호출할 수 있음 - Post 방식에서 한글처리에 대한 설정방법(jsp, Spring에 적용) index.html index.htm index.jsp HelloWorld com.icia.web.servlet.HelloWorld HelloWorld /HelloWorld
HTTP 프로토콜 HTTP 프로토콜 - 인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜 ★ 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동함 - HTTP는 어떤 종류의 데이터든지 전송할 수 있도록 설계 돼 있음 - 문서, 이미지, 동영상, 오디오, 텍스트 문서 등 여러 종류를 보낼 수 있다. - 하이퍼텍스트(Hypertext) 기반 데이터를 전송하겠다(Transfer) = 링크 기반으로 데이터에 접속 작동방식 - HTTP는 서버/클라이언트 모델을 따름 - 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response) 클라이언트 - 서버에 요청하는 클라이언트 소프트웨어(IE, Chrome 등의 브라우저)가 설치된 컴퓨터를 이용 - 클라이언트는 URI을 이용해..
JSP / Servlet 공통점과 차이점 /* 공통점 */ 자바를 이용해 웹을 만드는 기술이라는 점이다. 일반적으로 웹서버는 정적인 페이지만 제공을 하게 되어있는데 동적으로 돌아갈 수 있도록 도와주는 어플리케이션들이다. 사용자(클라이언트)의 요청에 따라서 웹 서버가 응답할 수 있도록 구현이 되어 있는 프로그래밍 기술이다. 다양한 오픈소스 라이브러리와 개발 도구들이 존재한다. MVC 패턴을 쉽게 적용해 역할 분담이 가능하며 효과적인 웹 어플리케이션 설계가 가능하다. ** Servlet ** - 자바를 이용한 서버 프로그래밍 기술로 자바 API 모두 사용 가능 - 다양한 오픈소스 라이브러리와 개발도구 활용 가능 - 운영체제와 하드웨어 영향을 받지 않아서 한 번 개발된 애플리케이션은 다양한 서버 환경에서도 실행할 수 있음 - 초기 웹 프로그래밍 기술..
[Oracle] 시퀀스(Sequence) 시퀀스(Sequence) - 시퀀스를 사용하면 기본키 같이 순차적으로 증가하는 값을 자동으로 생성할 수 있음 --시퀀스 등록 CREATE SEQUENCE EX_SEQ INCREMENT BY 1 START WITH 50 MINVALUE 1 MAXVALUE 9999 NOCYCLE NOCACHE; 이렇게 코드를 이용해서 등록하는 방법도 있고, 왼쪽 시퀀스 폴더에서 설정하는 방법이 있다. 시퀀스 폴더에서 오른쪽 마우스 - 새 시퀀스 CREATE SEQUNCE 시퀀스명 INCREMENT BY 시작설정 START WITH 올라가는 값 MINIVALUE 최소값 MAXVALUE 최대값 NOCYCLE 주기 없음 NOCACHE 캐시 없음 기본 사용 방법 -- 해당 시퀀스의 다음값 SELECT testSeq.NEXTVAL ..
[Oracle] 인덱스(Index)의 정의 인덱스(INDEX) 테이블의 데이터를 좀 더 빨리 찾을 수 있다. (항상 그런 건 아님) 인덱스를 생성하게 되면 INDEX TABLE을 생성해 관리하게 된다. 테이블에 있는 칼럼 중 하나 이상의 컬럼으로 생성을 한다. 데이터베이스 공간을 차지해서 추가적인 공간이 필요해진다. (데이터베이스 10% 정도 추가 공간 필요) 처음 인덱스 생성시 시간이 많이 소요 데이터의 변경 작업이 자주 일어날 경우 오히려 성능이 나빠진다. 우리가 테이블을 생성할 때 오브젝트를 생성한다고 한다. 인덱스의 경우도 오브젝트의 한 종류이고 인덱스가 생성되면 테이블과 매핑(서로 다른 테이블 간의 연결되는 프로세스)되는 또 다른 테이블이 하나 더 생성되는 것이다. Q. 테이블이 하나 더 생성이 됐는데 어떻게 속도가 빨라지는 걸까? 인덱..
[Oracle] 뷰(View) 간단 정리 뷰(View) - 하나의 가상 테이블이다. - 데이터를 편하게 보기 위해서 기존의 테이블을 이용해 결과를 묶어 생성한다. - 실제 저장 되는 것이 아니지만 뷰를 통해서 관리까지 가능하다. 그렇다면 이런 가상 테이블을 만들어서 관리하는 이유는 무엇일까? 1. 보안강화 2. 쿼리 단순화 1. 보안강화의 이유 경리팀에서 급여계산을 하려고 할 때 영업직원들에 대한 실직은 영업팀에서만 갖고있다. 영업팀에서는 모든 정보를 보여 줄 필요가 없으니 경리팀에서 필요한 정보만 모아 보여주기 위해서 뷰(View)를 사용한다. 2. 쿼리 단순화 한방 쿼리(한 줄로 정보를 뽑아내는 것)를 하려고 했지만 되지 않을 때, 기준으로 잡고 있는 테이블의 양이 너무나 방대할 때 정보들을 걸러내고 한 번에 뜰 수 있도록 단순화를 시킨다...