SA
메인 내용으로 이동

2022-06-14

Interesting Websites

Brane Work Note

현재 상황에 대한 이해

  • Brane은 타사 앱을 참여시켜 플랫폼을 확장하고 OS 수준을 경험하는 모든 과정(웹앱 렌더링, 레지스트리 설치, 프리로딩, 위젯 등)을 포함하는 모든 빌딩 블록을 만드는 것이다.
  • Brane에서 Brane DOM을 만드는 것은 구현 전략의 일부일 뿐, Brane DOM 자체는 Brane이 아니다.

목표 설정

  • Brane DOM의 재구현이 의미가 있는지 실험하고, 유의미한 전략인지 확인하는 것이 목표이다.
  • 비유하자면, 이미 동일하게 작동하는 장치로 Web View가 있는 것이다.
  • 기존에는 모바일 앱에서 Web View를 제어하는 것이고 우리는 웹에서 제어하는 Web View를 만드는 것이 목표이다. (=가상화.)
  • 이 가상화 환경의 런타임을 수립할 세부 전략을 세워야 한다.
    • 이 세부 전략으로 WorkerDOM을 쓸 수도 있고, 고쳐서 쓸 수도 있고, 새로 만들 수도 있고, 폐기할 수도 있는 것이다.
  • 전략적으로 유의미하다면 일부를 폐기해도 된다.
  • WorkerDOM과 JSDOM은 각자의 한계가 뚜렷하다.
    • 하지만 구현 디테일은 참고할 부분이 상당히 많다.
    • 핵심 컨셉은 차용할 수 있다.
  • JSDOM도 마찬가지다. 계속 쓸 수 있다는 것은 아니다.
  • 우리만의 트레이드오프를 만들어야 한다.

티어링: 지원하는 기능의 종류를 정하는 일에 대하여

  • 커버리지(어느 기능까지 지원되는지 정하는 일)과 구현 목표(무엇을 만들지)는 분리하여 생각해야 한다.
  • 티어링이란 이 프로젝트가 빌딩 블록으로 제공될 때, 아주 필수적인 코어 기능으로 제공될 영역과, ON-OFF 할 수 있도록 토글로 제공될 부가적인 부분을 나누는 것이다.
    • 코어, 코어 플러그인, 커뮤니티 플러그인을 정하는 것.
  • 여기서 중요한 것은 성능, 용량 등으로 티어를 나누는 것이 아니라는 점이다.
  • 티어를 정하는 것은 잠시 미룰 수 있다.

구현 우선 순위를 정하는 일에 대하여

Rust의 사용에 대하여

  • 미니앱 시스템을 만들기 위해서는 부가적으로 패키징, 로케이팅 등을 고려해야 한다.
  • 그 중에서 압축 포맷에 대한 고민을 해야 한다.
  • 이것에 대한 예시로 Web Bundle이라는 예시가 있는데, 이것이 Rust로 만들어져 있다.
  • 이런 것들은 시스템 기반 언어로 작성해야 하기 때문에 Rust로 하면 좋을 것 같다.
  • WASM과는 당장은 무관하다.

이 문서를 언급한 문서들