Chrome Dev Summit - 공개 웹 플랫폼 요약

그레그 사이먼 & 에릭 시델

Blink는 Chrome의 오픈소스 렌더링 엔진입니다. Blink팀은 웹을 발전시키고 개발자가 겪는 문제를 해결하고 있습니다.

4월 출시 이후 여러 가지 비하인드 스토리 개선 작업이 진행되었습니다.

먼저 꼭 필요하지 않은 소스의 절반을 삭제했습니다. 아직 끝난 것이 아닙니다. Google은 무작위로 코드를 삭제하지 않습니다. 코드 삭제는 보고를 선택한 Chrome 사용자의 익명으로 집계된 통계를 기반으로 합니다.

Chrome의 출시 일정과 동일하게 6주마다 새로운 개발자 API를 게시합니다.

Blink에서 포크할 때 이루어진 한 가지 큰 변화는 인텐트 시스템을 추가한 것입니다. 웹 플랫폼을 변경하기 전에 매번 Blink 개발자에게 기능 추가 또는 삭제 의도를 알리는 공개 공지사항을 보냅니다. 그런 다음 코딩을 시작합니다. 기능이 체크인된 다음 날 바로 Canary 빌드에 포함되어 출시됩니다. 이 기능은 기본적으로 사용 중지되어 있지만 about:flags를 사용하여 사용 설정할 수 있습니다.

그런 다음 공개 메일링 리스트에서 배송 예정을 공지합니다.

chromestatus.com에서 Google에서 작업한 기능, 출시한 기능, 지원 중단할 예정인 기능을 확인할 수 있습니다. 버그 및 추적기 대시보드 링크가 있는 Chromium 출시 블로그를 확인할 수도 있습니다.

또 다른 큰 변화는 WebKit 접두사가 삭제된다는 점입니다. Blink 접두사를 사용하는 것이 아니라 컴파일 시간 플래그뿐만 아니라 런타임 플래그를 사용하기 위한 것입니다.

Android WebView는 큰 도전이었지만 HTML5Test를 보면 상황이 개선되고 있음을 알 수 있습니다. 이제 어디서나 하나의 웹 플랫폼 API 세트를 사용할 수 있으므로 데스크톱에 훨씬 더 가까워졌습니다. 웹 오디오는 이러한 점을 잘 보여주는 예입니다.

그렇다면 소시지 기계는 어떻게 작동할까요? Blink를 변경할 때마다 30,000개가 넘는 테스트가 즉시 실행되며, 나중에 추가로 실행되는 모든 Chromium 테스트는 말할 것도 없습니다. Google은 수천 개의 봇, 수천 개의 벤치마크, 수백만 개의 손상된 웹페이지를 엔진에 던지는 시스템을 사용하여 24시간 시큐리티를 유지하고 엔진이 다운되지 않도록 합니다. 모바일의 속도가 훨씬 느린 점을 알고 있으며 이를 개선하기 위해 최선을 다하고 있습니다.

새로운 기능은 무엇인가요?

  • 웹 구성요소: 에릭 비델만의 강연을 확인하세요.
  • 웹 애니메이션: 가능한 경우 GPU를 사용하는 복잡하고 동기화된 고성능 애니메이션
  • 부분 레이아웃: 필요한 부분만 계산합니다.
  • CSS 그리드
  • 반응형 이미지: srcset 또는 srcN 또는 ?
  • 더 빠른 텍스트 자동 크기 조정 및 일관된 하위 픽셀 글꼴
  • Blink에서 사용하는 그래픽 시스템인 Skia가 Windows에서 GDI에서 DirectWrite로 전환됩니다.

여러분의 의견을 들려주세요.

C++에 능숙하고 Google과 함께 C++를 작성하고 싶다면 모든 코드를 공개합니다. 누구에게도 알리거나 Google에 전파할 필요가 없습니다. 패치를 게시하거나 버그를 신고하면 됩니다.

슬라이드: 깜박임

보안

파리사 타브리즈

오늘날 그 어느 때보다도 많은 사람이 더 다양한 장소에서 웹에 연결되어 있습니다.

