Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

[번역] Microsoft Edge와 Chromium 오픈소스: 우리의 의도

Microsoft가 자사의 Edge 웹 브라우저를 Chromium 기반으로 바꾸겠다고 발표하면서 Microsoft Edge and Chromium Open Source: Our Intent라는 글을 올렸다. 최근 몇 년간 오픈소스를 향한 Microsoft의 행보는 이미 알고 있었음에도 Microsoft의 상징 중 하나인 웹 브라우저를 다른 오픈소스 기반으로 바꿀 거라는 건 전혀 예상하지 못했다.

웹을 좋아하고 웹에서 오랫동안 작업을 해왔기에 이 변화는 꽤 충격적이었고 이 변화에 대한 내 의견과 상관없이 이 사건 자체가 웹에는 큰 의미가 있다고 생각해서 위 문서의 MIT 라이센스하에 번역했다.(한글에는 이탤릭체가 없으므로 원문의 이탤릭체는 모두 볼드체로 바꾸었다.)


Microsoft Edge와 Chromium 오픈소스: 우리의 의도

작성자: Microsoft Edge 팀
마지막 수정일: 2018-12-06

이 문서를 작성한 이유

지난 몇 년 동안 Microsoft는 오픈소스 소프트웨어(OSS) 커뮤니티에 의미 있는 참여를 늘려가면서 세계에서 가장 큰 OSS 프로젝트 후원사 중 하나가 되었습니다. 데스크톱 Microsoft Edge 개발에 Chromium 오픈소스를 도입하기 시작했습니다. Chromium 오픈소스에 더 많이 기여하고 더 큰 사용자가 되면서 고객에서 더 나은 웹 호환성을 제공하고 모든 웹 개발자를 위해 웹을 덜 분화되게 만들었습니다.

이 작업을 어떻게 진행할지에 대해 우리 생각을 명확하게 하려고 이 문서를 작성했습니다.: Microsoft Edge와 Chromium 오픈소스 프로젝트와 관련한 우리 계획과 의도를 설명하려고 합니다. 이 문서의 내용과 관련 있고 유용하리라 생각한 독자는 (a) Chromium에서 승인자/메인테이너로 작업하면서 프로젝트를 이끄는 사람들, (b) 우리가 계획하고 있는 기여에 관심 있는 다른 브라우저를 만드는 회사와 엔지니어, (c) 광범위한 웹 개발자 커뮤니티, 기업 IT 관리자, Windows와 Microsoft Edge에서 우리와 작업하는 파트너 회사들입니다. 물론 이 모든 독자와 우리는 궁극적으로 이 작업의 혜택을 받을 최종 사용자를 먼저 고려합니다.

TL;DR

Microsoft Edge에서 오픈 소스로 작업하는 것은 새로운 일이 아닙니다. 1년 전 새로운 모바일 브라우저를 처음부터 오픈소스로 만들었습니다. 데스크톱 Microsoft Edge에서도 다양한 기능에 오픈소스를 사용했고(ANGLE, 웹 오디오, Brotli 등) ARM 기반 윈도우 기기에서 브라우징이 발전하도록 Chromium 프로젝트에 기여했습니다. 이러한 맥락에서 데스크톱 Microsoft Edge 개발에 Chromium 오픈소스 프로젝트를 도입해서 고객에서 더 나은 웹 호환성을 제공하고 모든 웹 개발자가 덜 파편화된 웹을 사용할 수 있도록 계획을 세우고 있습니다. 이제 앞으로 나갈 준비가 되었습니다.

PC와 다른 기기 모두에서 Microsoft Edge 뿐 아니라 다른 브라우저도 좋아질 수 있도록 Chromium의 핵심 기여자가 되고자 합니다. 아래 "Microsoft Edge의 OSS 원칙"과 "앞으로 할 일"에서 어떻게 기여할지를 명확하게 설명하고 있습니다.

수년간 효과적으로 동작하고 잘 정립된 오픈소스 모델을 받아들이는 것이 계획입니다. 장기간 신중하게 설계된 아키텍처와 협업 엔지니어링에 맞는 의미 있고 긍정적인 기여를 통해 여러 기기에서 웹을 사용하는 모든 사람에게 최상의 결과로 이어지도록 커뮤니티와 노력하고 있습니다.

오늘날의 Microsoft와 웹

