들어가기 전이 글은 HTTP/2 in action 4장을 읽으며 공부한 글입니다. 4.1 HTTP/1.2가 아니라 HTTP/2인 이유바이너리 프로토콜 (프레임 기반으로 메세지를 주고 받음)동기적이 아니라 다중화 (한 커넥션에서 여러 스트림을 보낼 수 있음) 흐름 제어 (TCP 수준이 아니라 HTTP/2 수준)스트림 우선순위화헤더 압축 (HTTP/1.1까지는 헤더압축 없음) 서버 푸시HTTP/2는 HTTP/1.x 프로토콜의 성능을 개선하기 위해 만들어진 프로토콜이고, 위 개선점이 존재한다. 일반 개발자들은 개발함에 있어서 HTTP/2, HTTP/1.x를 구분할 필요는 없다. HTTP/2 역시 GET, POST 같은 메서드를 사용해 요청하고 200, 300 같은 응답 코드를 받는 방식으로 동작하기 때문이다...
HTTP 상태 유지 HTTP는 Stateless다. 따라서 서버는 새로운 요청이 들어왔을 때, 그 요청이 누구로부터의 요청인지 문맥은 어떤지 알 지 못한다. 하지만 실제 통신을 할 때는 문맥을 계속 유지해야하는 경우가 있다. 이렇게 문맥을 유지하기 위해서 서버는 세션, 클라이언트는 쿠키를 통해 서로의 상태를 기억한다. 클라이언트는 세션으로부터 받은 쿠키를 쿠키 저장소에 저장한다. 그리고 다음 요청을 할 때, 해당 쿠키를 Request Header에 넣어서 전달한다. 서버는 Request 객체에서 쿠키 헤더의 값을 보고, 서버 저장소에 있는 세션 정보를 가져온다. 세션 정보를 바탕으로 클라이언트 / 서버 간의 관계를 유지한다. 서버는 다시 Response에 응답을 할 때, 쿠키 객체에 Session Id를..
이 글은 한양대 이석복 교수님의 강의를 복습하며 작성한 글입니다. 멀티미디어 : 오디오 샘플링 아날로그 신호를 디지털 신호로 변환하는 작업 오디오는 연속적인 아날로그 신호이며, 네트워크에서 사용하기 위해서는 디지털 신호로 변환이 필요함. 샘플링의 파라메터 샘플링 비트 : 샘플링 비트는 주어진 크기를 얼마나 잘게 쪼갤지를 의미함. 샘플리 주기 : 샘플링 주기는 주어진 시간을 얼마나 잘게 쪼갤지를 의미함. 샘플링 비트 + 주기가 크면 클수록 디지털 신호는 아날로그 신호에 가까워진다. Sender는 샘플링해서 값을 전송하고, Receiver는 받은 값을 다시 아날로그 신호로 바꾼 후 사용한다. 멀티미디어 : 비디오 비디오는 이미지의 연속이다. 이미지는 프레임이라고 표현한다. 프레임은 픽셀로 나눠지고, 각 픽셀..
이 글은 한양대 이석복 교수님의 강의를 복습하며 작성한 글입니다. 무선 영역의 MAC 프로토콜 유선 Link 계층은 한 케이블이라는 Medium을 공유하면서 Collision이 발생한다. 무선 Link 계층도 공기라는 같은 Medium을 이용해서 값이 전파되기 때문에 Collision이 발생한다. 무선 네트워크의 종류 Wireless 네트워크 (무선 네트워크) 무선 네트워크는 선이 없는 네트워크를 의미한다. 무선 네트워크는 이동을 의미하지는 않기 때문에 선 없이 네트워크 환경에 연결된 것으로 이해할 수 있다. 한 강의실에서 노트북을 계속 사용하는 것을 의미한다. Mobility 네트워크 (이동 네트워크) 이동 네트워크는 AP 혹은 서브넷이 바뀌는 것을 의미한다. 가장 단적인 예로 스마트폰이 있다. 이동 ..
Heap Build 시간복잡도는 O(NLogN)이 아니다! 얼마 전에 알게 된 사실이다. Heap Build에 필요한 시간복잡도는 O(nlogn)이 아니다. 바로 O(n)이다. 나는 당연히 Heapfy를 한번 하는데 필요한 시간 복잡도가 O(logn)이기 때문에 n개의 리스트를 Heap으로 만들면 당연히 O(nlogn)으로 이해를 하고 있었다. 그런데 실제로는 그것보다 더 적은 값으로 계산이 된다고 한다. 이곳(Time Complexity of building a heap - GeeksforGeeks)에 증명이 되어있었고, 그것을 내가 알아보기 쉽게.. 부족한 수학 머리로 간단히 정리해본다. 먼저 Heap Build 시간복잡도는 다음과 같은 식을 세울 수 있다. 여기서 n은 Array나 List의 최대 ..