Skip to content

Oxlint 정식 출시(GA)

이 글은 Oxlint의 최초 정식 출시(General Availability)를 알립니다. 훨씬 많은 기능과 개선이 포함된 최신 안정 버전은 Oxlint v1.0 Stable 발표를 참고하세요.

oxlint가 정식으로 공개되었습니다. 이번 이정표는 팀이 이슈를 신속하게 처리·분류할 수 있게 되었음을 의미합니다.

Oxlint는 기본적으로 별도 설정 없이도 잘못되었거나 불필요한 JavaScript 코드를 잡아내는 린터입니다.

사용 방법

현 단계에서 oxlint는 ESLint를 완전히 대체하기 위한 것이 아닙니다. 워크플로에서 ESLint의 느림이 병목이 될 때 보완용으로 쓰기에 적합합니다.

대규모 코드베이스에서도 몇 초 안에 돌아가므로, lint-staged나 CI에서 ESLint보다 먼저 oxlint를 실행하면 피드백 주기를 짧게 가져갈 수 있습니다.

JavaScript / TypeScript 저장소 루트에서 아래 명령으로 oxlint를 시험해 볼 수 있습니다.

sh
$ npx oxlint@latest
sh
$ pnpm dlx oxlint@latest
sh
$ yarn dlx oxlint@latest
sh
$ bunx oxlint@latest
sh
$ deno run npm:oxlint@latest

자세한 설치 방법은 설치 가이드를 참고하세요.

설계

ESLint 대비 50~100배 빠른 속도

실제 사례로 Shopify는 CI에서 ESLint에 75분이 걸리던 것이 이제 10초 수준이라고 보고했습니다.

Shopify DX 담당이자 Preact 작성자인 Jason Miller의 말:

oxlint는 Shopify에서 엄청난 이득이 되었습니다. 예전 린트 설정은 75분이 걸려 CI에서 40개 이상의 워커로 나눠 돌렸습니다.

같은 코드베이스를 한 워커에서 oxlint로 돌리면 약 10초 정도이고, 출력도 더 읽기 쉽습니다.

마이그레이션 과정에서 예전 설정에서 숨겨지거나 건너뛰어진 버그도 몇 건 잡았습니다!

성능 향상의 대부분은 Rust와 병렬 처리를 핵심에 둔, 성능을 목적 설계한 Oxlint 구조에서 나옵니다.

정확성 위주의 린트

Oxlint는 기본적으로 잘못되었거나 중복되거나 혼란스러운 코드를 찾습니다. perf, suspicious, pedantic, style 등 지나친 잔소리에 가까운 규칙은 기본 꺼져 있어, 정확성을 우선합니다.

사용 편의성

JavaScript / TypeScript 프로젝트를 새로 세팅하는 일은 점점 복잡해지고, 도구 간 호환 문제로 몇 시간을 낭비할 가능성이 큽니다.

그래서 oxlint는 기본이 제로 설정이며 Node.js도 필수가 아닙니다. 대부분의 조정은 CLI로 처리할 수 있고, ESLint 설정 파일 읽기는 현재 진행 중입니다.

진단 품질 향상

린터 메시지를 이해하기 어려울 때가 많습니다. Oxlint는 원인을 짚어 주고 도움이 되는 메시지를 제공해, 긴 규칙 문서를 읽느라 시간 쓰지 않도록 합니다.

vscode 저장소에서 oxlint -D perf를 실행한 예:

규칙 통합

Oxlint에는 아직 플러그인 시스템은 없지만, TypeScript, React, Jest, Unicorn, JSX-a11y, Import 등 인기 플러그인의 규칙을 적극적으로 모으고 있습니다.

JavaScript 생태계에서 플러그인의 중요성은 알고 있으며, DSL 기반 플러그인도 검토 중입니다.

한편, 플러그인 의존성 목록을 관리하거나 호환 문제를 헤매거나, 버전 제약으로 포크한 플러그인에 의존하는 일 없이 단독 린터로 쓰고 싶을 수도 있습니다.


즐거운 린팅 되시고, 연말 연시 잘 보내세요.

시작하려면 설치 가이드, oxc 프로젝트 소개, 또는 Hacker News 논의를 참고하세요.