문맥을 통해 우리의 의도를 절실하게 알게 되었습니다. 역사적으로 Microsoft는 세 가지 주요 고객층 최종 사용자, 개발자, 기업/조직에 집중해왔습니다. 이 고객들은 우리가 과거 Internet Explorer에 했던 투자와 현재 Microsoft Edge에 하는 투자를 알고 있습니다. 지난 몇 년 동안 고객의 목소리에 귀를 기울인 결과 환경의 복잡성이 증가해서 일관성, 단순성, 가독성, 호환성을 고객들이 바라고 있음을 알게 되었습니다.

수년간 Google 및 다른 브라우저 제조자와 효과적인 파트너 관계를 맺었다. 처음에는 W3C에서 지금은 WHATWG에서 더 가깝게 이 복잡성을 줄이고 웹의 전체적인 경험을 개선하려고 웹 플랫폼의 공통 표준을 만들었습니다. 업계의 브라우저 제조사가 상당한 진전을 보여 공통 표준을 준수하고 있지만, 기반을 둔 구현체가 다르고 릴리스 일정이 다르므로 오픈 웹 약속의 이점을 개발자가 완전히 누리기가 어려웠습니다.

우리는 브라우저 생태계에서 경쟁력 있고 다양한 시장 이점을 유지하면서도 Microsoft 고객에게 제공될 공통으로 호환되는 웹 플랫폼이 더 크게 발전할 수 있고 커다란 웹 커뮤니티에 공통
커다란 웹 커뮤니티에 상호 이익을 줄 기회를 발견했습니다. 고객 유형에 걸쳐서 우리가 본 아래의 기회를 생각해 보세요.

  • 최종 사용자 - Microsoft Edge가 표준에 기반을 둔 HTML과 Chrome 등 많이 사용되는 브라우저에서 추가된 기능 모두에 아주 높은 호환성을 갖고 있음에도 불구하고 독자적인 웹 플랫폼 코드 베이스는 때로 호환성 문제를 겪었습니다. 이는 웹 개발자가 합리적으로 HTML 표준에는 덜 신경 쓰면서 고객이 겪을 경험을 개발하고 확인하려고 Chrome처럼 널리 사용되는 플랫폼에 더 집중하기 때문입니다. 계속해서 이러한 이슈를 수정하고 열심히 갱신했지만, 전체 윈도우 운영체제와 같은 일정에 따라 별도로 배포되는 컴포넌트인 Microsoft Edge의 구현체는 업데이트가 느리고 이에 따라 플랫폼 파편화와 호환성에서 빈틈을 보이게 되었습니다. 오픈소스 소프트웨어(OSS)를 더 많이 사용하면 최종 사용자의 이러한 경험을 개선할 수 있다고 생각했습니다.

  • Windows PC에서 Microsoft Edge 브라우저가 아닌 다른 브라우저 사용자는 때로 기기 종류에 따라 일관되지 않는 기능이나 성능/배터리 문제를 겪게 됩니다. 어떤 브라우저는 터치 기능이나 ARM 프로세서 같은 윈도우의 새로운 기능을 느리게 받아들입니다. 모두가 알다시피 우리는 최근 Chromium에 기반을 둔 브라우저에서 이런 종류의 하드웨어 지원을 기여하기 시작했습니다. Chromium 오픈소스에 새로운 기능을 기여해서 웹과 사용자 경험을 가속할 수 있고 이는 모든 브라우저와 사용자에게 이익이 된다고 생각했습니다.

  • 개발자 - 다양한 종류의 기기가 끊임없이 늘어가고 웹의 사용이 늘어나면서 웹사이트 테스트와 관련한 복잡성과 부하가 엄청나게 커졌습니다. 웹 개발자, 특히 작은 회사에서 일하는 웹 개발자는 다양한 시스템을 테스트해야 하므로 작업 중인 웹사이트가 모든 기기와 브라우저에도 잘 동작한다고 확신하는 것이 거의 불가능해졌습니다. Microsoft Edge 웹 플랫폼이 다른 Chromium 브라우저와 연계하면 웹 개발자의 이러한 복잡도를 낮추고 다른 브라우저에서 사용할 수 있는 Windows의 기능을 의미 있게 정리해서 제공할 수 있습니다.

  • IT 기업 - IT 관리자는 사용자가 가진 기기나 회사 기기 등 아주 다양한 기기에서 새로운 웹사이트나 예전 웹사이트를 사용하는 사용자의 복잡성을 마주하게 됩니다. 기기 플랫폼에 상관없이 IT 기업의 브라우저를 위해 더 나은 웹 호환성을 만들고 웹 플랫폼을 정리할 때의 이미 있는 가치를 보았습니다.

