본문 바로가기

잡학다식/IT 컬럼

ESLint보다 100배 빠른 린터, Oxlint 1.0 출시! 성능과 실용성 모두 잡았다

728x90
반응형

자바스크립트나 타입스크립트를 쓰는 팀이라면 린팅 속도가 발목을 잡은 적이 분명 있을 겁니다. 대규모 프로젝트에서 eslint 돌리는 데 몇십 초씩 걸릴 때, 작은 코드 수정 하나에도 기다림이 반복되죠. 그 불편함, Oxlint가 해결하겠다고 나섰습니다.

Rust 기반으로 새롭게 등장한 JavaScript/TypeScript 린트 도구인 Oxlint가 1.0 버전으로 정식 출시됐습니다. ESLint 대비 최대 100배에 달하는 속도를 자랑하며, 복잡한 설정 없이도 즉시 사용이 가능하다는 점에서 많은 관심을 받고 있습니다. 게다가 Shopify, Airbnb, Mercedes-Benz 등 대기업들의 실사용 사례까지 더해지며 실용성과 신뢰성을 동시에 입증하고 있습니다.

이번 블로그에서는 Oxlint가 정확히 어떤 도구인지, 왜 빠르고 편리한지, 실제로 어떻게 사용하는지까지 하나씩 짚어보겠습니다.

반응형

Oxlint란 무엇인가?

Oxlint는 JavaScript와 TypeScript 프로젝트에서 코드 품질을 검사하는 린트 도구입니다. Rust로 구현돼 멀티스레드를 활용한 고성능을 자랑하며, 기존 린터에 비해 월등한 속도를 제공합니다.

ESLint를 그대로 대체하는 것이 아니라, 기존 설정과 병행하여 사용할 수 있도록 설계되었고, 기본적으로 ESLint의 주요 규칙 대부분을 지원합니다. 복잡한 설정 없이 설치 후 바로 실행할 수 있어 누구나 빠르게 적용할 수 있는 점도 특징입니다.

성능으로 증명된 차별성

Oxlint의 가장 큰 장점은 단연 성능입니다. 대규모 코드베이스를 다루는 기업 사례를 보면 그 차이는 더 명확해집니다.

  • Airbnb는 약 12만 6천 개의 파일을 린트하는 데 단 7초 소요
  • Mercedes-Benz는 기존 대비 린트 시간이 최대 97%까지 단축
  • 최대 규모의 리포지토리에서는 26만 5천 개 파일, 101개 규칙을 단 22.5초 만에 분석

벤치마크 결과도 이를 뒷받침합니다.

도구 실행 시간

도구 실행 시간
Oxlint (멀티스레드) 615ms
Oxlint (싱글스레드) 1.8초
ESLint 33.5초

속도 하나만으로도 도입할 이유는 충분합니다.

설정 없이 바로 사용 가능한 간편함

Oxlint는 설치만 하면 바로 실행할 수 있습니다. 복잡한 설정 파일 없이 npx oxlint@latest 또는 pnpm, yarn, bun, deno 등을 통해 즉시 실행 가능하며, .oxlintrc.json을 통해 대형 프로젝트나 팀별 커스터마이징도 지원합니다.

기존 ESLint 설정과의 연동도 매끄럽습니다. ESLint v8의 flat config 포맷을 기반으로 설정을 유지할 수 있으며, oxlint-migrate 툴을 통해 설정 이관도 자동화할 수 있습니다. eslint-plugin-oxlint를 사용하면 중복된 규칙을 자동으로 비활성화할 수도 있어 두 도구를 병행해 사용하는 것도 가능합니다.

즉, 지금 사용하는 ESLint 환경을 버릴 필요 없이, 속도 개선을 위해 Oxlint를 '더해' 사용할 수 있다는 점이 큰 강점입니다.

규칙 지원과 유연한 설정

Oxlint는 ESLint의 전체 규칙뿐 아니라 주요 플러그인 규칙도 폭넓게 지원합니다.

  • typescript-eslint
  • unicorn
  • jsdoc
  • react
  • jest
  • import 플러그인 등

뿐만 아니라 Oxlint 고유의 규칙도 제공됩니다. 예를 들어 bad comparison sequence, const comparisons 등 기존 도구에서 감지하지 못했던 문제까지도 검출해줍니다.

설정도 유연합니다. 폴더별 중첩 구성, glob 단위의 오버라이드, 공유 설정 확장이 가능해 팀 규모와 프로젝트 구조에 따라 일관된 린팅 정책을 적용할 수 있습니다.

주요 에디터 통합으로 개발 환경에 자연스럽게 녹아듦

Oxlint는 VSCode, IntelliJ/WebStorm, Zed 등 주요 IDE에 확장 프로그램으로 제공되며, Language Server Protocol(LSP)을 통해 더 다양한 에디터에서 실시간 오류 진단과 자동 수정 제안을 받을 수 있습니다.

즉, 개발자가 별도로 신경 쓰지 않아도, 기존 개발 환경에서 그대로 린트 피드백을 빠르게 받을 수 있습니다.

진단 메시지, 이제는 시각적으로 확인하자

기존 린트 도구는 간단한 오류 메시지 수준에서 멈추는 경우가 많았습니다. Oxlint는 그 이상을 제공합니다.

단순한 오류 설명을 넘어서, 왜 문제가 발생했는지, 어떻게 수정해야 하는지 등을 시각적으로 안내합니다. 복잡한 규칙에 익숙하지 않은 팀원도 쉽게 이해할 수 있도록 설계됐다는 점이 인상적입니다.

앞으로의 계획과 확장 가능성

Oxlint는 여기에 멈추지 않습니다. 향후에는 JavaScript 기반의 커스텀 규칙 지원도 계획 중이며, ESLint v9 방식의 세밀한 glob 설정, 추가적인 성능 최적화 기능도 준비되고 있습니다.

기존 린터 사용자들에게는 더 강력한 기능을, 신규 도입 사용자에게는 더 쉬운 진입 장벽을 제공할 수 있도록 진화 중입니다.

728x90

지금 당장 써볼 이유는 충분하다

Oxlint는 단순히 '빠른 린터' 그 이상입니다. 빠른 속도는 기본이고, 설정의 단순화, 규칙 지원의 폭, 대기업의 신뢰성 있는 도입 사례, 에디터 연동, 시각적 메시지 제공 등 실무 개발자 입장에서 필요한 요소를 고루 갖췄습니다.

ESLint가 느려서 답답했던 경험이 있다면, 지금 당장 Oxlint를 설치해보세요. 새로운 린트 경험이 시작될 수 있습니다.

https://voidzero.dev/posts/announcing-oxlint-1-stable

 

Announcing Oxlint 1.0

The first stable version of Oxlint, a fast & easy-to-use Rust-powered linter for JavaScript and TypeScript, is out. Learn about its 50~100x speed advantage over ESLint, support for 500+ rules, real-world adoption by major companies, and easy migration.

voidzero.dev

728x90
반응형