CS (23) 썸네일형 리스트형 트라이 ( Trie ) 자료구조 트라이 문자열에 특화된 자료구조이며, 문자열 집합을 표현하는 트리 자료구조이다. 우리가 원하는 원소를 O(n)으로 찾을 수 있다. 위 그림을 보면, blog를 예로 들 때, b, bl, blo, blog 순으로 트리에 저장되어 있는 것을 볼 수 있다. 이는 각각 blog의 접두사들이다. 이러한 이유들 때문에 트라이는 접두사 트리 ( Prefix Tree )라고도 불린다고 한다. 트라이 단점 트라이의 치명적 단점은 공간 복잡도다. 문자열에서 각각의 문자별로 하나의 노드가 필요한데, 예를 들어 알파벳 소문자 a~z가 포함되어있다면 기본적으로 26개의 포인터 배열을 가지고 있어야 하는 문제가 생긴다. 이렇게 되면, 최종 메모리는 ( 포인터 크기 * 포인터 배열 개수 * 트라이에 존재하는 총 노드의 개수 ) 가.. HTTP와 HTTPS 동작 순서 HTTP : TCP -> HTTP HTTPS: TCP -> SSL -> HTTP 차이 SSL( Secure Socket Layer )을 쓰냐 안쓰냐의 차이다. SSL프로토콜은 정보를 암호화시키고 이때 공개키와 개인키 두가지를 이용한다. HTTPS는 인터넷 상에서 정보를 암호화하기 위해 SSL 프로토콜을 이용해 데이터를 전송하고 있다는 것을 말한다. 즉, 문서 전송시 암호화 처리 유무에 따라 HTTP와 HTTPS로 나누어지는 것. 모든 사이트가 HTTPS로 하지 않는 이유는, 암호화 과정으로 인한 속도 저하가 발생하기 때문이다. OSI 7계층 OSI 7계층 통신 접속에서 완료까지의 과정을 7단계로 정의한 국제 통신 표준 규약 각 계층은 하위 계층의 기능만 이용하고, 상위 계층에게 기능을 제공한다. 일반적으로 하위 계층들은 하드웨어들로, 상위 계층들은 소프트웨어로 구현된다. 1 계층 ( PHYSICAL LAYER 물리 계층 ) 물리 계층(Physical Layer)은 컴퓨터 네트워킹의 OSI중 가장 낮은 계층이다. 어떤 하나의 네트워크에서 기본 네트워크 하드웨어 전송기술들로 구성된다. 네트워크의 높은 수준의 기능의 논리 데이터 구조를 기초로 하는 필수 계층이다. 2 계층 ( DATA LINK LAYER 데이터 링크 계층 ) 데이터 링크 계층 ( Data link Layer )은 포인트 투 포인트간 신뢰성있는 전송을 보장하기 위한 계층으로, CR.. HTTP Method Safe Methods 리소스를 수정하지 않는 메소드들 - OPTIONS, GET, HEAD 등 - 을 Safe하다고 말한다. 대부분의 경우 여러번 연산을 해도 값이 변하지 않는 멱등성(Idempotent)을 띄면 Safe 하다고 말한다. DELETE는 Idempotent하지만 리소스를 변경하므로 Safe하지는 않다. HEAD는 Response-Body 없이 Header만 얻기 위해 사용한다. OPTIONS는 해당 리소스에 대해 가능한 Operation이 무엇인지 응답을 얻기 위해 사용한다. 더보기 The OPTIONS method represents a request for information about the communication options available on the request/res.. URI - URL 그리고 URN URI ( Uniform Resource Identifier ) 현재 동작하고 있는 Server에서 특정 리소스에 접근하기 위해 사용하는 Path " 통합 자원 식별자 " URI는 인터넷의 우편물 주소 같은 것이다. 정보 리소스를 고유하게 식별하고 위치를 지정할 수 있다. 그리고 URI에는 URL과 URN 두 가지 형태가 있다. URL ( Uniform Resource Locator ) "통합 자원 지시자" URI의 가장 흔한 형태이다. URL은 특정 서버안에서 해당 리소스에 접근할 수 있는 상대적인 위치를 나타낸다. ex) "http://naver.com" -> 네이버의 URL "http://img.naver.net/static/www/dl_qr_naver.png" -> 네이버에 있는 dl_or_nav.. HTTP Keep Alive HTTP 구조 HTTP는 Connectionless 방식으로 , 연결을 매번 끊고 새로 생성하는 구조이다. 이는 Network 비용 측면에서 최초 연결을 하기 위해 많은 비용을 소비하는 구조다. Keep Alive? HTTP/1.1 부터는 이미 연결되어 있는 TCP연결을 재사용하는 Keep-Alive 라는 기능을 Default로 지원한다. 즉, Handshake 과정이 생략되므로 성능 향상을 기대할 수 있다. keep Alive 의 유지 시간은 연결된 Socket에 I/O Access가 마지막으로 종료된 시점부터 정의된 시간까지 Access가 없더라도 세션을 유지하는 구조이다. 즉 정의된 시간내에 Access가 이루어진다면 계속 연결된 상태를 유지할 수 있게 된다. Q . 왜 필요하지? 서버 자원은 무한.. TCP & UDP & TCP/IP TCP( Transmission Control Protocol ) 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 된다. TCP는 신뢰성있는 데이터 전송을 지원하는 연결지향형 프로토콜이다. 메세지들이 각단의 응용 프로그램들에 의해 교환되는 시간동안 연결이 확립되고 유지되는 것을 의미한다. TCP는 IP가 처리할 수 있도록 메세지를 여러 개의 패킷들로 확실히 나누고, 반대편에서는 완전 메세지로 패킷들을 재조립할 책임이 있다. OSI 통신모델에서, TCP는 4계층인 트랜스포트 계층에 속한다. 연결지향형인 TCP는 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작한다. TCP에서 사용하는 포트번호의 수는 0 ~ 65535(2.. 이전 1 2 3 다음