Closed
Description
Description
- 빌드 잡을 CI에 추가합니다.
- 빌드 타임을 개선합니다. (어떤 방식으로던간에)
Reasons for suggestion
CI에서 현재 install, lint, test, typecheck 잡만 수행되고 있습니다. 상기한 잡들이 컴파일 타임에서 잡을 수 있는 문제점을 찾아주긴하지만 빌드 과정에서의 문제점을 찾아주진 못하고 있습니다. dependabot이 #942 에서 정상화되면서 의존성 업데이트가 자동화되어 주기적으로 이루어지게 되었는데, 이 문제점때문에 자동화된 의존성 업데이트에 대한 사이드 이펙트를 엔지니어가 수동으로 검사해야 합니다.
문제는 총 빌드에 걸리는 시간이 길게는 16분+으로 프로젝트 사이즈에 비해 '상당히' 오래 걸린다는 점입니다. 매 PR 업데이트마다 16분 이상의 시간을 소요하는 건 큰 리소스 낭비이므로, 빌드 소요 시간도 함께 단축해야합니다.
Proposed solution
- 빌드 잡을 CI에 추가합니다.
- turbo cache를 CI 환경에서 활용할 수 있도록 해야합니다.
- 빌드 타임을 개선합니다.
- 번들러를 변경한다면, 트리 쉐이킹이 잘 동작하는지 확인해보아야 합니다.
References
번들러 리서치
- TypeScript + React 지원
- Tree shaking 지원
- 더 작은 번들 사이즈
- tsup : esbuild + rollup으로 구현된 번들러. 테스트해보면 속도는 굉장히 빠르나, rollup의
preserveModules
속성을 지원하지 않아서인지 트리 쉐이킹이 올바르게 동작하지 않고 있습니다 (ref: Is tree shaking possible when building a lib with tsup? egoist/tsup#578). - swc : rust로 구현된 컴파일러&번들러입니다.
swcpack
이라는 번들러를 제공하나, 프로덕션에서 사용 가능한 상태인지는 불명확합니다. (Under construction) - turbopack : rust로 구현된 번들러. 현재 알파 버전으로 프로덕션에서는 사용 불가능합니다.
### Tasks
- [x] 빌드 타임 개선 #1424
- [x] 빌드 잡 CI 추가