웹개발

    [JSP] DBCP(Database Connection Pool)

    1. DBCP(Database Connection Pool) - 원칙은 항상 데이터베이스를 열어주면(Connection) 무조건 닫아줘야 한다.(conn.close()) - 사용자가 한명이 아니라 여러명이기 때문에 연결이 엄청 많아지기 때문에 부하가 걸리게 된다. - 이렇게 되면 계속 Connection을 열고 닫고를 반복해줘야 하기 때문에 컴퓨터에서 자원이 낭비된다. - 이것을 해결해주는 것이 DBCP이다. - 사용자의 요청이 있을 때마다 DB 연결을 한다면 코드가 복잡해지며 많은 요청이 있을 때 연결속도가 저하될 수 있다. - 따라서 이미 Connection을 만들어 두고 필요시 저장된 공간(Connection Pool)에서 가져다 쓰고 다시 반납하는 기법이다. * JNDI(Java Naming an..

    [JSP] Ajax(Asynchronous Javascript and XML), GET/POST 방식

    * GET 방식과 POST 방식 - GET이 기본이고 필요할 때 POST 사용 - 전송할 데이터 양이 적고 노출되어도 무방하다면 GET 방식을 기본으로 사용하고, 전송할 데이터의 양이 크거나 노출이 되면 안 될 데이터라면 POST 방식을 사용 GET 방식 - 주소에 데이터를 추가해서 전달하는 방식, 쿼리스트링에 포함되어 전송되므로 길이의 제한이 있으며 주소에 데이터가 보이므로 보안상 취약점이 존재 query string : url 뒤에 ? 이후의 문자열 "키1=값1&키2=값2&..." POST 방식 - 데이터를 별도로 요청 body에 첨부하여 전달하는 방식 - 브라우저의 히스토리에도 남지 않고 데이터는 쿼리 문자열과는 별도로 전송 - 따라서 데이터의 길이에 대한 제한도 없고 GET 방식보다 보안성이 좋음..

    [JSP] 세션(Session)

    1. 세션(Session) - 내장 객체로서 브라우저마다 한개씩 존재하고, 고유한 SessionID 생성 후 정보를 추출 - 쿠키는 사용자 컴퓨터에 저장하는 것이고 세션은 서버에 공간을 할당해주고 사용자 컴에는 서버 공간에 접근할 수 있는 정보(SessionID)를 헤더에 있는 쿠키 정보에 저장해 놓는다. - 사용자가 요청을 보낼 때 헤더에 있는 쿠키 정보를 같이 보내면서 서버가 그 SessionID를 보고 서버에 할당된 공간을 이용 - 그래서 쿠키를 아예 삭제하거나 허용을 하지 않는다면 이 세션도 사용을 못한다. - 쿠키는 서버가 직접 저장을 해줘야 되지만 SessionID는 자동적으로 헤더 쿠키에 저장된다. - 쿠키보다는 세션을 쓰는 것이 더 안정적이다. - 계속 쓰는 것보다 필요한 정보를 저장하는 ..

    [JSP] 쿠키(Cookie)

    1. 쿠키(Cookie) - 클라이언트 컴퓨터에 정보를 저장 - 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청을 보낼 때 쿠키들을 헤더에 담아서 전송 - 온 쿠키들을 보고 서버에서 서버 자신이 저장한 게 있는지 확인 - 서버는 쿠키를 무조건 저장할 수 있긴 하지만 클라이언트에게 쿠키 허용을 물어봐야 하며 결국 쿠키를 저장할지 안할지는 사용자에게 달려있음 * 전송은 헤더와 바디가 있는데, 헤더에는 관련된 정보들이 담겨 있고 바디에는 실제 데이터가 포함되어 있다. 2. 장단점 - 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있음 - 데이터가 사용자 컴퓨터에 저장되기 때문에 보안의 위협을 받을 수 있음 - 데이터 저장 용량에 한계가 있음(소용량의 문자열 데이터) - 일반 사..

    [JSP] 내장 객체, Form 유효성 검사 및 예제

    1. 내장 객체 - 안에서만 사용 가능 - 객체화 없이 사용할 수 있는 객체이며, JSP 파일이 서블릿으로 변환될 때 웹 컨테이너가 자동으로 메모리에 할당해서 제공 request 웹 브라우저의 요청에 대한 정보를 저장 response 웹 브라우저의 요청에 대한 응답 정보를 저장 out JSP 페이지 body에 출력할 내용 정보를 저장 session 하나의 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장 pageContext JSP 페이지에 대한 정보를 저장 config JSP 페이지에 대한 설정 정보를 저장 exception JSP 페이지에서 예외가 발생한 경우 사용되는 객체 2. 폼 유효성 검사 - 개발자가 원하는 데이터를 사용자가 정확하게 입력했는지 검사하는 것 - DB 처리 이전에 해야 하기 ..

    [JSP] 액션 태그

    1. 액션 태그 - 액션 태그는 XML 형식인 를 이용 - 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그 - 페이지와 페이지 사이를 제어하거나 다른 페이지의 실행 결과 내용을 현재 페이지에 포함시키거나 자바빈즈(객체)를 다루는 등의 다양한 기능을 제공 - 태그 이름을 그냥 쓰면 HTML에서 쓰는 태그로 인식하기 때문에 태그 앞에 id:를 붙여주므로써 만들어진 거라는 것을 나타냄 다른 페이지로 이동, 페이지의 흐름을 제어하기 위한 역할 현재 페이지에서 다른 페이지로 값을 전달하기 위한 역할 객체 생성 객체 필드 세팅 객체 필드값 접근 2. 예시(forward, param) * 요청하는 값 인코딩 설정 요청하는 값이 한국어라면 UTF-8로 인코딩을 맞춰줘야 요청하는 값이 다른 페이지로 갔을 때 아무..

    [JSP] 디렉티브 태그(Directive Tag)

    1. 디렉티브 태그(Directive Tag) - 현재 JSP 페이지에 대한 정보를 설정하는 태그, 되도록 페이지 최상단에 선언 - import 속성을 제외하고는 딱 한 번씩만 작성 가능(import는 여러번 작성 가능) 속성명 설명 초기값 language 사용할 프로그래밍 언어 java contentType 생성할 문서의 콘텐츠 유형 text / html pageEncoding 페이지에 대한 인코딩 설정 EUC-KR / ISO-8859-1 import 사용할 자바 클래스 추가 session 세션 사용 여부 true info 페이지에 대한 설명 작성(주석처럼 이용) errorPage 예외 발생시 이동할 페이지 설정 isErrorPage 오류페이지로 설정할 것인지에 대한 여부 false 2. 예시 - im..

    [JSP] JSP(Java Server Page), 스크립트 태그

    1. JSP(Java Server Page) - HTML을 중심으로 자바와 같이 연동하여 사용하는 웹 언어 - HTML 코드 안에 JAVA 코드를 작성할 수 있음 - JSP 파일은 뷰단이 아니라 JSP로 인해 만들어진 HTML이 뷰단이다. - JSP 파일이 번역이 되면 서블릿 코드로 바뀌게 되고 그 서블릿 클래스가 컴파일이 되면서 HTML이 응답으로 나오게 되는 것이다. * JSP와 서블릿(Servlet)의 차이 - 서블릿은 HTML 틀을 만들어 데이터까지 넣어준 다음에 정적으로 만들어 응답을 해주는 것이다. - 반면에 JSP는 데이터만 정적으로 만들어 응답을 해주고 그 데이터의 위치에 맞게 응답 쪽에 있는 HTML에 위치시키는 것이다. 2. 스크립트 태그 - HTML 코드에 자바 코드를 넣어 프로그램이..

    [JSP] 서블릿(Servlet)

    1. 서블릿(Servlet) - JAVA 코드로 HTML을 작성할 수 있도록 해주는 JAVA 프로그램 - 사용자가 서버에게 요청을 보낼 때 정적인 요청은 상관이 없지만 동적인 요청은 서버에서 못하기 때문에 웹 컨테이너에서 동적인 요청을 정적인 것으로 정제해서 응답해준다. - 그 안에는 서블릿 클래스라는 게 있고 그 클래스가 들어온 동적인 요청을 정적으로 HTML틀에 데이터까지 위치시켜서 그대로 보내준다. - 요청이 GET 방식이면 doGet메소드를 실행시키고 POST 방식이면 doPost를 실행시킨다. - 이 와 같이 서블릿에서 직접 HTML 틀까지 만들어서 응답으로 보내준다. - 이렇게 하나하나 쓰기 불편함으로 JSP를 쓰는 것이다. out.print(""); out.print(""); out.prin..

    [JavaScript] jQuery

    1. jQuery - 요소들을 선택하는 강력한 방법을 제공하고, 선택된 요소들을 효율적으로 제어할 수 있게 해주는 자바 스크립트 라이브러리 - 자바에서 JVM 느낌 - 예전에는 스크립트가 자바스크립트 외에도 다양하게 많았기 때문에 브라우저마다 코드가 달랐다. - 그때 나온 게 jQuery인데 여기에 코드를 쓰면 jQuery가 각 브라우저에 맞게 알아서 변환시켜준다. - 지금은 자바스크립트가 표준이 되었기 때문에 안 쓰는 추세이지만 여러 개의 태그 객체를 가져와서 for문을 돌려 하나하나 스타일을 줄 때와 같은 불편함을 해결해 주는 데는 jQuery만큼 좋은 게 없다. - jQuery를 사용하면 순수 JavaScript에 비해 속도가 느려진다. - 하지만 간결한 문법으로 인해 개발 속도 증가와 처리비용 감..