IT 개발노트
Java API란? - Java로 프로그램을 만드는데 필요한 주요 기능을 미리 만들어서 제공 JavaAPI문서란? - JavaAPI가 제공하는 기능에 대한 상세한 정보 제공(html파일) JavaAPI 문서의 설치 - www.oracle.com 에서 압축파일을 다운받아서 압축해제 - docs -> api -> index.html파일
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cDFEAm/btqvWqntmZo/LkfdejpberLk1Hto5bmGmk/img.png)
1. Spring-오브젝트와 의존관계 1.1 DAO(Data Access Object)란 : DAO는 DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다. 1.2 자바빈(JavaBean) : 자바빈은 원래 비주얼 툴에서 조작 가능한 컴포넌트를 말한다. 이제는 자바빈을 컴포넌트라기보다는 다음 두 가지 관례를 따라 만들어진 오브젝트를 가리킨다. - 디폴트 생성자 : 자바빈은 파라미터가 없는 디폴트 생성자를 갖고 있어야한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하기 때문에 필요하다. - 프로퍼티 : 자바빈이 노출하는 이름을 가진 속성을 프로퍼티라고 한다. 프로퍼티는 set으로 시작하는 수정자 메소드(setter)와 get으로 시작하는 접근자 메소드(getter..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kUXFC/btqvyNYZAf0/Lm0k9p7qkxZbNFmoIrHFSk/img.png)
1. 해싱, 해시함수, 해시테이블 1.1 해시함수(hash function)란? : 데이터의 효율적 관리를 목적으로 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 이 때 매핑 전 원래 데이터의 값을 키(key), 매핑 후 데이터의 값을 해시값(hash value), 매핑하는 과정 자체를 해싱(hashing)라고 한다. 해시함수는 해쉬값의 개수보다 대개 많은 키값을 해쉬값으로 변환(many-to-one 대응)하기 때문에 해시함수가 서로 다른 두 개의 키에 대해 동일한 해시값을 내는 해시충돌(collision)이 발생하게 된다. 아래 그림은 이름-전화번호부를 매핑하기 위한 해시함수를 개념적으로 나타냈다. 예시의 해시함수는 ‘John Smith’와 ‘Sandra Dee’를 모두 ‘02’로 ..
HTTP의 비연결성 - 웹 프로그램은 기본적으로 현재 페이지에서 다른 페이지로 이동하면 현재 페이지에 저장된 값들이 모두 소멸된다. - 다수의 페이지로 구성된 웹애플리케이션에서 사용자의 편의를 위해 인증 후의 값을 유지할 필요가 있다. - 웹을 지원하는 통신 규약 HTTP는 비연결 또는 무상태 특성을 가진다. 장점 - 서버에 접속한 클라이언트 수가 많아도 서버의 부담이 적다. - 웹의 비연결 특성은 초기에 웹 서비스를 빠르게 성장시킨 계기이다. 단점 - 정보를 유지해야 할 부분도 있는데 정보를 유지할 수가 없다. ex) 인터넷 쇼핑몰에서 상품을 구매할 경우, 사용자는 장바구니에 상품을 담기도 하고 삭제하기도 한다. 이럴경우, 장바구니 페이지는 다른 페이지로 이동해도 장바구니의 정보를 유지해야 하는데 HT..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/llLK4/btqvzKmR87d/zrpLSMhekTmfEuF1ZevRtk/img.png)
1. 트리, 이진트리 1.1 트리란? : 트리는 그 모양이 뒤집어 놓은 나무와 같다고 해서 이런 이름이 붙었다. 위 그림에서 검정색 동그라미를 노드(node)라고 한다. 보통 데이터가 여기에 담긴다. 노드와 노드 사이를 이어주는 선을 엣지(edge)라고 합니다. 노드와의 관계를 표시합니다. 경로(path)란 엣지로 연결된, 즉 인접한 노드들로 이뤄진 시퀀스(sequence)를 가리킨다. 경로의 길이(length)는 경로에 속한 엣지의 수를 나타냅니다. 트리의 높이(height)는 루트노드에서 말단노드에 이르는 가장 긴 경로의 엣지 수를 가리킨다. 트리의 특정 깊이를 가지는 노드의 집합을 레벨(level)이라 부른다. 잎새노드(leaf node)란 자식노드가 없는 노드다. internal node란 잎새노..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dU7ojg/btqvwMEVXZ3/5tFz1Cltb5f71sIfGB4k7k/img.png)
1. Static Pages와 Dynamic Pages 과정 이해하기 1.1 Static Pages와 Dynamic Pages 1.1.1 Static Pages - Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환한다. - 항상 동일한 페이지를 반환한다. - Ex) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들 1.1.2 Dynamic Pages - 인자의 내용에 맞게 동적인 contents를 반환한다. - 즉, 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물 *Servlet:WAS위에서 돌아가는 JavaProgram - 개발자는 Servlet에 doGet()을 구현한다. 2. Web Server와 W..
자바빈(JavaBean)이란? 일반적인 웹 사이트는 디자이너와 프로그래머가 협력하여 개발한다. 그런데 프로그래머가 JSP페이지에 자바코드를 입력했을때 디자이너 입장에서는 해석하기 어려워지고 효율또한 매우 떨어지게 된다. 이런 비효율적인 부분을 지원하기위해 제공되는 기능의 형태가 자바빈이다. 자바빈은 JSP페이지의 디자인 부분과 로직부분을 나눔으로써 복잡한 자바코드를 줄이고 프로그램의 재사용성을 증가시킨다. 자바빈의 설계 규약 자바빈을 작성하기 위해서는 설계규약을 따라야 한다. 만약 설계규약과 맞지 않는 경우 자바빈의 특성을 갖지않는 클래스가 되어버릴 수 있다. 1. 멤버변수마다 별도의 get/set 메소드는 존재해야 한다. 2. get 메소드는 매개변수가 존재하지 않아야한다. 3. set 메소드는 반드시..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ltImx/btquZG5oq0P/PQ2sOXSkTbdmI2bWzcgeg0/img.png)
1. Servlet 살펴보기-4 1.1 서블릿 초기화 파라미터 : ServletConfig 1.1.1 web.xml파일에 초기화 파라미터(Initialization Parameter) 기술 : 특정 Servlet이 생성될 때 초기에 필요한 데이터들이 있다. 예를 들어 특정 경로 및 아이디 정보 등 이다. 이러한 데이터들을 초기화 파라미터라고 하며, web.xml에 기술하고 Servlet파일에서는 ServletConfig 클래스를 이용해서 접근(사용)한다. 또한, 초기화 파라미터를 web.xml이 아닌 Servlet파일에 직접 기술하는 방법도 살펴 본다. Servlet클래스에서 HttpServlet을 상속받고 있기 때문에 getInitParameter를 사용할 수 있다. 초기화 파라미터는 어떤 특정한 se..