정적 서빙, H3, 그리고 v0.1의 마지막 조각
Source: Dev.to
정적 서빙
Host가 이제 src/에서 파일을 제공합니다 – 단순 제공만 합니다. 폴백 로직이나 통합 감지는 없습니다. 진입점은 src/index.html입니다.
추후에는 이를 폴백 섹션으로 옮길 예정이며, 통합이 실제가 되면 정적 서빙은 다른 것이 요청을 차지하지 않을 때 기본이 됩니다. 현재는 이것만 실행되고 있습니다.
또한 간단한 JSON 엔드포인트 "$path/__json" 를 추가하여 앱 자체에 대한 작은 JSON 객체를 반환하도록 했습니다. 디버깅에 유용하며 나중에 공개 API의 일부가 될 수도 있습니다.
정적 서빙이 이제 기본이 되었습니다. Velnora 워크스페이스의 모든 프로젝트는 별도 설정 없이 자동으로 제공받습니다.
velnora init
H3 프레임워크
H3는 Velnora의 Host를 위해 초기에 선택한 HTTP 프레임워크인데, 이번이 실제로 깊게 파고든 첫 번째 경험입니다. Express와는 다른 점이 있습니다:
req와res가 없습니다. 대신 이벤트 객체를 받습니다.res.send()를 호출하지 않습니다. 응답을 반환합니다.- 아무것도 반환하지 않으면 다음 핸들러가 실행됩니다.
미들웨어는 쌓아 올리는 스택이 아니라, 함께 구성되는 이벤트 핸들러 집합입니다. 프레임워크가 실행 순서를 결정하고, 우리는 핸들러를 정의하고 조합하기만 하면 됩니다.
처음에는 근육 기억이 H3에는 없는 Express 패턴을 찾으려 했습니다. 문서는 최소 수준이며, UnJS 생태계는 소스 코드를 직접 읽기를 기대합니다. 하지만 H3를 Express에 맞추려는 생각을 멈추고 자체적인 관점으로 생각하기 시작하니 이해가 되었습니다. 코드가 짧아지고, 조합이 깔끔해졌으며, 정적 서빙이 Vite 미들웨어와 자연스럽게 어우러졌습니다.
워크스페이스 초기화 (v0.1)
서빙이 동작하게 되면서, v0.1의 마지막 조각은 처음부터 워크스페이스를 시작하는 방법이었습니다.
다음 명령을 구현했습니다:
velnora init
- 현재는 “ 인수가 필요합니다.
- 이 명령은 유효한 Velnora 워크스페이스를 구성하는 두 파일, 즉 설정 파일과
package.json을 생성합니다. - 추가적인 스캐폴딩은 수행되지 않으며, 향후 설문지(통합별 질문 포함)가 추가될 때까지 나머지는 수동으로 진행됩니다.
이 최소한의 접근 방식은 init 명령을 간결하고 방해되지 않게 유지합니다.
v0.1 요약
v0.1이 완성되었습니다. 화려한 UI, 대시보드, 데모는 없지만 핵심 파이프라인은 작동합니다:
- Kernel이 부팅됩니다.
- Host가 정적 파일을 제공합니다.
- 프로젝트 탐색이 작동합니다.
velnora init이 워크스페이스를 스캐폴딩합니다.
저는 저장소에 v0.1 태그를 달겠지만 아직 공개하지는 않을 예정입니다—서두를 필요는 없습니다. 코드와 태그가 이 마일스톤을 표시합니다.
다음 단계: v0.2의 범위를 분석하여 먼저 어떤 작업을 진행할지 결정합니다. 골격은 갖춰졌으니 이제 근육이 필요합니다.