네트워킹과 웹 성능 최적화 기법

“좋은 개발자는 시스템이 어떻게 동작하는지 안다. 그러나 훌륭한 개발자는 그것이 왜 그렇게 동작하는지를 이해한다.”

1

이 책은 ‘Behrouz A. Forouzan’ 형님이 쓰신 1000여 페이지로 구성된 책으로 공부했던 나에게 ‘내가 배운 모든 것에’ 생기를 불어 넣어주는 책이다. 한 마디로 “좋은 책”이다.

2

HTTP의 ‘하위호환성’ 부분을 읽으면서, 네트워크가 지향하는 바를 좀 더 깊게 생각해 보게 되었다. ‘다같이, 다양한 방법으로, 투명하게 그리고 이전 세대를 배려하며’


  1. 웹사이트가 빠를수록 사용자를 더 오래 붙잡아 둘 수 있다. 웹 사이트가 빠를수록 사용자의 재방문율을 향상시킨다. 웹사이트가 빠를수록 사용자의 구매 전환율을 향상시킨다. 간단히 말해서, 속도는 특징이다.

  2. 레이턴시, 패킷을 전송하는 곳에서부터 전달받는 곳까지 이동하는 데 걸리는 시간; 대역폭, 논리적인 혹은 물리적인 통신 경로의 최대 처리량

  3. 레이턴시를 일으키는 요소는 (전파지연, 전송지연, 프로세싱 지연, 큐잉 지연) […] 네트워크를 이동하는 각각의 패킷은 모두 이러한 지연을 겪게 된다. 데이터의 이동 거리가 멀수록 전파 지연은 늘어나고 중간 단게에서 라우터를 만날 때마다 각 패킷은 프로세싱 지연과 전송 지연을 겪게 된다.

  4. […] 지연이 300밀리초 이상으로 넘어서면 시스템을 ‘느리다’라고 인식하고, 1초의 경계를 넘어가게 되면 많은 사용자들은 기다리는 중에 머릿속으로 딴 생각을 하거나 그 다음에 해야 할 일들에 대해서 생각하기 시작한다고 한다.

  5. HTTP 표준은 전송 프로토콜로서 오직 TCP만을 명시하고 있지는 않다.

  6. 3-Way 핸드세이크로 인해 발생하는 지연이 크기 때문에, 새로운 TCP 커넥션을 맺는 것보다 기존에 연결되어 있는 TCP 커넥션을 재사용하는 것이 TCP에서 작동하는 애플리케이션을 최적화하는 데에 아주 중요한 역할을 한다.

  7. […] TCP 혼잡 제어의 메커니즘에 대해 감을 잡을수록 킵얼라이브, 파이프라인, 또는 멀티플렉싱과 같은 여러 최적화 방식을 사용하는 것이 점점 더 꺼려질 수도 있겠다.

  8. […] UDP의 동작 방식을 설명한 RFC 768은 냅킨 한 장에 채워 넣을 만큼 간단하다.

  9. 사용자와 개발자는 모두 사용 기기가 항상 커져 있고, 인터넷에 항상 연결되어 있으며, 사용자의 입력이나 데이터 패킷에 즉시 반응할 수 있기를 기대한다. 그러나 모바일 네트워크에서는 그러한 바람이 쉽게 이루어지지 않는다.

  10. […] 모바일 애플리케이션은 결국 무선 전파 인터페이스 사용을 최소화하는 데에 중점을 맞춰야 할 것이다.

  11. 넓은 의미로 인터넷 속도를 높이려면, RTT를 낮출 수 있는 방안을 찾아야 한다.

Written on December 5, 2015