W3C의 지속적인 웹 성능 개선 노력
W3C 웹 성능 작업 그룹은 최근 2012년 11월 8일(목요일) 'W3C 성능 워크숍'을 개최했습니다. 이번 행사는 이 작업 그룹에서 검토해야 할 현재의 당면 과제 및 성능에 대한 새로운 아이디어 제안을 듣기 위해 마련되었습니다. 이 워크숍에는 주요 브라우저 개발업체(Microsoft, Google, Mozilla), 하드웨어 제조업체(Intel, Qualcomm, Nokia, Motorola), 네트워크 업체(Cisco, Akamai, F5), 웹 포털(GMail, Google Search, Bing, NetFlix, LinkedIn, Zynga 등) 등 21개 기업 관계자 45명이 참가했습니다. 이 워크숍의 프레젠테이션 및 토론에 대한 자세한 내용은 보고서를 참조하세요.
웹 응용 프로그램의 성능 특성을 정확하게 측정하고 전력 및 CPU 효율이 우수한 응용 프로그램을 만드는 것은 웹 성능에 있어 매우 중요합니다. W3C 웹 성능 작업 그룹은 최근 만료된 두 번째 허용 기간 동안에 이 목표를 달성하기 위해 노력했습니다. 그 결과 2년도 채 안 되는 시간 동안에 신속하게 표준화 작업을 진행했고, 최신 HTML5 지원 웹 브라우저에 다음과 같은 8가지 인터페이스를 구현할 수 있었습니다. 이 8가지 인터페이스는 탐색 타이밍, 리소스 타이밍, 사용자 타이밍, 성능 타임라인, 페이지 표시, 스크립트 기반 애니메이션의 타이밍 제어, 고분해능 시간 및 효율적인 스크립트 일드입니다. Internet Explorer 10은 새로운 8가지 API를 모두 지원하는 최초의 브라우저입니다.
그 이후 W3C 웹 성능 작업 그룹은 세 번째 허용 기간 동안에 중점을 둘 분야를 파악하기 위해 데이터를 수집하는 데 집중했습니다. 성능 워크숍 외에도 매주 열리는 전화 회의에 성능 분야의 전문가를 초대하여 다양한 커뮤니티의 아이디어를 수렴했습니다.
지난 몇 달간 수집한 모든 데이터를 바탕으로 이 작업 그룹은 세 번째 허용 기간 동안에 다음과 같은 영역에 집중하기로 결정했습니다.
- 타이밍 메트릭
W3C 웹 성능 작업 그룹은 타이밍 인터페이스, 탐색 타이밍, 리소스 타이밍, 사용자 타이밍 및 성능 시간 표시줄을 지속적으로 개선할 계획입니다. 예를 들어 웹 작업자를 지원하는 타이밍 인터페이스를 제공하고 리소스 타이밍에 동영상 바이트 범위에 대한 정보를 포함하는 것을 검토할 생각입니다. - 효율적인 스크립트 일드
이 작업 그룹은 효율적인 스크립트 일드 사양에 정의된 setImmediate API처럼 전력 및 CPU 효율이 뛰어난 API를 개발하기 위해 지속적으로 노력할 것입니다. - 사전 렌더링
이 작업 그룹은 사용자가 URL을 방문할 확률이 매우 높은 것으로 브라우저가 판단할 경우 탐색이 거의 '즉시' 이루어질 수 있는 사전 렌더링 기능을 표준화할 계획입니다. 이 기능이 작동하는 방식은 다음과 같습니다. 브라우저가 '사전 렌더링' 링크 유형을 확인하거나 사용자가 해당 링크를 방문할 확률이 매우 높다고 판단할 경우 브라우저는 숨겨진 탭에서 웹 페이지를 미리 탐색합니다. 사용자가 해당 링크를 방문하면 브라우저가 숨겨진 탭을 표시해 주므로 탐색이 즉시 이루어지는 듯한 느낌을 받게 됩니다. - 리소스 우선 순위
현재 브라우저는 페이지를 가장 신속하게 로드할 수 있는 우선 순위에 따라 리소스를 다운로드합니다. 하지만 개발자가 다른 리소스보다 특히 중요하게 생각하는 리소스가 있을 것입니다. 이를테면 이미지를 폴더 위에 다운로드하는 것이 폴더 아래에 다운로드하는 것보다 중요할 수 있습니다. 이런 경우 개발자는 마크업에 'defer' 및 'async' 특성을 사용하여 브라우저에 다운로드 우선 순위에 대한 힌트를 제공할 수 있습니다. 대부분의 리소스에는 아직 이러한 개념이 적용되지 않았습니다. 브라우저가 리소스 다운로드 우선 순위를 적절히 지정할 수 있도록 W3C 웹 성능 작업 그룹에서는 개발자가 브라우저에 다운로드 우선 순위에 대한 힌트를 제공할 수 있는 상호 운용이 가능한 수단을 포함하도록 헌장을 확대하고 있습니다. - 진단 인터페이스
개발자는 웹 응용 프로그램의 속도를 높이고 오류를 줄이는 방법에 관심이 많습니다. 이 작업 그룹에서는 개발자가 웹 응용 프로그램에 대한 브라우저 진단 정보를 얻을 수 있는 상호 운용이 가능한 수단을 포함하도록 헌장을 확대하고 있습니다. 예를 들어 이러한 인터페이스를 사용하면 개발자는 웹 응용 프로그램에서 메모리가 유출되는 위치 또는 사용자가 경험하는 오류의 종류를 파악할 수 있습니다. - 신호
현재, 분석 스크립트는 분석 데이터가 웹 서버에 전달되었는지 확인하기 위해 루프에서 실행되어 현재 페이지가 언로드되는 것을 차단합니다. 이 동작 때문에 다음 페이지를 탐색하는 시간이 지연되고 결과적으로 사용자는 성능이 떨어진다고 인식하게 됩니다. 개발자들이 이러한 패턴을 피할 수 있도록 W3C 웹 성능 작업 그룹에서는 개발자가 브라우저에서 웹 서버로 데이터를 비동기식으로 전송할 수 있고 브라우저는 데이터가 결국 전송될 것이라는 사실을 알 수 있는 상호 운용이 가능한 수단을 포함하도록 헌장을 확대하고 있습니다. - 디스플레이 성능
개발자는 자신의 게임과 애니메이션의 성능을 파악하는 방법에 관심이 많습니다.
W3C 웹 성능 작업 그룹에서는 개발자가 디스플레이 유형의 프레임 속도 및 처리량 정보를 얻을 수 있는 상호 운용이 가능한 수단을 포함하도록 헌장을 확대하고 있습니다.
W3C 웹 성능 작업 그룹은 새로운 아이디어가 얼마나 빠르게 상호 운용성 표준(개발자가 최신 HTML5 지원 브라우저에 의존할 수 있는)이 될 수 있는가를 보여 주는 훌륭한 예입니다. Microsoft는 이 작업 그룹에 참여한 업계 및 커뮤니티 리더와 협력하여 개발자 및 웹을 사용하는 모든 사용자에게 도움이 될 수 있도록 상호 운용성 표준을 지속적으로 개선해 나갈 계획입니다.
Internet Explorer 프로그램 관리자, Jatinder Mann