- HTTP 프로토콜을 이용해서 서버에 무언가를 전달할때 사용하는 방식입니다. 01. GET - 가져오는 것. - URL (주소줄) 값에 ?뒤에 데이터가 Key, Value쌍으로 이어붙어서 보내집니다. - ex) hamdi.tistory.con?id=seung&page=2&type=stts - 위에서 본 ex와 같이 데이터가 여러개일때 &로 구분이 됩니다. - URL에 데이터가 노출되어 보안에 취약합니다. - 전송하는 길이에 제한이 있습니다. - 데이터를 Header에 포함하여 전송합니다. - URL에 이어 붙기때문에 길이제한이 있어서 많은양의 데이터는 보내기 어렵습니다. - Select적인 성향. 서버에서 어떤 데이터를 가져와서 보여주는 용도로 많이 쓰입니다. - HTTP/1.1 스팩인 RFC2616의..
웹에서 쿠키와 세션을 사용하는 이유? - HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용합니다. 1) Connectionless 프로토콜 (비연결지향) - 클라이언트가 서버에 요청(Request)을 했을 때 그 요청(Request)에 맞는 응답(Response)을 보낸 후 연결을 끊는 처리 방식입니다. 2) Stateless 프로토콜 (상태정보 유지 안함) - 클라이언트의 상태 정보를 가지지 않는 서버 처리 방식입니다. - 클라이언트와 첫번째 통신에서 데이터를 주고 받았다 해도, 두번째 통신에서 이전 데이터를 유지하지 않습니다. 01. Cookie (쿠키) 개념 - 쿠키는 클라이언트 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다. - 위에 말한 로컬이 사용자의 컴퓨터를 이야기합니다...
다음 Spring 프로젝트를 보면 servlet-context.xml과 root-context.xml을 볼 수 있습니다. servlet-context.xml servlet-context.xml은 위에 캡쳐화면과 같이 다음 주석과 같이 Dispather Servlet의 request-processing에 관한 내용이 선언이 되었습니다. 즉, 쉽게 이야기 해서 요청과 관련된 객체들을 정의합니다. url 관련 Controller, @(어노테이션), view resolvers, handlerMapping, Intercepter, MultipartResolver 등등. root-context.xml root-context.xml은 위에 캡쳐화면과 같이 다음 주석과 같이 다른 웹 컴포넌트들과 공요하는 자원들을 선언..
Static Page와 Dynamic Pages 1. Static Pages - Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환합니다. - 항상 동일한 페이지를 반환합니다. - Ex) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들. 2. Dynamic Pages - 인자의 내용에 맞게 동적인 contents를 반환합니다. - 즉, 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물. * Servlet : WAS 위에서 돌아가는 Java Program - 개발자는 Servlet에 doGet()을 구현합니다. Web Server와 Was의 차이 1. Web Server 1) Web Server의 개념 - 정..
* 버블정렬 (Bubble Sort) 알고리즘 개념 - 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘입니다. - 2개를 비교해서 숫자 크기가 순서에 맞게 정렬이 되지 않을경우 서로 교환을 합니다. - 조금 더 구체적으로 이야기해서 첫번째 데이터는 두번째 데이터, 두번째 데이터는 세번째 데이터 이런 반복적인 방법으로 해서 마지막 데이터까지 비교를 하면 됩니다. - 첫번째 원소를 시작으로 인접한 원소끼리 계속 자리를 교환하면서 맨 마지막 자리로 이동하는 모습이 물방울 모 양 같다하여 버블정렬이라고 합니다. * 버블정렬 알고리즘의 장단점 1) 장점 - 구현이 매우 간단합니다. 2) 단점 - 순서에 맞지 않은 요소를 인접한 요소와 교환합니다. - 하나의 요소가 가장 왼쪽에서 가장 오른쪽으로 이동하기 위해서는..
* 선택정렬 (Selection Sort) 알고리즘 개념 - 제자리 정렬(in-place sorting) 알고리즘의 하나. - 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘. - 첫번째 자료를 두번째 자료부터 마지막 자료까지 차례대로 비교하여 가장 작은 최소값을 찾아 첫번째에 넣고, 두번째 자료를 세번째 자료부터 마지막 자료까지와 차례대로 비교하여 그 중에서 가장 작은 최소값을 찾아 두번째 위치에 넣 는 과정을 반복정렬하여 수행합니다. * 선택정렬의 과정 1. 주어진 배열중에 최소값을 넣습니다. 2. 그 값을 맨 앞에 위치한 값과 교환합니다. 3. 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체합니다. 4. 하나의 원소만 남을때까지 위의 1~3 과정을 반..
자바스크립트는 프로토타입 기반 언어이자 객체지향언어의 일종입니다. 쉽게 이야기해서 프로토타입이 자바스크립트의 모든 객체들의 부모가 될 수 있습니다. 자바, 파이썬과 같은 객체지향의 언어와 같은경우 클래스라는 것이 존재합니다. 자바스크립트기 객체지향언어지만, 클래스라는 개념이 없이 프로토타입이라는 것을 사용합니다. 그러다 보니 상속기능이 따로 없이 객체를 원형으로 하여 복제의 과정을 통해서 객체의 동작 방식을 다시 사용할 수 있습니다. prototype 객체 Javascript의 모든 객체는 자신의 prototype으로 부터 constructor 프로퍼티를 상속합니다. 인스턴스가 생성되는 순간 prototype의 constructor 생성자 메서드를 호출합니다. 모든 Javascript 함수는 Functi..
* 큐란? - 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 구조로 저장하는 형식을 의미합니다. - 선입선출이라고도 불려지고, 먼저 줄을 선사람이 먼저 나갈 수 있는 상황이라고 볼 수 있습니다. - 나중에 집어 넣은 데이터가 먼저 나오는 스택과 반대되는 개념으로 볼 수 있습니다. * 큐의 연산 - 큐는 FIFO(First-In-First-Out) 를 따른다. 1) add(item) : item을 리스트의 끝부분에 추가합니다. 2) remove() : 리스트의 첫번째 항목을 제거합니다. 3) peek() : 큐에서 가장 위에 있는 항목을 반환합니다. 4) isEmpty() : 큐가 비어 있을 때에 true를 반환합니다. * 큐 사..
1. 일반함수 function 함수명() { //자바스크립트 코드문 } function addFnc(x, y) { return x+y; } - 파싱하는 단계에서 함수 변수인 addFnc가 정의되고 함수를 호출하면 런타임에 x, y가 정의됩니다. - 자바스크립트를 처음 읽을 때만 해석됩니다. - 호출문이 다른 함수보다 앞에 있더라도 호출이 가능합니다. 2. 익명함수 var addFnc function(x, y) { return x+y; } addFnc(x, y); - 이름이 없기 때문에, 접근할때 비로소 해석되고, 실행될때 함수 몸체가 해석됩니다. - 실행코드 블록을 갖는 함수를 정의해 addFnc라는 변수에 할당하고 있습니다. 이렇게 정의된 함수는 이름이 없다. 이름 대신에 변수로 호출을 할 수 있습니다..
//소수타입 전역변수 선언 double mathDouble = 36.142; 1) Math.floor() - 내림 - Math.floor(mathDouble); - 결과값 : 36.0 2) Math.ceil() - 올림 - Math.ceil(mathDouble); - 결과값 : 37.0 3) Math.round() - 반올림 - Math.round(mathDouble); - 결과값 : 37 4) Math.max() - 최대값 - Math.round(mathDouble, 38.6); - 결과값 : 38.6 - 다음 2가지 수 중 38.6이 더 크므로 더 큰 숫자를 반환한다. 5) Math.min() - 최소값 - Math.round(mathDouble, 38.6); - 결과값 : 36.142 - 다음 2가..