HTTP/2의 배경이 무엇인지, 그리고 조직에 HTTP/2를 적용하기 전 알아야 하는 것은 무엇인가? Akamai의 수석 설계자이자, 저자 Stephen Ludin과의 토론이 준비 되어있다. 이 대화에서 우리는 HTTP/1.1의 한계, HTTP/2의 이점 및 조직에서 프로토콜을 사용하는 방법에 대해 이야기 한다.
HTTP/1.1의 한계는 무엇이며, 사람들이 HTTP/1.1을 수정하려는 이유는 무엇인가?
HTTP/1이 처음 나왔을 때 웹은 주로 실제 이미지와 함께 텍스트 콘텐츠를 전달하는 것이었다. 당시 사람들은 깜빡임을 좋아하였고, 그것이 의사소통을 위한 플랫폼이었다.
그런 다음 웹에 대한 관심의 불이 붙었고 세상을 상상력으로 사로 잡았다. 모던 웹 페이지는 초기 웹 페이지와는 전혀 다르다. 이제 웹 페이지는 150개의 오브젝트 개체, 2MB 데이터, 다른 50여개의 엔드 포인트가 연결 중이다. 이것은 HTTP/1.1이 개발 되었을 때 생각하지 못했던 것들이다.
HTTP/1.1의 한계는 현대 웹을 염두에 두지 않았다는 것에서 시작한다. HTTP/1.1은 설계 문제로 삐걱거렸고, 사람들은 자신이 원하는 방식으로 수행하기 위해 많은 노력과 해결 방법을 시도했다. 실제로 성능에 대한 전체 속도는 HTTP/1.1 프로토콜에서 최대한 벗어나기 위한 대안과 모범 사례를 공유하는 사람들이 주로 주장한다.
HTTP/2의 목표는 HTTP/1.1의 단점을 해결하고 모던 웹을 다루는 프로토콜을 개발하여 다음 세대로 성장 할 방법을 설명하는 것이다.
인터넷은 어떻게 바뀌었는가?
물리적인 변화 : HTTP/1.1이 나왔을 때 24K 보드 모뎀은 멋지고 빨랐다. 사람들의 콘텐츠 소비 능력을 몇 배로 증가하였다.
내부적인 변화 : 객체 자체의 크기가 더 커졌다. “객체”라고 하면 웹 페이지 자체, 웹 페이지의 크기, 스트리밍 비디오 등 페이지의 요소를 의미한다. 이러한 모든 요소들이 오래 전 좋았던 HTTP/1.1의 삶을 어렵게 만들었다. 이제 무언가의 도움이 필요할 때이다.
실무자가 실제로 HTTP/2에 대해 알아야 할 것은 무엇인가?
스택에 있는 위치에 따라 다르다. 개발자가 콘텐츠를 제공하는 DevOps 웹 개발자라고 가정했을 때, 짧고 건성으로 대답하면 “전혀 없다”이다. HTTP/2를 사용할 수 있도록 웹 인프라를 업그레이드 해야 하고, 오늘 날 생각할 수 있는 모든 주요 웹 서버는 어느 방식이든 지원할 수 있다.
이제 이전 도움 없는 대답보다 도움되는 대답은 HTTP/2에 맞게 콘텐츠를 최적화하는 것이다. 이것은 훨씬 더 복잡하고 의미 있는 대답이다. 최적화는 HTTP/1.1과 함께 사용하는 패턴들 – HTTP/2에서의 안티 패턴들이 있다.
예를 들어, HTTP/1.1의 경우 소켓 관리의 제한과 브라우저가 열리는 소켓 수를 늘리기 위해 처리량을 최대화 하기 위해 4개 또는 6개의 다른 도메인에 콘텐츠를 퍼뜨려 놓는다.
반면 HTTP/2에서는 하나의 소켓을 최적화 하려고 한다. 반드시 많은 소켓을 통과하는 것이 데이터를 빠르게 가져오는 방법은 아니다. HTTP/1.1에 대한 샤드를 한다면, 비 샤딩을 살펴보는 것도 좋을 것이다. 어쩌면 4대의 도메인에서 1대의 도메인으로 내려올 필요가 없을 수도 있지만 2대의 도메인으로 내려가면 더 좋은 경험을 얻을 수 있다.
살펴볼 다른 사항은 제 3자 콘텐츠 이다. 속도 향상을 원한다면 웹 컨텐츠 성능에 대한 큰 위반자 중 하나가 제 3자 콘텐츠 이다.
혹시 제 3자 콘텐츠를 운용하고 있는가? HTTP/2를 사용할 수 있는가? 그것들은 HTTP/2를 지원하는가? 모두 확인해야 하는 상황이며, HTTP/2 변환을 간단한 “플립 스위치”에서 “괜찮아”로 바꿀 수 있습니다. 이 행동들은 업무 수행을 위한 약간의 마이그레이션 될 것이다.
이미 HTTP/2를 사용하여 큰 효과를 본 기업이 있는가?
당신이 찾아 볼 수 있는 대기업 중에 페이스북, 트위터, 구글 - 이 회사들은 HTTP/2를 사용하고 있다. 내가 속해 있는 회사인 Akamai는 꽤 오랫동안 HTTP/2를 사용해 왔고 우리의 고객들을 교육하고 있다. 마지막으로 확인한 바에 따르면 현재 HTTP/2로 암호화 된 트래픽의 약 14% 또는 15%를 넘었고 이는 꽤 큰 수치이다.
사람들이 알아야 할 HTTP/2의 잠재적인 단점이 있는가?
HTTP/2의 단점 중 하나는 아무도 단점에 대해 이야기하지 않는다는 것이다. 이제까지 들어 본 모든 것은 모든 단점 뿐만 아니라 X%로 실적을 개선하는 방법이며 모든 사람들이 기분 좋게 일찍 퇴근할 것이다.
현실은 얼마만큼의 성능 향상이 상황에 따라 달라지는지 모여준다. 우리 팀이 수행한 연구에서 HTTP/2를 기준으로 테스트를 한 다음 대부분의 사이트에서 성능이 10%에서 15%까지 증가하는 것을 확인했다. 일부 사이트 중 일부 부분에서 성능이 향상되고 사이트의 다른 부분에서는 성능이 향상되지 않는 것으로 나타났다. 이는 해당 사이트에서 보유한 콘텐츠의 양, 배포 방법 및 HTTP/2를 통해 얻을 수 있는 이점이 모두 영향을 받은 것이다.
상대적으로 드문 경우로 HTTP/2의 성능이 저하되는 경우가 있을 수 있고, 서버 및 브라우저로 실시간으로 처리되는 프로토콜 구현에서 문제가 발생하는 경향이 있다.
HTTP/2에 대한 모범 사례는 무엇인가?
짧게 말하면 기술은 여전히 새롭다는 것이다. 실제로 모범 사례는 모두 프로토콜에 결정된다. 나는 10년 후에 Steve Souders의 HTTP/2에 대한 모범 사례에 관한 책이 될 거라 보장한다.
염두에 두어야 할 점은 오늘날 브라우저가 연결 관리에 어떻게 접근하고 있는 지다. 연결하려는 호스트 이름이 실제로 이미 연결되어 있는 인증서에서 유효하다는 사실을 알게 되면 크롬과 파이어폭스는 재 연결을 시도합니다. 즉, 여러 도메인이 있고 모두 동일한 인증서를 사용하는 경우 브라우저는 HTTP/2를 사용하여 단일 소켓으로 통합하여, 처리량을 유지하고 연결 오버헤드를 줄 일수 있는 장점이 될 수 있다.
그것은 하나의 모범 사례이며 그 소켓 말고는 이 페이지는 비어있다. 앞으로 이동할 때 그 페이지를 사용할 것이다.
HTTP/2 채택을 막 시작한 조직을 위한 팁은 무엇인가?
현재 보유하고 있는 웹 인프라를 확인하라. 이미 업그레이드 되어있으면 HTTP/2를 켜기만 하면 된다. 트래픽 시그먼트에서 시도해보고 작동하는 방식을 확인하라. A/B 테스트를 수행하라. 실제로 HTTP/2로 쉽게 옮길 수 있는 방법이 있다면 그대로 진행해라. 그것은 큰 문제를 일으키지 않을 것이며, 그것으로 당신은 많은 것을 배울 것이다.
*****
원문 : HTTP/2: Leveraging the modern web
번역 : 장형석
이전 글 : 디자인 씽킹(Design thinking)이란?
다음 글 : 비즈니스 혁신의 10가지 원칙
최신 콘텐츠