Primate 0.35는 빌드 시스템을 근본적으로 재설계하여 개발 및 배포 경험을 혁신합니다. 서버 코드를 단일 파일로 번들링하여 개발 시 핫 리로드를 지원하고, 프로덕션용 독립형 실행 파일을 생성합니다.
새로운 빌드 시스템의 이점
-
개발 가속화: 모든 백엔드 코드 핫 리로드로 변경 사항 즉시 반영.
-
배포 간소화: 외부 종속성 없는 자체 포함 단일 파일 빌드.
-
성능 향상: 번들링된 코드로 런타임 파일 시스템 오버헤드 제거.
-
코드 명료성: esbuild 직접 통합으로 추상화 계층 제거. 빌드 출력 및 서비스 제공 위치는
--dir플래그로 유연하게 설정 가능합니다.
서버 핫 리로드
개발 중 백엔드 코드(TypeScript, JavaScript, Go, Ruby, Python 포함) 수정 시 Primate는 서버 핫 리로드를 지원합니다. 런타임 재시작 없이 변경 사항이 즉시 적용되며, 빠른 번들 재생성 및 자동 브라우저 새로고침을 통해 효율적인 개발 경험을 제공합니다.
서버-클라이언트 타입 안전성
0.35의 주요 개선점은 서버 라우트와 클라이언트 뷰 간의 완전한 타입 안전성입니다. response.view 사용 시 뷰 컴포넌트를 직접 임포트하면, TypeScript가 props 일치 여부를 자동으로 검증합니다. 이는 개발 단계 오류 조기 발견, IDE 지원 및 리팩토링 안전성을 높입니다. 현재 JSX 프런트엔드 및 Svelte에서 지원됩니다.
독립형 프로덕션 빌드
프로덕션 빌드는 모든 종속성과 자산을 포함하는 단일 build/server.js 파일을 생성합니다. 이 파일은 node_modules나 npm install 없이 직접 실행 가능하여 배포 복잡성을 크게 줄입니다. 다만, Python 및 Ruby 백엔드는 현재 네이티브 종속성으로 node_modules가 필요하며, 완전한 독립형 지원은 향후 계획 중입니다.
기타 변경 사항
새로운 플러그인 API는 config.build 옵션을 대체하여 빌드 프로세스 제어를 강화합니다. 세션 관리는 Primate 스토어를 통해 지속성 및 유효성 검사를 처리하도록 개선되었습니다. tsconfig.json 설정 간소화 및 Store 속성 schema가 collection으로 변경되었습니다.