패키지 매니저의 요건

15
npm으로 알아보는 패키지 매니저의 요건 안오균

Upload: ohgyun-ahn

Post on 10-Dec-2014

848 views

Category:

Documents


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 패키지 매니저의 요건

npm으로 알아보는

패키지 매니저의 요건

안오균

Page 2: 패키지 매니저의 요건

패키지 매니저란?

• 패키지 매니저 = 패키지 매니지먼트 시스템

• 설치/업데이트/설정/삭제를 자동화해주는 툴

• 소프트웨어의 의존성이나 버전 정보를 관리

Page 3: 패키지 매니저의 요건

패키지란?

• 소프트웨어나 애플리케이션, 데이터의 '배포판'

• 소프트웨어의 메타데이터도 포함

(이름, 설명, 버전, 벤더, 체크섬, 의존성 목록 등)

Page 4: 패키지 매니저의 요건

패키지 매니저의 예

• App store, Google play, Chrome web store, ...

• Cygwin, MacPorts, Homebrew, ...

• Maven, EasyInstall, RubyGems, npm, ...

Page 5: 패키지 매니저의 요건

패키지 매니저의 요건

• 패키지의 설치

• 패키지의 의존성 관리

• 의존하는 패키지의 버전 관리

• 패키지의 검색

• 패키지의 배포

Page 6: 패키지 매니저의 요건

패키지의 설치

• 패키지를 설치/삭제할 수 있는 방법 제시

• 패키지 구조에 대한 컨벤션을 명확히 정의

• 엔드 유저는 패키지 매니저의 사용법만 익히면 되도록

Page 7: 패키지 매니저의 요건

패키지의 의존성 관리

• 패키지 간 의존성 관리를 할 수 있어야 함

• foo라는 패키지가 bar/baz에 의존적이면,

패키지 매니저가 이를 알고 함께 설치해야 함

• 대부분 특정 버전에 의존적이므로,

호환 가능한 버전의 패키지가 설치되어야 함

Page 8: 패키지 매니저의 요건

의존하는 패키지의 버전 관리

• 의존하고 있는 패키지의 버전 관리가 용이해야 함

• 어떤 사용자는 현재 사용하고 있는 안정화 버전을,

다른 사용자는 항상 최신 버전을 유지하려 함

• 사용자가 원하는 방법을 사용할 수 있어야 함

Page 9: 패키지 매니저의 요건

패키지의 검색

• 새로운 패키지 검색이 용이해야 함

• 다른 패키지가 이미 해결한 문제라 생각된다면,

패키지 매니저에서 해당 목록을 검색할 수 있어야 함

Page 10: 패키지 매니저의 요건

패키지의 배포

• 패키지 제작자가 패키지를 배포할 수 있는 도구 제시

• 사용자가 쉽게 찾아낼 수 있는 곳에 배포되어야 함

Page 11: 패키지 매니저의 요건

npm의 예: 설치

$ npm install foo

• 모듈은 node_modules/foo 디렉토리에 설치

• 사용자는 고민없이 npm install <module>을 실행

Page 12: 패키지 매니저의 요건

npm의 예: 의존성 관리

• package.json 의 dependencies 항목에 의존성 관리

• 의존 모듈을 자동으로 설치

• 의존하는 패키지의 버전을 명시할 수 있음

Page 13: 패키지 매니저의 요건

npm의 예: 검색

$ npm search <keyword>

• 키워드로 모듈 목록 검색 가능

• package.json 의 keywords 항목에서

검색용 키워드를 등록할 수 있음

$ npm info <module>

• 모듈의 상세 정보 조회 가능

Page 14: 패키지 매니저의 요건

npm의 예: 배포

$ npm publish <module>

• publish 명령어로 npm registry 에 배포 가능

• 배포한 모듈은 npm install <module> 로 설치 가능

• npm search <keyword> 로 검색 대상이 됨