# JSR은 또 다른 패키지 관리자가 아닌 새로운 도구입니다

> Clean Markdown view of GeekNews topic #14513. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=14513](https://news.hada.io/topic?id=14513)
- GeekNews Markdown: [https://news.hada.io/topic/14513.md](https://news.hada.io/topic/14513.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2024-04-26T10:43:02+09:00
- Updated: 2024-04-26T10:43:02+09:00
- Original source: [deno.com](https://deno.com/blog/jsr-is-not-another-package-manager)
- Points: 7
- Comments: 3

## Topic Body

### JSR - 자바스크립트 패키지 공유를 위한 새로운 레지스트리  
  
- 지난 몇 년 동안 yarn이나 pnpm 같은 새로운 패키지 매니저가 등장하며 패키지 다운로드 방식을 개선해 왔음  
- 하지만 자바스크립트 생태계의 핵심인 npm 패키지 레지스트리는 거의 진화하지 않았음  
  - 마지막 주목할 만한 업데이트는 수년 전에 추가된 "files" 탭이었음  
- 활발히 진화하는 것으로 알려진 자바스크립트 언어가 역설적이게도 시대에 뒤떨어진 배포 모델에 발목 잡혀 있는 것처럼 보임  
  
### 자바스크립트 모듈 시스템의 문제점  
  
- Node를 만들 당시에는 자바스크립트용 표준 모듈 시스템이 없었기에, npm 레지스트리와 Node는 근본적인 결함이 있는 CommonJS(`require`) 시스템을 기본으로 채택했음   
  - 이는 브라우저에서는 작동하지 않는 시스템이었음  
- 거의 10년 전인 2015년에 언어 자체적으로 ES 모듈(`import`) 문법을 채택함  
- 오늘날 대부분의 자바스크립트는 ES 모듈을 사용해 작성되지만, 이러한 모듈을 배포하는 경로는 여전히 복잡함  
  - 특히 TypeScript가 관련된 경우 더욱 그러함  
- 이러한 생태계의 명백한 격차로 인해 JSR이 탄생하게 됨  
  - JSR은 또 다른 패키지 매니저가 아니라 서버 사이드 런타임, 브라우저, 다양한 도구에서 자바스크립트와 타입스크립트를 공유하는 방식을 혁신하기 위해 설계된 변혁적인 레지스트리임  
  
### JSR의 특징과 이점  
  
- JSR은 오랫동안 개발자들을 괴롭혔던 복잡성을 간소화함으로써 코드 배포 프로세스를 근본적으로 개선함  
- ESM 전용이고 TypeScript 우선인 JSR은 `package.json` 설정과 미궁 같은 tsconfig 컴파일러 옵션의 불편한 조정을 제거함  
- 패키지 스코어링 시스템을 통해 JSR은 코드 배포의 모범 사례를 장려함  
  - Dart 커뮤니티의 pub.dev와 유사하게, 내보내는 각 심볼에 대한 포괄적인 JSDoc 문서를 포함하는 패키지에 더 높은 점수를 부여함  
- Go나 Rust 같은 다른 최신 프로그래밍 생태계에서 볼 수 있듯이, JSR은 기본적으로 자동 문서 생성 기능을 제공함  
  
### npm과의 관계  
  
- JSR은 레지스트리이지, npm 레지스트리용 또 다른 클라이언트가 아님  
  - 하지만 이는 npm의 모든 것을 포기하거나 분리된 자바스크립트 모듈 생태계로 전환해야 한다는 의미는 아님  
- JSR은 npm 레지스트리를 보완하도록 설계되었지 npm을 대체하려는 것이 아님  
  - JSR 패키지는 npm 패키지에 의존할 수 있음 (예: 이 패키지 참조)  
- 또한 JSR 패키지는 기존의 npm 중심 소프트웨어에서 사용될 수 있음  
  - JSR 자체가 npm 호환 tarball을 배포하는 npm 레지스트리(npm.jsr.io에서 접근 가능)로 작동하기 때문  
  - 이를 통해 JSR 패키지를 npm, yarn 또는 pnpm을 사용하는 모든 소프트웨어에 포함하고 프라이빗 레지스트리와 통합할 수 있음  
- JSR이 배포하는 npm tarball은 최적화되어 있음  
  
### 보안 중시  
  
- Deno에서는 자바스크립트 개발에서 보안을 최우선 과제로 삼음  
- 어떤 레지스트리도 게시된 모든 코드를 포괄적으로 감시할 수는 없지만, JSR은 발행자에 대한 투명성을 제공하고 발행 프로세스를 보호함  
- GitHub Actions와 OIDC 토큰을 통합함으로써 JSR은 소프트웨어 아티팩트를 위한 공급망 수준을 사용하여 고급의 검증 가능한 출처 증명을 생성하고 이를 Sigstore에 저장함  
  - 이는 코드의 진위를 보장할 뿐만 아니라 개발자가 구현하는 내용에 대한 신뢰와 책임을 확립함   
  
### 자바스크립트 개발의 중심지  
  
- 자바스크립트는 많은 프로그래머의 공통 언어로 보편적이고 접근성이 뛰어남  
- 이 언어는 개발자들이 불필요한 복잡성 없이 작업물을 공유할 수 있는 중앙 허브, 즉 타운스퀘어가 필요함  
- 우리는 자바스크립트가 앞으로 많은 세월 동안 소프트웨어 개발의 중심이 될 것이라 믿으며, JSR은 이러한 지속적인 연관성을 지원하는 것을 목표로 함  
- JSR은 단순히 생태계의 또 다른 도구가 아니라 우리가 자바스크립트와 타입스크립트 배포에 대해 생각하는 방식의 근본적인 변화를 나타냄

## Comments



### Comment 24799

- Author: yangeok
- Created: 2024-04-30T10:09:35+09:00
- Points: 1

jsr은 npm에서 다운받을 수 있었던 것 같은딩,, ㅋㅋㅋ

### Comment 24719

- Author: zzzz2222
- Created: 2024-04-26T17:35:50+09:00
- Points: 1

망해라 php

### Comment 24763

- Author: semjei
- Created: 2024-04-29T07:18:35+09:00
- Points: 1
- Parent comment: 24719
- Depth: 1

JS글에서 왜 PHP을??   
PHP 플젝 하고 있는 입장에서 맘이 쓰립니다.
