learning http/2

1 minute read

개발자 채용공고를 읽다보면 종종 이런 우대사항 혹은 필수사항을 발견한다.

‘HTTP 프로토콜에 대한 이해’

예전의 나는 이런 발견을 할 때마다 의문을 가졌다. 대체 어느 정도 수준의 이해를 말하는 것일까? 웹 개발자라면 HTTP는 매일 너무나 당연하게 사용하고 있는 기술이다. 따라서 이를 어떻게 사용하는지 모르는 웹 개발자도 없다. 그렇다면 low 레벨에까지 이르는 기술 이해도를 요구하는 건가? 서버 설정의 문제라면 스프링부트에서는 application.properties에서의 간단한 설정만으로도 http/2를 적용할 수 있다. 심지어 IIS에서는 별다른 설정 없이도(!) http/2를 지원해준다.

하지만 웹 어플리케이션을 최적화 하기 위해서는 http에 대한 이해가 반드시 필요하다. 최적화라 함은 그저 빠르게 리소스를 불러오는 것만으로는 충분하지 않다. 무엇을 먼저 불러올지, 무엇을 먼저 사용자에게 보여줄지에 대한 판단이 필요하다. 그리고 이러한 일련의 의사결정을 구현하기 위해서는 프로토콜이 어떻게 동작하는지, 그리고 어떻게 다룰 수 있는지 대한 이해 역시 필요하다. 이렇게 http/2 프로토콜에 대한 이해를 바탕으로 한 웹 어플리케이션 최적화 활용 방법을 http/2 활용 전략이라 한다. 즉 요청 응답 다중화, 서버 푸시, 우선순위를 어떻게 다룰지의 문제이다.

이 책 덕분에 여태껏 경험적으로, 그리고 막연하게만 알아왔던 http/2 활용 전략에 대해 보다 깊은 고민을 시작할 수 있게 되었다. 물론 이 책만으로는 충분하지 않다. 이 책은 http에 대한 개략적인 내용만을 다루고, 소개하는 도구들도 이제는 오래되어 작동하지 않기도 한다. 더 깊이 알기 위해서는 연구가 더욱 필요하다. 어느새 일종의 예술의 영역이 되어버린 웹 개발이다. 좋은 개발자가 되기 위해서는 참으로 갈 길이 멀다.

20210306

Tags:

Categories:

Updated:

Leave a comment