우리가 (a) 여러 브라우저의 이득이 되도록 공유된 오픈소스 프로젝트에 가치 있고 새로운 기능을 만들고, (b) 대규모로 배포하는 브라우저에서 공유된 오픈소스의 사용을 높이면 위 모든 대상에게 공통적인 이득을 제공할 수 있다고 생각합니다. 이 두 가지 모두를 할 생각입니다.

웹 중심 오픈소스에 대한 최근 투자

작년부터 Chromium과 WebRTC 오픈소스 프로젝트에 참여하기 시작했고(Microsoft에서 다양하게 참여하는 OSS 영역 중 하나로) 더 많은 기기 유형을 고려했습니다.

  • Chromium을 ARM64로 포팅하기 : Chromium 기반 브라우저를 ARM 기기의 Windows에서 네이티브로 컴파일하고 실행할 수 있도록 Google 엔지니어와 협업을 많이 했습니다. 엔지니어링에 투자한 결과 ARM 기반 Windows PC에 Chromium 기반 브라우저를 네이티브 구현체로 곧 배포할 수 있게 되어 성능과 배터리를 상당히 개선할 수 있었습니다. 이는 Chromium에 투자해서 새로운 유형의 PC에서 브라우저의 웹 경험을 높일 수 있다는 좋은 예시가 되었습니다.

  • Windows UWP 앱에서 Web RTC를 활성화하는 작업: 1년 이상 Universal Windows Platform(UWP)의 WebRTC 작업을 했습니다. 그 결과 데스크톱, Xbox, 홀로렌즈/VR, IoT를 포함해 모든 Windows 10 플랫폼에서 개발자에게 WebRTC 솔루션을 제공할 수 있었습니다. 지난주 WebRTC Lib의 UWP 용으로 포크한 작업을 WebRTC.org 저장소에 다시 넣기로 Google과 합의했습니다.

  • ANGLE 개선: 과거에 ANGLE의 D3D11 백엔드와 성능을 개선했습니다. 최근에는 ANGLE를 Microsoft Edge의 WebGL 공식 백엔드로 만들려고 Intel, ANGLE 팀과 협업했습니다.

이러한 작업을 통해 웹에서 오픈소스 기여가 수수하지만, 여전히 의미 있다는 것을 알게 되었고 협업하면서 사용하는 방법과 건전하게 Chromium에 기여하는 방법에 관해 가치 있는 관점을 갖게 되었습니다. Microsoft의 OSS 전문성이 커지고 더 많이 집중하게 되면서 웹 팀은 이러한 교훈을 받아들이고 수많은 사람의 웹 경험을 바꿀 수 있어서 기쁩니다.

Microsoft Edge + 오픈소스: Microsoft의 새로운 방향

더 깊게 들어가 보겠습니다. OSS 기여자와 파트너에게 우리 의도를 투명하게 공개하기 위해 이 문서를 작성했습니다.

Microsoft Edge의 OSS 사용

Microsost Edge 모바일 브라우저와 Microsost Edge 데스크톱의 일부 컴포넌트에서 이미 Chromium 오픈소스를 사용하고 있었지만 Microsost Edge 데스크톱에서 Chromium 오픈소스를 훨씬 더 많이 사용하고 커뮤니티에 기여를 많이 하기로 결정했습니다.

