More Related Content
Similar to 패키지 매니저의 요건 (15)
More from Ohgyun Ahn (18)
패키지 매니저의 요건
- 2. 패키지 매니저란?
• 패키지 매니저 = 패키지 매니지먼트 시스템
• 설치/업데이트/설정/삭제를 자동화해주는 툴
• 소프트웨어의 의존성이나 버전 정보를 관리
- 4. 패키지 매니저의 예
• App store, Google play, Chrome web store, ...
• Cygwin, MacPorts, Homebrew, ...
• Maven, EasyInstall, RubyGems, npm, ...
- 5. 패키지 매니저의 요건
• 패키지의 설치
• 패키지의 의존성 관리
• 의존하는 패키지의 버전 관리
• 패키지의 검색
• 패키지의 배포
- 6. 패키지의 설치
• 패키지를 설치/삭제할 수 있는 방법 제시
• 패키지 구조에 대한 컨벤션을 명확히 정의
• 엔드 유저는 패키지 매니저의 사용법만 익히면 되도록
- 7. 패키지의 의존성 관리
• 패키지 간 의존성 관리를 할 수 있어야 함
• foo라는 패키지가 bar/baz에 의존적이면,
패키지 매니저가 이를 알고 함께 설치해야 함
• 대부분 특정 버전에 의존적이므로,
호환 가능한 버전의 패키지가 설치되어야 함
- 8. 의존하는 패키지의 버전 관리
• 의존하고 있는 패키지의 버전 관리가 용이해야 함
• 어떤 사용자는 현재 사용하고 있는 안정화 버전을,
다른 사용자는 항상 최신 버전을 유지하려 함
• 사용자가 원하는 방법을 사용할 수 있어야 함
- 9. 패키지의 검색
• 새로운 패키지 검색이 용이해야 함
• 다른 패키지가 이미 해결한 문제라 생각된다면,
패키지 매니저에서 해당 목록을 검색할 수 있어야 함
- 10. 패키지의 배포
• 패키지 제작자가 패키지를 배포할 수 있는 도구 제시
• 사용자가 쉽게 찾아낼 수 있는 곳에 배포되어야 함
- 11. npm의 예: 설치
$ npm install foo
• 모듈은 node_modules/foo 디렉토리에 설치
• 사용자는 고민없이 npm install <module>을 실행
- 12. npm의 예: 의존성 관리
• package.json 의 dependencies 항목에 의존성 관리
• 의존 모듈을 자동으로 설치
• 의존하는 패키지의 버전을 명시할 수 있음
- 13. npm의 예: 검색
$ npm search <keyword>
• 키워드로 모듈 목록 검색 가능
• package.json 의 keywords 항목에서
검색용 키워드를 등록할 수 있음
$ npm info <module>
• 모듈의 상세 정보 조회 가능
- 14. npm의 예: 배포
$ npm publish <module>
• publish 명령어로 npm registry 에 배포 가능
• 배포한 모듈은 npm install <module> 로 설치 가능
• npm search <keyword> 로 검색 대상이 됨
- 15. 참고
• Package Management System
• List of Software Package Management System
• The State of JavaScript Package Management