Skip to content
ai news

Bun이 Concurrently를 완전히 대체했습니다.

최신 Bun 업데이트는 단순한 성능 향상을 넘어, 개발 스택의 핵심 부분을 직접 겨냥합니다. 수년간 의존해 온 종속성을 단 하나의 기능으로 어떻게 제거할 수 있는지 확인해 보세요.

Jonah Park
Bun이 Concurrently를 완전히 대체했습니다.

조용한 종속성 킬러

Rust로 대대적으로 재작성된 Bun 1.4가 최근 출시되었습니다. 이번 업데이트는 JavaScript 런타임의 성능 향상 그 이상의 의미를 갖습니다. 이번 업데이트는 개발자 유틸리티를 하나의 응집력 있는 플랫폼으로 통합하려는 Bun의 all-in-one 툴킷으로서의 입지를 강화하며, 더욱 통합된 개발 환경을 향한 전략적 움직임을 보여줍니다.

Bun 1.4의 핵심은 package.json 스크립트의 병렬 및 순차 실행을 기본적으로 처리하는 새로운 내장 스크립트 러너입니다. 이 기능 덕분에 많은 프로젝트에서 concurrentlynpm-run-all과 같은 타사 도구가 사실상 불필요해졌으며, 이전에는 외부 종속성이 필요했던 기능을 Bun이 직접 흡수했습니다. 이제 개발자는 --parallel 플래그를 사용하여 여러 스크립트를 동시에 실행할 수 있습니다.

통합 러너는 명확한 출력을 위한 접두사 지정, 스크립트 선택을 위한 glob 매칭, 워크스페이스 필터링 등 필수적인 기능을 제공합니다. 또한 하나의 스크립트에서 오류가 발생하더라도 다른 스크립트가 계속 실행되도록 설정할 수 있어 견고함이 향상되었습니다. 이 내부 메커니즘은 복잡한 개발 워크플로우를 Bun 내에서 직접 간소화합니다.

이러한 일반 도구들의 흡수는 JavaScript 생태계를 단순화하려는 Bun의 광범위한 전략을 잘 보여줍니다. Bun은 기본 대안을 제공함으로써 node_modules의 비대화를 방지하고 프로젝트 구성을 간소화하여, 파편화된 툴체인에서 벗어나 더욱 통합되고 효율적인 개발자 경험을 제공합니다.

네이티브 병렬 처리의 힘을 경험하세요

Bun 1.4는 기본 --parallel 플래그를 도입하여 개발자가 여러 package.json 스크립트를 실행하는 방식을 근본적으로 변화시켰습니다. 이 개선 사항은 concurrentlynpm-run-all과 같은 외부 도구의 필요성을 없애고, Bun 내에서 직접 개발 워크플로우를 간소화합니다. 이제 사용자는 단일 명령어로 여러 개발 서버나 와처(watcher)를 동시에 실행할 수 있습니다.

bun run --parallel 뒤에 스크립트들을 나열하여 동시에 실행할 수 있습니다. 예를 들어, bun run --parallel "dev:frontend" "dev:backend"는 두 작업을 병렬로 시작합니다. 이는 dev:frontend가 React 서버를 시작하고 dev:backend가 Node.js API를 시작하는 일반적인 package.json 설정과 동일합니다.

병렬 실행과 함께 삶의 질을 높여주는 개선 사항들이 추가되었습니다. 각 병렬 스크립트의 출력에는 자동으로 접두사 이름이 포함되어 어떤 프로세스가 로그를 생성했는지 명확하게 알 수 있습니다. 또한 개발자는 glob 매칭을 활용할 수 있습니다. bun run --parallel "dev:*"를 사용하면 dev:frontenddev:backend와 같이 dev: 접두사가 붙은 모든 스크립트를 명시적으로 나열하지 않아도 실행할 수 있습니다.

--continue-on-error 옵션을 통해 더 세밀한 제어가 가능합니다. 이 플래그는 린터(linter) 오류 보고와 같은 중요하지 않은 스크립트 실패가 전체 개발 환경을 중단시키지 않도록 보장합니다. 활성 개발 서버와 같은 다른 병렬 프로세스는 중단 없이 계속 실행되어 워크플로우의 연속성을 유지합니다. 이 기능은 복잡한 다중 서비스 개발 환경에서 견고함을 향상시킵니다.

동시성을 넘어: 흐름을 제어하세요

Bun 1.4는 --sequential 플래그 도입을 통해 병렬 처리를 넘어선 기본 스크립트 실행 기능을 확장합니다. 이 보완적인 기능은 Bun을 완벽하고 통합된 태스크 러너로 자리매김하게 하며, 복잡한 스크립트 워크플로우를 관리하기 위해 외부 npm 패키지를 사용할 필요를 없애줍니다.

--sequential 플래그는 작업이 정의된 순서대로 실행되도록 보장하며, 이는 단계 간 의존성이 존재하는 수많은 개발 및 배포 시나리오에서 매우 중요합니다. 구체적인 사용 사례는 다음과 같습니다:

  • 서버가 시작되기 전에 데이터베이스 마이그레이션을 완료합니다.
  • 테스트 스위트를 시작하기 전에 빌드 프로세스를 완전히 실행합니다.
  • 데이터 무결성이 순차적 삽입에 의존하는 순차적 데이터 시딩 작업을 수행합니다.

