『구글 엔지니어에게 듣는 네트워킹과 웹 성능 최적화 기법

일리아 그리고릭 지음 | 정해권, 오현주 옮김

멀고도 험한 웹 개발자의 길

여러분이 웹 개발자라면 여러분에게 맞는 기술 스택의 기초는 뭘까요? 웹 개발의 영역은 나날이 전문화, 세분화 되어 가고 있습니다만 그 기초는 웹 기술과, 웹 기술의 기반이 되는 TCP, TLS, UDP, HTTP 프로토콜, 그리고 그 밖의 수많은 네트워킹 관련 프로토콜일 겁니다. 이 프로토콜들은 각각의 성능적인 특성과 최적화 방식이 다 다르기 때문에 고성능의 웹 애플리케이션을 구축하기 위해서는 네트워크가 동작하는 내부 원리에 대해 이해해야 할 필요가 있습니다.

기존 기술 스택의 기초에 대해 공부하는 것과 새로운 혁신 기술을 따라가는 것 사이에서 균형을 맞추기란 쉬운 일이 아닐 겁니다. 하지만 기초에 대한 이해가 없다면 그 지식은 얕고 얄팍할 수밖에 없습니다. 기술 스택의 가장 상단의 사용방법에 대해 아는 것만으로는 턱없이 부족하고요. 복잡한 문제를 해결해야 할 때, 혹은 이해하기 어려운 일이 벌어졌을 때, 기술의 근간 기초를 이해하고 있는 사람만이 문제를 해결하고 앞서나갈 수 있습니다.

구글 멘토에게 듣다

이 책은 네트워크 분야의 권위자이자 저자인 일리아 그리고릭(Ilya Grigorik)의 전문지식과 관련 기술 스펙 문서에서 추출한 꼭 필요한 정보들을 모두 한곳에 모아 놓았습니다. 웹 애플리케이션의 성능에 영향을 끼치는 네트워크 제약사항부터 보다 강력한 브라우저 애플리케이션을 위한 HTTP 2.0과 XHR 개선점, Server-Sent Events(SSE), 웹소켓, WebRTC 등 각종 네트워크 신기술을 다루고 있습니다.

또한, TCP, UDP, TLS 프로토콜의 성능 최적화 예시를 보여주고, 무선과 모바일 네트워크 환경에 맞춘 최적화 조건에 대해서도 자세히 설명하고 있습니다. HTTP 2.0, XHR의 클라이언트 영역 네트워크 스크립팅 기술, SSE와 웹소켓의 실시간 스트리밍 기술, 그리고 WebRTC의 P2P 통신과 같은 기술 특징점에 대해 깊이 파헤쳐 보고 싶다면 저자가 들려주는 이야기를 신뢰해도 좋습니다.

신속하고 효율적인 웹 애플리케이션을 만들어줄 지침서

고성능의 웹 애플리케이션을 만들기 위해서는 브라우저와 네트워크가 어떻게 상호작용 하는지에 대한 탄탄한 기초 지식이 필요합니다. 그것이 바로 이 책의 주제입니다(저자 인터뷰 보러가기). 성능 개선을 주제로 네트워크 기본 원리와 개념, 성능을 끌어올릴 수 있는 테크닉에 대해 총 4부에 걸쳐 다음과 같이 설명하고 있습니다.

1부에서는 네트워크 성능을 이해하기 위한 기본 용어 레이턴시와 대역폭에 대한 설명으로 시작되고, 가장 기본이 되는 핵심 프로토콜 TCP, UDP, TLS에 대해 깊이 들어갑니다. 각 프로토콜별로 성능에 영향을 끼치는 요소에 대해 설명하고 성능을 최적화하는 방법에 대해 이야기합니다.

2부에서는 모바일 환경에서 이루어지는 네트워크 기초 원리에 대해 설명하고 3G, 4G, 와이파이 환경별로 성능을 높이기 위해 알아야 할 특징에 대해 말합니다.

3부에서는 웹 개발자, 앱 개발자들이 꼭 알아야 할 HTTP 프로토콜에 대해 완벽히 해부하고 HTTP의 간략한 역사와 함께 어떻게 HTTP 2.0까지 발전하게 되었는지 조곤조곤 알려줍니다.

마지막으로 4부에서는 웹 개발자들이 서비스 성능 품질을 높이기 위한 브라우저 원리, 롱폴링 기법, 웹소켓 등 다양한 테크닉과 함께 여러 가지 브라우저 API에 대해 다룹니다.

이 책의 공역자 중 한 분이신 정해권 님은 다음과 같은 바람을 보이셨습니다.

구글을 비롯한 글로벌 소프트웨어 회사들은 이 책의 저자 일리아 그리고릭과 같은 성능 튜닝 엔지니어가 많습니다. 그들은 성능 튜닝과 최적화가 얼마나 중요한지 인식하고 있기 때문에 사용자에게 차원이 다른 서비스를 제공할 수 있는 것이라고 저는 확신합니다.

우리나라도 소프트웨어 강국으로 발돋움하기 위해 소프트웨어 설계의 자그마한 부분 하나하나가 사용자 경험 전반에 영향을 끼친다는 것을 깊이 인식하게 되길 바랍니다. 이 책에서 설명하고 있는 많은 개념과 노하우를 옆에 있는 동료, 팀원들과 함께 학습하고 토론하며 실력을 서로 배양해 나갔으면 합니다.

– 역자 서문 중에서

이 책을 먼저 보신 분들도 엄지척!

고급 개발자로 가는 길은 자신과 연관된 HW, SW, 네트워크, 알고리즘 등 다양한 분야에 대한 지식들을 ‘정확히/제대로’ 아는 것이 관건입니다. 그냥 아는 것과 정확히 아는 것에 대한 차이는 결국 SW 성능 차이로 나타나기 때문입니다. 이 책은 웹을 구성하고 있는 네트워크 인프라, 프로토콜, 브라우저 등에 대한 정확한 구조 및 동작 원리를 설명함으로써 웹 개발자들에게 성능 향상과 관련된 훌륭한 노하우를 제공해주고 있습니다.

– 송형주, SK텔레콤 종합기술원 매니저, 『인사이드 자바스크립트』 저자

웹 애플리케이션 개발자들이 프로젝트 진행할 때 가장 신경 쓰는 부분 중 하나는 고성능 네트워킹의 설계 및 개발입니다. 이를 위한 접근법이나 솔루션들은 많지만 제대로 알고 사용하지 않으면 오히려 더 많은 문제를 일으킬 수 있습니다.

이 책은 네트워킹의 기본 원리와 관련 프로토콜, 그리고 모바일 환경에서의 최신 브라우저 기술까지 깊이 있게 다루고 있습니다. 이를 통해 독자에게 본인의 시스템에 적합한 최적화 방법과 성능 향상을 위한 직관을 제공할 것입니다.

– 이상재, 스왈라비 이사

IETF HTTPbis 워킹 그룹 의장인 마크 노팅엄(Mark Nottingham)은 “이 책은 웹 성능에 관심 있는 사람 모두에게 필요하다. 이 분야에서 가장 신뢰할 만한 책이다”라고 했다고 합니다. 웹 개발자, 모바일 앱 개발자, 서버 엔지니어 모두에게 필요한 이 책은 다음 서점에서 구입하실 수 있습니다.

Yes24 | 교보문고 | 알라딘 | 인터파크

정오표