cho.sh
220614

220614

Warning

Over a year old. May be outdated

Interesting Websites

Work Note

현재 상황에 대한 이해

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

목표 설정

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

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

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

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

  • 베타 에서 Frame 데모 앱을 돌려보며 터지던 부분들을 나열해 보았다.
    • 이때 Frame Router를 선택한 이유는 네비게이션이 어느 정도 되어야 유의미한 동작을 확인할 수 있다고 판단했기 때문.
  • 가상화를 증명하는 가장 좋은 방법은 가상 환경에서 돌아가는 모습을 보여주면 되는 것이다.
  • 즉, 지금 해야할 일: 데모 시나리오를 만들어 볼 것.
  • 이 세 가지 시나리오에 부합하는 적당한 난이도의 데모 시나리오를 만들어야 한다.
    • 미니앱은 외부환경에 영향을 미칠 수 없습니다
    • 호스트에서 미니앱으로 전환할 때 로딩 없이 즉시 전환됩니다
    • 호스트는 어떤 상황에서라도 현재 실행중인 미니앱을 강제종료 할 수 있습니다
  • DOM의 구현 요구 사항(실행 환경에 대한 요구 사항)은 게스트 앱에서 나올 것이고,
  • 결합부 파트에 대한 요구 사항(예: 닫기 버튼, 최소화 버튼 등)은 호스트 앱에서 나올 것이다.
  • 검증 대상에 특화된 시나리오 예시
    • DOM 퍼포먼스를 확인하기 위해 Throughput이 높은 DBMon을 사용한다.
    • Todo MVC
    • 네비게이션 검증하기 위해 Frame을 사용한다.
  • 종합하여 의 목표를 세우고, 상위 의 스코프를 세우자.

Rust의 사용에 대하여

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

No backlinks found