Biome는 “오래전부터 널리 쓰인 전통적인 표준 도구”라기보다는, 최근 JS/TS 생태계에서 빠르게 성장하고 있는 Rust 기반 올인원 lint/format 도구에 가깝습니다.
전통적으로 JavaScript와 TypeScript 프로젝트에서는 아직까지 ESLint + Prettier 조합이 가장 널리 사용됩니다. 반면 Biome는 설정이 단순하고 속도가 빠르다는 장점 덕분에, 새 프로젝트나 모노레포 환경에서 선택되는 경우가 점점 늘어나고 있습니다.
Biome가 하는 일
Biome는 대략 다음과 같은 역할을 합니다.
| 구분 | 하는 일 |
|---|---|
| Formatter | 줄바꿈, 들여쓰기, 따옴표, 세미콜론 같은 코드 스타일을 자동으로 정리합니다. |
| Linter | 버그 가능성, 좋지 않은 패턴, 불필요한 코드, 권장 규칙 위반 등을 탐지합니다. |
| Organize imports | import 문을 정렬하고 불필요한 import를 정리합니다. |
| Check | formatter, linter, import 정리 검사를 한 번에 실행합니다. |
| Write mode | 자동 수정이 가능한 항목을 실제 코드에 반영합니다. |
이 프로젝트에서는 pnpm lint가 biome check .를 실행하고, pnpm format이 biome check --write .를 실행하도록 구성되어 있습니다.
즉, 이 저장소에서는 Biome가 lint와 format의 중심 도구로 사용되고 있다고 볼 수 있습니다.
대표적인 lint/formatter 도구 비교
| 도구 | 주 대상 | 역할 | 강점 | 약점/주의 | 현재 위치 |
|---|---|---|---|---|---|
| ESLint | JS/TS/JSX | Linter | JavaScript 생태계의 대표적인 표준 linter입니다. React, Vue, Node.js 등 다양한 플러그인과 커스텀 룰 생태계가 가장 풍부합니다. | 설정이 복잡해지기 쉽고, 포맷팅은 보통 Prettier와 함께 사용합니다. | 가장 보편적입니다. |
| Prettier | JS/TS/CSS/HTML/ JSON/MD 등 | Formatter | 코드 스타일 논쟁을 줄여주는 formatter 표준 도구입니다. 다양한 언어와 에디터를 지원합니다. | lint 기능은 제공하지 않습니다. 코드 품질 규칙은 ESLint 같은 별도 도구가 필요합니다. | formatter 표준입니다. |
| Biome | JS/TS/ JSX/TSX/ JSON/CSS/ HTML/GraphQL 등 | Formatter + Linter + import 정리 | 하나의 도구로 format, lint, check를 처리할 수 있습니다. Rust 기반이라 빠르고 설정이 단순합니다. 공식 문서에서는 Prettier 호환성, 500개 이상의 lint rule, TypeScript/JSX 1급 지원을 강조합니다. | ESLint 플러그인 생태계를 전부 대체하지는 못합니다. 특수한 프레임워크 규칙이나 커스텀 룰이 많은 경우에는 ESLint가 더 유리할 수 있습니다. | 빠르게 성장 중인 올인원 대안입니다. |
| Oxlint / Oxc | JS/TS/JSX/TSX | 고속 Linter | JavaScript/TypeScript 전용 고성능 linter입니다. 공식 문서 기준 ESLint 대비 50~100배 빠른 벤치마크, 830개 이상의 규칙, ESLint 마이그레이션 지원을 강조합니다. | formatter까지 한 번에 해결하려면 별도 도구 또는 Oxc 생태계 구성이 필요합니다. ESLint 플러그인 완전 호환 여부는 주의가 필요합니다. | 대형 저장소와 CI 환경에서 주목받고 있습니다. |
| typescript-eslint | TypeScript | ESLint용 TypeScript 분석 계층 | ESLint가 TypeScript 문법과 타입 기반 lint를 다룰 수 있도록 해줍니다. 타입 정보를 활용한 깊은 lint가 가능합니다. | ESLint 설정 복잡도가 함께 따라옵니다. | TypeScript 프로젝트의 전통적인 정석 조합입니다. |
| Ruff | Python | Linter + Formatter | Python 생태계에서 Biome이나 Oxlint와 비슷한 성격의 Rust 기반 고속 도구입니다. Flake8, Black, isort 등 여러 도구를 상당 부분 대체하는 것을 목표로 합니다. | Python 전용 도구입니다. | Python 생태계에서 매우 강한 대세 도구입니다. |
| Stylelint | CSS/SCSS/Less | CSS Linter | CSS 오류와 convention 검사를 전문적으로 수행합니다. 100개 이상의 rule, plugin, autofix를 지원합니다. | JS/TS 코드 품질 검사와는 별개의 도구입니다. | CSS 전문 표준 도구입니다. |
정리하자면
JavaScript와 TypeScript 생태계에서 가장 보편적인 조합은 아직 ESLint + Prettier입니다.
다만 Biome는 이 둘의 상당 부분을 하나로 합친 빠르고 단순한 올인원 도구라고 이해하시면 좋습니다.
Python에서 Ruff가 Flake8 + Black + isort를 대체하려는 성격을 가진 것처럼, Biome는 JS/TS 생태계에서 ESLint + Prettier + import 정리를 더 단순하게 통합하려는 도구에 가깝습니다.
따라서 이 프로젝트처럼 TypeScript 기반 모노레포이고, 복잡한 커스텀 ESLint 플러그인이 많이 필요하지 않은 경우라면 Biome를 선택하는 것은 충분히 합리적인 결정이라고 볼 수 있습니다.
0 댓글