Bun은 병렬 및 순차 작업 모두에서 일관된 개발자 경험을 유지합니다. 개발자는 동일하고 우아한 package.json 스크립트 구문을 활용하며, 로그가 발생한 스크립트를 직접 가리키는 명확한 접두사 출력을 통해 디버깅 및 모니터링을 향상시킵니다.

이러한 일관성은 고급 필터링 기능으로 확장되어, 특히 모노레포 환경에서 워크스페이스 내 어떤 스크립트를 실행할지 정밀하게 제어할 수 있습니다. 이러한 필터링 옵션에 대한 자세한 정보는 bun --filter | Bun Docs를 참조하십시오. Bun의 --sequential 플래그는 --parallel과 함께 강력한 네이티브 스크립트 오케스트레이션을 제공하여 프로젝트 설정을 간소화하고 concurrentlynpm-run-all과 같은 도구에 대한 의존도를 크게 줄여줍니다.

이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.

하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음

모노레포의 핵심 기능: 워크스페이스 필터링

Bun 1.4는 모노레포 관리를 위한 중요한 개선 사항인 --filter 플래그를 도입했습니다. 이 기능을 통해 개발자는 스크립트를 실행할 때 워크스페이스 내의 특정 패키지를 대상으로 지정할 수 있어 복잡한 프로젝트 워크플로우를 직접적으로 간소화합니다. 이는 대규모 개발 환경에서 오랫동안 지속된 과제를 해결하며, 일반적인 스크립트 실행을 넘어선 기능을 제공합니다.

이전에는 수많은 하위 패키지 간의 명령을 조정하기 위해 사용자 지정 셸 스크립트나 Lerna 또는 Nx와 같은 외부 유틸리티를 사용한 복잡한 도구 구성이 필요했습니다. --filter를 사용하면 Bun은 이 프로세스를 네이티브 방식으로 간소화하여 워크스페이스 인식 기능을 핵심에 내장합니다. 예를 들어, 특정 백엔드 서비스에 대해서만 테스트를 실행하려면 개발자는 bun run test --filter=@my-app/backend를 실행하면 됩니다.

이 명령은 @my-app/backend 패키지를 직접 대상으로 하여 관련 없는 프로젝트 구성 요소에서 작업을 시작하지 않고 테스트 실행을 격리합니다. 이 기능은 테스트를 넘어 빌드, 린트 또는 개발 서버 명령에도 적용되어 전체 워크스페이스에 걸쳐 세밀하고 효율적인 제어를 제공합니다.

--filter 플래그는 프로젝트 규모가 커짐에 따라 유지 관리 및 디버깅이 어려워지는 맞춤형 스크립팅 솔루션에 대한 의존도를 크게 줄여줍니다. 이러한 네이티브 통합은 방대한 코드베이스와 복잡한 의존성을 관리하는 조직을 위한 Bun의 유용성을 공고히 합니다. 이는 Bun 1.4를 엔터프라이즈급 워크스페이스를 위한 강력한 올인원 작업 러너로 자리매김하게 합니다.

자주 묻는 질문

Bun 1.4에서 스크립트 실행과 관련하여 새로워진 점은 무엇인가요?

Bun 1.4는 package.json 스크립트를 병렬(--parallel) 또는 순차(--sequential)로 실행할 수 있는 네이티브 지원을 도입하여 concurrentlynpm-run-all과 같은 타사 패키지가 필요 없게 되었습니다.

Bun의 스크립트 러너는 오류를 어떻게 처리하나요?

기본적으로 하나의 스크립트가 실패하면 다른 모든 스크립트가 종료됩니다. 그러나 복잡한 개발 환경에서 유용한 플래그를 사용하여 하나가 오류를 발생시키더라도 다른 스크립트가 계속 실행되도록 허용할 수 있습니다.

Bun을 사용하여 모노레포에서 특정 패키지에 대한 스크립트를 실행할 수 있나요?

네, Bun에는 워크스페이스(모노레포) 내의 특정 패키지를 대상으로 지정할 수 있는 --filter 플래그가 포함되어 있어 프로젝트 전반에 걸쳐 정밀한 명령 실행이 가능합니다.

Bun은 병렬 스크립트만 지원하나요?

아니요, Bun은 병렬 및 순차 스크립트 실행을 모두 지원합니다. --sequential 플래그는 스크립트를 하나씩 차례로 실행하며, 병렬 실행기와 동일한 접두사 출력 및 필터링 기능을 제공합니다.

왜 Bun 1.4를 Rust 재작성(Rust rewrite)이라고 부르나요?

영상 스크립트에서 Bun 1.4를 'Rust 재작성'이라고 언급한 것은, 런타임의 주요 부분을 성능과 안전성을 높이기 위해 Rust 프로그래밍 언어로 다시 작성한 중대한 아키텍처 변경을 의미합니다.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only