Microsoft Edge에서 이러한 진화의 핵심 관점은 다음과 같습니다.

  1. Microsoft Edge 데스크톱의 웹 플랫폼으로 Chromium을 도입할 것입니다. 호환성을 높이고 개발자의 테스트 매트릭스를 간단하게 하려고 Microsoft Edge의 웹 플랫폼을 (a) 웹 표준에 맞추고 (b) 또 하나의 Chromium 기반 브라우저로 만들려고 합니다.

  2. Microsoft Edge 앱의 아키텍처를 발전시켜서 Windows 7, Windows 8, Windows 10을 포함한 모든 버전의 Windows에서 배포할 수 있게 할 것입니다. macOS 같은 다른 데스크톱 플랫폼에서도 Microsoft Edge를 배포할 것입니다. : 최종 사용자(더 높은 호환성)와 개발자(더 적은 파편화)의 웹 경험을 개선하려면 최대한 널리 사용될 수 있는 일관된 웹 플랫폼이 필요합니다. 이를 위해 Chromium의 크로스 플랫폼 앱 기술을 사용하고 우리 배포 모델을 바꿔서 지원하는 모든 운영체제에서 Microsoft Edge의 경험과 Microsoft Edge를 이용할 수 있도록 하겠습니다.

  3. Windows에서 모든 Chromium 기반 브라우저의 경험을 개선하기 위해 Windows 플랫폼의 전문적 지식을 제공할 것입니다. : 위에서 설명한 작업과 일관되고 유익한 새로운 기술의 기여해서 Chromium 오픈소스에 더 많이 참여하는 것이 우리 생각입니다. Windows에서 더 좋은 웹을 만드는 것이 우리의 고객, 파트너, 사업에 좋다는 것을 깨달았습니다. 그래서 이를 위해 활발히 기여할 생각입니다. 배터리 수명, 터치, 접근성, 보안, 공통 관심 영역에서 Chromium 커뮤니티와 파트너로 일할 기회가 생겨서 기쁩니다.

우리의 기여: 원칙과 기대

이 문서의 핵심 목표는 우리가 어떻게 기여하고 Chromium 브라우저에 가치 있는 새 기술을 도입할 때 필요한 엔지니어링 계획을 어떻게 시작할지를 Chromium OSS에 이미 참여하고 있는 팀과 사람들에게 알리는 것입니다.

커다란 Chromium 프로젝트에 더 깊이 참여하게 되어 기쁩니다. 이는 심사숙고한 결정이었으면 다음 단계로 옳은 결정이라고 믿고 있습니다. 즉, 배우는 자세로 이 단계를 받아들일 것입니다. Chromium을 사용하고 기여하면서 이미 많은 것을 배웠고 넓은 커뮤니티와 협업하면서 다시 기여할 수 있기를 기대하고 있습니다. 시간이 지나면 참여하는 내용과 범위가 달라질 것입니다.

Microsoft Edge의 OSS 원칙

  1. 장기적인 관점으로 결정했습니다. Chromium 프로젝트에서 우리의 엔지니어들이 배우면서 전문가가 되어 커뮤니티에서 활발하고 책임 있는 멤버로 성장하기를 기대하고 있습니다. Chromium 프로젝트에 더 많이 기여하고 계속 유지 보수할 것입니다.

  2. 웹 플랫폼의 개선점을 찾을 때 우리가 취할 기본자세는 기여하는 것입니다. 다양한 사용자 경험 기능 및 연결된 서비스로 Microsoft Edge를 세계 수준의 브라우저로 제공하는데 집중하고 있습니다. 하지만 새로운 플랫폼 기능과 관련해서는 '모두가 혜택을 얻을방법(rising tide that floats all boats)'을 찾을 것입니다. Windows에서 ARM64 지원, 접근성, 보안, 터치 입력, 전력 개선 등의 영역에서 의미 있게 기여하고 버그를 수정하면서 시작할 것입니다.

  3. 웹 오픈소스 프로젝트의 본질이면서 Chromium을 성공하게 만든 아키텍처 요구사항과 엔지니어링 접근을 존중합니다. 다중 기기 지원, 다중 OS 지원, 철저한 실시간 엔지니어링 등 Chromium OSS 및 다른 프로젝트를 관리하는 많은 관점이 있습니다. 역사적으로 우리 회사는 Windows PC에 집중해왔고 Windows에서 브라우저를 개선하는 기여를 할 수 있다고 믿어왔지만, Android를 포함해서 넓은 범위의 기기를 받아들이는 웹 OSS 프로젝트를 이해하고 이러한 기여가 기기의 다양성을 수용해야 한다고 생각합니다. Chromium의 크로스 플랫폼과 크로스 디바이스의 요구사항에 맞춰서 아키텍처를 설계하고 일관되게 기여할 것입니다.

  4. 오픈 웹의 진화는 표준 커뮤니티에서 가장 잘 이뤄지고 오픈 웹은 다양한 관점에서 열린 토론을 할 때 이득을 얻는다고 생각합니다. 경쟁적으로 브라우저를 개발하는 제조사의 관점과 더 커다란 웹 커뮤니티의 목소리를 듣고 고려한 뒤 W3C, ECMA, WATWG에서 표준 논의에 활발하게 참여할 것입니다.

