다음을 통해 공유


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