요약
- 2014년 10월 W3C의 첫 공개 Resource Hints 초안은 완전한 자원 URL을 몰라도 출처를 알 때
preconnect로 DNS 조회, TCP 연결 협상, 필요한 경우 TLS 협상을 일찍 시작할 수 있다고 설명했다. - 후속 초안들은
dns-prefetch,preconnect,prefetch,prerender의 일을 나눴다. 브라우저는 상황에 따라 전체 연결을 준비하거나 일부만 진행하거나 아예 힌트를 실행하지 않을 수 있다.
사진첩 페이지는 사진이 저장된 서버를 안다. 독자가 다음에 어느 사진을 열지는 아직 결정되지 않았다. 사진을 전부 가져오는 것은 손님이 메뉴판도 펴기 전에 주방이 모든 요리를 내놓는 격이다. 그래도 그 서버와 미리 인사할 수는 있다. 출처를 아는 순간과 정확한 파일 이름을 아는 순간 사이의 틈이 preconnect의 무대였다.
2014년 10월 21일 W3C의 첫 공개 초안은 페이지 작성자나 서버가 브라우저에 앞으로 필요한 출처를 알릴 수 있다고 했다. DNS 이름 조회, TCP 악수, 경우에 따른 TLS 협상을 앞당기는 구상이었다. 초기 문서의 또 다른 힌트 preload는 특정 자원을 가져오는 문제였다. 연결 상대를 먼저 알아 두는 일과 아직 고르지 않은 파일을 다운로드하는 일은 같은 주문이 아니다.
2017년 5월 4일 작업 초안에는 네 가지 관계가 정리됐다. dns-prefetch는 이름만 먼저 푼다. preconnect는 출처와의 연결 준비로 나아간다. prefetch는 다음 방문에 쓸 수 있는 자원을 가져온다. prerender는 장차 볼 문서의 처리까지 시도할 수 있다. 어디로 갈지 아는 정도와 무엇을 가져올지 추측하는 정도는 다르다. 이를 모두 ‘미리 로딩’이라고 부르면 비용의 차이도 사라진다.
2019년 6월 27일 초안은 동적인 URL을 예로 든다. 페이지를 구성하는 동안 전체 파일 주소는 아직 정해지지 않았지만, 그 자원을 줄 출처는 일찍 알 수 있다. 연결 협상을 그동안 시작하면 파일 주소가 나중에 나타났을 때 기다릴 단계를 줄일 기회가 생긴다. 브라우저가 독자의 마음을 읽은 것이 아니다. 서버 주소를 먼저 전달받았을 뿐이다.
힌트를 모두 따라야 하는 것은 아니다. 2020년 10월 5일 작업 초안은 브라우저가 전체 악수를 시도하거나 일부만 진행하거나 자원 제약 때문에 건너뛸 수 있다고 한다. 출처마다 몇 개의 연결을 열지도 브라우저가 정한다. 통신 방식, 네트워크 상태, 기기 여력, 전체 연결 한도가 판단에 들어간다. 페이지가 예약 쪽지를 열 장 내밀었다고 식당을 통째로 빌려줄 의무는 없다.
사용하지 않은 조기 연결에도 비용이 든다. 추측이 너무 많으면 지금 눈앞의 페이지에 필요한 다운로드와 네트워크·메모리를 놓고 경쟁한다. 2020년 문서는 진행 중인 preconnect 작업이 문서의 load 이벤트를 지연시켜서는 안 된다고도 정한다. 올지 모를 손님을 위해 이미 앉아 있는 손님을 굶길 수는 없다.
W3C 발행 이력은 2014년 첫 공개 초안과 뒤따른 작업 초안들을 보여 준다. 초기에 나란히 놓인 preconnect와 preload는 이름 조회, 연결, 자원 가져오기, 미래 페이지 준비를 구분하는 계열로 넓어졌다. 이 문서들은 당시 초안이었다. 그래도 중심 아이디어는 오래 간다. 페이지는 무엇을 요청할지 정하기 전에 누구에게 물어볼지 알 수 있고, 브라우저는 지금 전화할지 판단한다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