기여: 처음에 집중할 영역

OSS 작업을 하면서 우리 엔지니어링 전문성으로 사용자와 개발자에게 가장 큰 차이를 만들 수 있는 곳을 고려해서 기여할 때 "집중할 영역"의 초기 목록을 만들었습니다.

Chromium의 모든 고객을 위해 Chromium 코드베이스에 의미 있는 가치를 만들고 함께 배우면서 실천할 수 있는 시작점으로 이 목록을 생각하고 있다는 점을 강조하고 싶습니다.

  • ARM64 - Chromium 코드베이스가 ARM-64을 지원하도록 포팅하는 작업을 마무리해서 이러한 기기에서 네이티브로 지원하는 브라우저로 만들 생각입니다.

  • 접근성 - 모든 고객의 요구사항을 맞추기 위해 Microsoft UI Automation(UIA) 인터페이스를 Chromium 코드베이스에 추가하는 작업을 할 것입니다. 이를 통해 고 대비, 자막 스타일, 접근성 제어 개선, 삽입 기호(caret) 브라우징 지원 같은 Windows 접근 센터 단축키(Ease of Access) 설정을 통합해서 Windows에서 나레이터 기능과 다른 보조 기술을 지원할 수 있습니다.

  • 터치 같은 최신 입력 방식을 위한 PC 하드웨어 진화 - 특히 최신 Windows 기기의 데스크톱 터치, 제스처 인식, 자연스러운 스크롤/패닝을 개선할 수 있습니다.

  • 보안 - 모든 브라우저 제조사는 당연히 웹 사용자를 최대한 안전하게 보호하는 것이 가장 중요합니다. 공유된 이 목표를 위해 Chromium 보안팀과 긴말하게 협력하고 특히 Windows 플랫폼에서의 일반적인 보안 프로그램에 대한 우리의 경험과 전문 지식으로 기여할 수 있기를 기대합니다.

앞으로 할 일

이는 Microsoft와 Microsoft Edge 팀에게 있어서 큰 도약이고 Chromium 프로젝트에도 큰 진전이 될 것입니다. 그리고 커다란 웹 커뮤니티에 이득이 될 것이라고 강하게 믿고 있습니다. Chromium 프로젝트 내에서 우리가 공통 웹 플랫폼을 어떻게 발전시킬 수 있을지 Google 및 Chromium 프로젝트의 다른 기여자들과 함께 참여하려고 합니다. 동시에 차별화된 사용자 경험 기능 및 연결된 서비스로 Chromium 오픈소스로 만들어진 Microsoft Edge 브라우저가 경쟁하는 가치를 인식하고 최고의 비전을 제시하려고 합니다.

표준 단체에서의 작업과 이전에 공유한 엔지니어링 노력으로 이미 Chromium의 많은 기여자와 긍정적인 작업 관계를 맺었습니다. 이렇게 오픈 웹 구현에 기여하는 제일 나은 방법을 배우면서 관계를 구축하기를 기대하고 있습니다.

이 문서를 따르면서 다음에 취할 행동을 구체적으로 설명하려고 간단한 목록을 준비했습니다.

  1. 위에서 설명한 영역에서 어떻게 기여할 수 있을지 Chromium 프로젝트 내 여러 분야 엔지니어링 책임자와 연락을 시작할 것입니다. 이는 Google뿐 아니라 다른 회사도 포함되어 있습니다.
  2. WHATWG, W3C뿐 아니라 OEM 파트너와 상호작용이 많은 개발 파트너 등 핵심 파트너에게 Microsoft Edge의 이번 전략 변화를 알릴 것입니다.
  3. 블로그에 공개적으로 발표해서 관심 있는 외부 커뮤니티 사람들이 이 전략 변경을 투명하게 알 수 있도록 하겠습니다.
  4. 이 문서를 GitHub에 올려서 관심 있는 개발자나 웹 커뮤니티 멤버가 이 계획을 읽을 수 있도록 하겠습니다.

Chromium 프로젝트에 함께 참여하기 시작했으므로 당신의 의견이나 조언, 피드백을 환영합니다.

2018/12/22 20:19 2018/12/22 20:19