Interesting Websites
현재 상황에 대한 이해
목표 설정
- Brane DOM의 재구현이 의미가 있는지 실험하고, 유의미한 전략인지 확인하는 것이 목표이다.
- 비유하자면, 이미 동일하게 작동하는 장치로 Web View가 있는 것이다.
- 기존에는 모바일 앱에서 Web View를 제어하는 것이고 우리는 웹에서 제어하는 Web View를 만드는 것이 목표이다. (=가상화.)
- 이 가상화 환경의 런타임을 수립할 세부 전략을 세워야 한다.
- 이 세부 전략으로 WorkerDOM을 쓸 수도 있고, 고쳐서 쓸 수도 있고, 새로 만들 수도 있고, 폐기할 수도 있는 것이다.
- 전략적으로 유의미하다면 일부를 폐기해도 된다.
- WorkerDOM과 JSDOM은 각자의 한계가 뚜렷하다.
- 하지만 구현 디테일은 참고할 부분이 상당히 많다.
- 핵심 컨셉은 차용할 수 있다.
- JSDOM도 마찬가지다. 계속 쓸 수 있다는 것은 아니다.
- 우리만의 트레이드오프를 만들어야 한다.
티어링: 지원하는 기능의 종류를 정하는 일에 대하여
- 커버리지(어느 기능까지 지원되는지 정하는 일)과 구현 목표(무엇을 만들지)는 분리하여 생각해야 한다.
- 티어링이란 이 프로젝트가 빌딩 블록으로 제공될 때, 아주 필수적인 코어 기능으로 제공될 영역과, ON-OFF 할 수 있도록 토글로 제공될 부가적인 부분을 나누는 것이다.
- 코어, 코어 플러그인, 커뮤니티 플러그인을 정하는 것.
- 여기서 중요한 것은 성능, 용량 등으로 티어를 나누는 것이 아니라는 점이다.
- 티어를 정하는 것은 잠시 미룰 수 있다.
구현 우선 순위를 정하는 일에 대하여
- 당근 베타 프로젝트에서 Karrot Frame 데모 앱을 돌려보며 터지던 부분들을 나열해 보았다.
- 이때 Karrot Frame Router를 선택한 이유는 네비게이션이 어느 정도 되어야 유의미한 동작을 확인할 수 있다고 판단했기 때문.
- 가상화를 증명하는 가장 좋은 방법은 가상 환경에서 돌아가는 모습을 보여주면 되는 것이다.
- 즉, 지금 해야할 일: 데모 시나리오를 만들어 볼 것.
- 이 세 가지 시 나리오에 부합하는 적당한 난이도의 데모 시나리오를 만들어야 한다.
- DOM의 구현 요구 사항(실행 환경에 대한 요구 사항)은 게스트 앱에서 나올 것이고,
- 결합부 파트에 대한 요구 사항(예: 닫기 버튼, 최소화 버튼 등)은 호스트 앱에서 나올 것이다.
- 검증 대상에 특화된 시나리오 예시
- 종합하여 Project의 목표를 세우고, 상위 Project의 스코프를 세우자.
- 미니앱 시스템을 만들기 위해서는 부가적으로 패키징, 로케이팅 등을 고려해야 한다.
- 그 중에서 압축 포맷에 대한 고민을 해야 한다.
- 이것에 대한 예시로 Web Bundle이라는 예시가 있는데, 이것이 Rust로 만들어져 있다.
- 이런 것들은 시스템 기반 언어로 작성해야 하기 때문에 Rust로 하면 좋을 것 같다.
- WASM과는 당장은 무관하다.