핵심 요약
Biome 2.0 GA. Prettier + ESLint를 17만 LoC 모노레포에서 6개월 대체 운영. format+lint 합쳐 4.2배 빠름, CI 시간 -68%. 단 plugin 생태계는 여전히 빈약, 일부 rule 직접 작성.
1. 셋업
// biome.json
{
"$schema": "https://biomejs.dev/schemas/2.0/schema.json",
"files": { "ignore": ["dist", "node_modules"] },
"formatter": { "indentStyle": "space", "lineWidth": 100 },
"linter": { "rules": { "recommended": true } }
}
2. 속도
| 도구 | 17만 LoC 풀 lint+format |
|---|---|
| ESLint 10 + Prettier 4 | 142s |
| Biome 2.0 | 34s |
| Biome --files-changed | 1.4s |
3. 호환 — 됐던 것
- JSX, TSX, JSON, CSS
- Astro, Vue, Svelte 일부 지원(format만)
- import 정렬, unused import 제거
4. 호환 — 안 됐던 것
- Markdown 포맷팅 — 미지원, Prettier 병행
- ESLint plugin 생태계 — react-hooks 자체 rule은 있으나 일부 옵션 누락
- custom rule — JavaScript API 미정, Rust 작성 필요
- YAML — 1.x 지원, 2.x 부분
5. 함정
- dprint 정렬과 충돌 — Biome가 둘 다 처리하니 dprint 제거
- IDE — VSCode Biome extension 안정성 좋으나 settings.json에서 default formatter 명시
- Prettier ignore — .prettierignore와 별개, biome.json files.ignore에 다시 정의
- pre-commit — lint-staged 통합 가능, 단 partial format은 Biome가 빨라 굳이 안 써도 됨

댓글 0