POST vs PUT POST와 PUT은 둘 다 비슷한 기능을 구현할 수 있다. POST POST로 리소스를 작성할 경우, 클라이언트는 리소스의 URI를 지정할 수 없다. URI의 결정권은 서버측에 있다. 글을 포스팅하는 경우 그 글의 URI는 서버가 결정한다. PUT PUT으로 리소스를 작성할 경우, 리소스의 URI는 클라이언트가 결정한다. WIKI의 수정은 클라이언트가 결정한 타이틀이 그래도 URI가 된다. 이 경우는 PUT이 적합하다. 단 PUT은 리소스가 중복되어 덮어쓰기 되는 것을 방지하기 위해 클라이언트에서 사전에 URI 존재 여부를 체크해야 할 수도 있다. 일반적으로 클라이언트가 적합한 URI를 결정하기 위해선 클라이언트단이 서버 내부 구조를 숙지하고 있어야 한다. 이런 점 때문에 PUT이 ..
쿨한 URI는 변하지 않는다. 1. 프로그래밍 언어에 의존적인 확장자와 경로를 포함하지 않는다. . jsp ,. servlet 등 서버 구현 언어나 기술 스택이 변경되면 해당 URI를 사용할 수 없게 된다. 2. 메서드명과 세션 ID를 포함하지 않는다. . do 나 메서드명이 들어가 있으면 시스템 리팩터링 시 메서드명이 변경되면 바로 URI가 바뀌게 된다. 또 세션 ID가 URI에 있으면 URI는 매번 변경되기 때문에 바람직하지 않다. 3. URI는 리소스를 표현하는 명사로 한다. HTTP는 메서드로 URI를 다룬다. 즉 메서드가 동사, URI가 명사인 관계이다. 그러므로 URI는 가능하면 명사로 설계해야 한다. 이 말은 URI에 동사가 들어가는 것을 지양하라는 말과 같다. 요약 1. URI에 프로그래밍..
추상화레벨 이름 예시 1 아키텍처 스타일 REST 2 아키텍처 브라우저, 서버, 프록시, HTTP, URI, HTML 3 구현 Apache, Firefox, Chrome URI 리소스를 통일적으로 식별하는 ID 인터넷상에서 유일한 호스트 명의 구조와 호스트 내에서 유일한 계층 경로를 결합해 리소스 간 절대 중복되지 않는 것을 보장한다. 웹 상에 존재하는 이름을 가진 모든 정보 다른 리소스와 구분되는 고유한 명칭 전 세계의 무수한 리소스는 각각 URI로 의미 있는 이름을 가진다. URI를 이용해 프로 글 매은 리소스가 표현하는 정보에 접근할 수 있다. URI는 구조를 가지고 있기 때문에 프로그램에서 간단하게 표현하는 경로에 접근할 수 있다. 어드레스 가능성(Addressability) URI가 지니고 있는..
HTML / URI / HTML HTML은 HTTP로 통신한다 HTML의 링크는 URI를 이용한다 HTTP는 URI로 조작 대상을 지정한다. 웹의 특징 1. 하이퍼미디어 텍스트와 이미지, 음성, 영상 등 다양한 미디어를 하이퍼링크로 연결해 구성한 시스템 웹 페이지에는 삽입된 이미지, 동영상으로의 링크가 포함된다. 사용자는 브라 우절 르 이용해 자유롭게 그것들을 따라갈 수 있다. 2. 분산 시스템 복수의 컴퓨터를 조합해 처리를 분산시키는 시스템 복수의 컴퓨터상에 존재하는 데이터를 일원적으로 다루거나, 한 대의 컴퓨터로는 다루기 힘든 방대한 정보를 조작할 수 있다. 웹은 프로토콜이 매우 단순하기 때문에 전 세계 규모의 방대한 시스템을 실현할 수 있다. 또 OS, 특정 하드웨어에 종속받지 않고 다양한 디바이스..
변수와 함수를 합쳐서 모형을 만드는 법 1. 모듈, 패키지 2. 퍼스트 클래스: 함수를 해쉬에 넣기 3. 클로저 4. 클래스 상속 1. 일반화/특수화 부모 클래스로 일반적인 기능을 구현하고 자식 클래스로 목적에 특화된 기능을 구현하는 접근 자식 클래스는 부모 클래스를 특수화하는 설계 방법 2. 공통부분을 추출 복수 클래스의 공통부분을 부모 클래스로서 추출하는 접근법 자식 클래스는 부모 클래스의 일종이라고 할 수 없다. 3. 차분 구현 상속 후 변경된 부분만을 구현하면 효율이 좋다는 접근법. 상속을 재사용을 위해 사용하는 방법. 자식 클래스는 부모 클래스의 일종이라고 할 수 없다. 단점 1. 상속을 많이 사용하면 코드가 복잡해진다. 2. 상속이 많을수록 깊은 상속 트리가 만들어지고, 이것은 프로그램을 이해..
병행처리 복수의 처리를 시간축 상에 오버랩에서 실행하는 것 협력적 멀티태스크 한 프로세스가 처리가 완료되는 시점에 자발적으로 처리 교대를 하는 방법 모든 처리가 최적의 간격으로 교대한다는 이상적인 상황을 기반으로 성립하는 시스템. 일반적으로는 기아 상태가 발생한다. Windows 3.1, Mac OS 9이 이 방식을 채택했다. 프로그램이 버그로 인해 무한 반복되는 상황이 되면 동시에 실행한 다른 프로그램에게는 처리 기회가 가지 않고 전부 묶어서 백업을 해버렸다. 선점적 멀티태스크 개별 프로그램과 다른 또 다른 프로그램인 "스케줄러"를 통해 일정 시간마다 지금 실행되고 있는 처리를 강제적으로 중단시켜서 다른 프로그램이 실행될 수 있도록 하는 방법 선점적(preemptive) 멀티태스크라고도 한다. Wind..