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

less than 1 minute read

몇 년 전 겪은 일이다. 당시 사용 중이던 안드로이드 폰의 배터리가 이상하게 빨리 닳아서 제조사의 서비스 센터에 찾아갔다. 해당 기종의 배터리에 문제가 있어 이미 이슈화 되었던 기기였다. 그래서 나는 당연히 내 폰도 배터리에 문제가 있으리라 생각했다. 서비스센터의 AS기사는 이러한 요지의 나의 상황 설명을 가만히 듣더니, 기기를 검사했다. 그리고는 내게 이렇게 말했다.

‘배터리는 이상이 없어보이고, 이 앱이 기기의 배터리를 과다 사용한다고 나와요.’

그리고 어떤 앱이 나의 폰 배터리를 광탈시키는지를 알려주었다. 놀랍게도 그 엉터리 같은 앱은 내가 만든 앱이었다. 업무용 앱이었던지라 사용자는 2만명이 넘었다. 원인을 확인해보니 짧은 주기의 폴링으로 네트워크와 GPS를 호출하고 있었다. 모바일 앱 개발 초보 시절의 바보같은 경험담이다.

그래서 지금은 그때에 비해서 얼마나 나아졌냐고 물으면 솔직히 뾰족한 대답을 하기가 어렵다. 웹 어플리케이션을 주로 개발하다보니 그간 네트워크를 구성하는 기술에 대한 이해를 소홀히 다뤄왔다. 아무리 웹 브라우저가 알아서 해준다고 해도 어찌 이리 무지할 수 있었을까?

요즘 나는 나 자신이 어떤 개발자가 될 것인지에 대한 갈림길에 서 있는 듯 하다. “좋은 개발자는 시스템이 어떻게 동작하는지 안다. 그러나 훌륭한 개발자는 그것이 왜 그렇게 동작하는지를 이해한다.(책 서문에서 인용)” 나는 허접한 개발자를 넘어 좋은 개발자, 훌륭한 개발자가 될 수 있을까? 적어도 이 책 덕분에 프로토콜과 레이턴시에 대해 고민하며 개발을 하는 첫 걸음은 뗄 수 있을 것 같다. 읽는 내내 어려워 힘들었지만 여러모로 고마운 책이다.

20210314

Tags:

Categories:

Updated:

Leave a comment