노트북, 휴대전화, 태블릿과 연결되어 있으며 곧 개인 기기와 액세서리에도 연결될 예정입니다. 신뢰할 수 없거나 때로는 적대적인 네트워크에서 인터넷에 액세스합니다. 많은 사람들이 온라인으로 이동하는 시대에 Google과 사용자의 데이터를 보호하기 위한 조치를 취하는 것이 중요합니다.

무엇보다 개발자는 SSL의 필요성과 실용성을 이해해야 합니다.

SSL이란 무엇인가요? SSL은 보안 소켓 레이어의 약자이며 인터넷을 통한 통신 보안을 제공하도록 설계된 암호화 프로토콜입니다. 암호화 및 무결성을 통해 개인 정보를 보장하여 인터넷 연결을 엿보거나 조작하는 것을 방지합니다. SSL에는 단점이 있지만 인터넷에서 모든 종류의 데이터 통신 보안을 보장하는 주요 방법이자 사실상 유일한 방법입니다.

SSL Pulse에 따르면 1년 전에는 SSL을 채택한 비율이 15% 에 미치지 않았지만 현재는 50% 를 넘었습니다.

두 가지 약어:

  • TLS: 대부분의 경우 SSL과 동일합니다. 정확히 말하자면 SSL 3.1의 이름이 TLS로 변경되었으며 TLS는 IETF 표준 이름입니다. 하지만 서로 바꿔서 사용할 수 있습니다.

  • HTTPS: SSL을 통한 HTTP로, SSL 및 표준 HTTP의 보안 기능을 레이어링한 것입니다. 먼저 공개 키/비공개 키 암호화를 사용하여 공유 키를 만드는 클라이언트-서버 핸드셰이크가 진행됩니다. 이 키는 SSL 프로토콜의 두 번째 부분에서 통신을 암호화하는 데 사용됩니다.

인터넷에서 네트워킹을 하면 안전하고 즉각적이며 빠른 것처럼 느껴질 수 있습니다. 웹사이트에 직접 이야기하는 것 같은 느낌입니다. 하지만 실제로는 직접 연결이 아닙니다. Google의 통신은 Wi-Fi 라우터, ISP, 기기와 웹사이트 간의 다른 중간 프록시를 통해 전송됩니다. HTTPS가 없으면 모든 통신이 일반 텍스트로 이루어집니다.

문제는 사용자가 HTTPS를 지정하는 전체 URL을 입력하는 경우가 거의 없고 HTTP를 사용하는 링크를 클릭한다는 점입니다. 더 나쁜 것은 중간자 공격을 시도하여 HTTPS를 HTTP로 대체할 수 있다는 점입니다. 2009년에 도입된 SSLstrip이라는 도구가 바로 이러한 작업을 수행합니다. 2010년의 Firesheep은 개방된 Wi-Fi 네트워크에서 암호화되지 않은 쿠키를 리슨하기만 했습니다. 즉, 채팅 내용을 엿듣거나 다른 사람의 Facebook 계정에 로그인할 수 있었습니다.

하지만 SSL은 (비교적) 저렴하고 빠르며 쉽게 배포할 수 있습니다 (ssllabs.com 및 Ilya Grigorik의 책 '고성능 브라우저 네트워킹' 참고). 공개 키 고정은 웹사이트 운영자가 사이트의 인증서를 실제로 발급할 수 있는 인증 기관을 제한할 수 있는 수단을 제공하도록 설계되었습니다.

"올해 1월 (2010년) Gmail은 모든 항목에 기본적으로 HTTPS를 사용하도록 전환했습니다. 이를 위해 추가 머신이나 특수 하드웨어를 배포할 필요가 없었습니다. 프로덕션 프런트엔드 머신에서 SSL은 CPU 부하의 1% 미만, 연결당 메모리 10KB 미만, 네트워크 오버헤드의 2% 미만을 차지합니다.

지금 읽기를 중단하더라도 한 가지만 기억하면 됩니다. SSL은 더 이상 계산 비용이 많이 들지 않습니다."

SSL 오버클러킹, 아담 랭리 (Google)

