분류 전체보기 85

[HTTP] 6. HTTP 상태 코드

[1] 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리 중 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 [2] 2xx - 성공(Successful) 클라이언트의 요청을 성공적으로 처리 200 OK: 요청 성공 201 Created: 요청 성공해서 새로운 리소스가 생성됨 (응답 헤더 Location 부분에 리소스 위치를 반환함) 202 Accepted: 요청은 접수되었고..

[HTTP] 5. HTTP 메서드 활용

[1] 클라이언트에서 서버로 데이터 전송 - 데이터 전달 방식은 크게 2가지로 나뉜다. 쿼리 파라미터를 통한 데이터 전송 GET 검색어나 정렬 필터에 주로 사용 메세지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 등 - 정적 데이터 조회 (쿼리 파라미터 미사용) 이미지, 정적 텍스트 문서 GET 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능 - 동적 데이터 조회 (쿼리 파라미터 사용) 주로 검색, 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 GET 으로 쿼리 파라미터 사용해서 데이터를 전달 - HTML Form 데이터 전송 HTML Form 전송은 GET, POST만 지원함 POST 전송시 Con..

[HTTP] 4. HTTP 메서드

[1] HTTP API 를 만들어보자! ex) 회원 정보 관리 API를 만들어라. 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member - 이것은 좋은 URI 설계일까? 가장 중요한 것은 리소스 식별이다. 회원을 조회하라, 회원을 등록하라라는 자체가 아니라 '회원'이 리소스가 되어야 한다. 즉 조회하고 등록하는 '행위'와, 회원이라는 '리소스'를 분리하고, 회원 리소스를 URI에 매핑해야 한다. 회원 목록 조회 /members (계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장. member → members) 회원 조회 /members/{id} 회..

[HTTP] 3. HTTP 기본

[1] HTTP (Hyper Text Transfer Protocol) HTML 과 같은 텍스트를 전달하는 용도로 시작했으나 지금은 HTTP 메세지에 모든 것을 전송한다. HTML, Text IMAGE, 음성, 영상, 파일 JSON, XML (API) 서버 간 데이터를 주고 받을 때도 대부분 HTTP 사용 역사 HTTP/0.9 (1991): GET 메서드만 지원, HTTP 헤더 없음 HTTP/1.0 (1996): 메서드, 헤더 추가 HTTP/1.1 (1997): 가장 많이 사용함, RFC2068(1997) → RFC2016(1999) → RFC7230~7235(2014) HTTP/2 (2015): 성능 개선 HTTP/3 (진행중): TCP 대신 UDP 사용, 성능 개선 기반 프로토콜 TCP: HTTP/1..

[HTTP] 2. URI와 웹 브라우저 요청 흐름

[1] URI (Uniform Resource Identifier) Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것 Identifier: 다른 항목과 구분하는데 필요한 정보 [2] URL (Uniform Resource Locator) / URN (Uniform Resource Name) URL - Locator: 리소스가 있는 위치를 지정 URN - Name: 리소스에 이름을 부여 Locator는 변할 수 있지만 Name은 변하지 않는다. Name만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않아서 대부분 URL을 사용한다. [3] URL 문법 해석 (문법) scheme://[userinfo@]host[:port][/path][?quer..

[HTTP] 1. 인터넷 네트워크

[1] IP(인터넷 프로토콜; Internet Protocol) 지정한 IP 주소(IP Address)에 데이터를 패킷(Packet)이라는 통신 단위로 나눠서 전달한다. IP 패킷은 전송 데이터와 출발지 IP, 목적지 IP 등의 내용을 포함하고 있다. - IP의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송된다. 비신뢰성 중간에 패킷이 사라질 수 있다. 패킷의 도착 순서가 처음과 달라질 수 있다. 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 때 구분이 어렵다. [2] TCP와 UDP TCP/IP 패킷은 출발/목적지 PORT, 전송 제어, 순서, 검증 정보 등이 포함되어 있어 IP 만으로 해결되지 않았던 순서와 관련된 문제가 해결이 된다. - ..

[파이썬] 백 트래킹(Backtracking) 기법

제약조건 만족 문제(Constraint Satisfaction Problem)에서 해를 찾기 위한 전략 해를 찾기 위해 후보군에서 제약조건을 점진적으로 검사하다가, 해당 후보군이 제약조건을 만족할 수 없다고 판단되면 더 이상 연관된 후보들을 검사하지 않고 다른 후보군으로 넘어가 최적의 해를 찾음 실제 구현시, 고려할 수 있는 모든 경우의 수(후보군)을 상태공간트리(State Space Tree)를 통해 표현함 각 후보군을 DFS 또는 BFS 방식으로 확인 Promising : 해당 후보군이 조건에 맞는지 검사 Pruning(가지 치기) : 조건에 맞지 않으면, 바로 다른 후보군으로 넘어가 탐색 시간을 절약함 (예제) N Queen 문제 - NxN 크기의 체스판에 N개의 퀸을 서로 공격할 수 없도록 배치하..