마지막으로 가장 흔하게 발생하는 버그 몇 가지를 소개합니다.

  • 혼합 콘텐츠: HTTP와 HTTPS를 모두 사용하는 사이트입니다. 사용자가 콘텐츠를 로드하려면 권한 버튼을 클릭해야 하므로 불편을 겪게 됩니다. (실제로 Chrome과 Firefox는 iframe에서 혼합 콘텐츠를 차단합니다.) 상대 URL 또는 스키마 상대 URL(예: <style src="//foo.com/style.css">)을 사용하여 HTTPS 페이지의 모든 리소스가 HTTPS를 통해 로드되는지 확인합니다.
  • 안전하지 않은 쿠키: HTTP 연결을 통해 일반 텍스트로 전송됩니다. 쿠키 헤더에 secure 속성을 설정하여 이를 방지합니다. 새 'Strict Transport Security' 헤더를 사용하여 SSL 전송 보안 (HSTS)을 요구할 수도 있습니다.

요약

  • 사용자 데이터의 개인 정보 보호 및 무결성을 중요하게 생각한다면 SSL을 사용해야 합니다. 이제 더 빠르고 쉽고 저렴하게 이용할 수 있습니다.
  • 혼합된 콘텐츠 버그나 올바른 HTTP 헤더 비트를 설정하지 않는 등 일반적인 구현 실수를 피하세요.
  • 상대 URL 또는 스키마 상대 URL을 사용합니다.
  • HSTS 및 인증서 고정과 같은 멋진 새 기능을 확인해 보세요.

슬라이드: SSL이 있나요?

멀티스크린 웹용 Media API

샘 두튼, 얀 린든

웹에서 새로운 기기와 플랫폼이 급증함에 따라 오디오, 동영상, 실시간 커뮤니케이션이 크게 성장하고 있습니다. 온라인 미디어는 우리가 모든 종류의 미디어를 소비하는 방식을 변화시키고 있습니다.

영국 정부 연구에 따르면 성인의 53% 가 TV를 시청하면서 휴대기기를 사용하여 미디어를 공유하고 소비하는 '미디어 멀티태스킹'을 하고 있습니다. 많은 국가에서 TV 시청이 감소하고 온라인 시청이 증가하고 있습니다. 예를 들어 중국의 경우 2012년 베이징의 가구 중 30% 만 TV를 시청했으며, 이는 2009년의 70% 에서 감소한 수치입니다. W3C Highlights 2013에 따르면 '지난해 모바일 기기에서 동영상 시청이 두 배로 증가했습니다. 올해 미국에서는 디지털 미디어에 소비하는 일일 평균 시간이 TV 시청 시간을 초과할 것으로 예상됩니다. 시청은 더 이상 수동적인 행위가 아닙니다. 미국의 경우 엔터테인먼트 소비자의 87%가 TV를 시청하는 동안 보조 화면 기기를 하나 이상 사용한다고 말합니다.' Cisco에 따르면 '2017년까지 동영상이 전 세계 소비자 트래픽의 80~90%를 차지할 것'입니다. 이는 초당 거의 100만 분의 동영상에 해당합니다.

웹 개발자를 위한 기능은 무엇인가요? 개방형 웹을 위한 미디어 API 생태계: 여러 플랫폼에서 작동하는 표준화되고 상호 운용 가능한 기술입니다.

요약

  • WebRTC는 브라우저에서 실시간 통신을 제공하며 이제 모바일과 데스크톱에서 널리 지원됩니다. 이미 총 12억 개가 넘는 WebRTC 엔드포인트가 있습니다.
  • 웹 오디오는 오디오 합성 및 처리를 위한 고급 도구를 제공합니다.
  • Web MIDI는 Web Audio와 통합되어 MIDI 기기와 상호작용할 수 있습니다.
  • 이제 오디오 및 동영상 요소가 85% 이상의 모바일 및 데스크톱 브라우저에서 지원됩니다.
  • 미디어 소스 확장 프로그램은 적응형 스트리밍 및 타임 시프트에 사용할 수 있습니다.
  • EME를 사용하면 보호된 콘텐츠를 재생할 수 있습니다.
  • 스크립트, 자막, 트랙 요소를 사용하면 자막, 자막, 시간 표시 메타데이터, 딥 링크, 심층 검색을 사용할 수 있습니다.

Slides: 다중 기기 웹용 미디어 API