개발팀에서 조직의 지식을 수집하고 보존하는 유용한 방법 중 하나는 유용한 스니펫, 스크립트 또는 워크플로우 모음을 늘리는 것
그래서 많은 리포지토리에 Makefile, bash 스크립트 같은 것들이 만들어짐
조직 전반에 걸쳐서 유용한 도구 설치, 상용구 코드 생성, 아무도 기억하지 못하는 복잡한 AWS 명령 실행 같은 것은 어떻게 해야 할까?
Slack이나 Shopify와 같은 일부 회사에는 자체 내부 CLI가 있음
최신 터미널인 Warp에는 워크플로를 문서화하고 공유할 수 있는 기능이 있음
조직 내부용 CLI는 쉽게 만들수 있음. 예로 acme란 회사용 CLI를 제작해 봄
CLI 설계 요구사항
acme <command>로 어디서든 명령어를 실행할 수 있는 공통 진입점을 가짐
모든 개발자는 특정 리포지토리로 먼저 이동할 필요 없이 어디서나 acme <command>를 실행하여 명령을 트리거할 수 있음
개발자들이 새 명령어를 쉽게 기여할 수 있도록 함
acme update로 새 버전을 쉽게 배포할 수 있게 함
크로스 플랫폼 지원(예: acme download something을 하면 Linux에서는 curl, Windows에서는 Invoke-WebRequest 사용)
acme list로 사용 가능한 명령어 목록과 간단한 설명을 볼 수 있게 함
acme <command>로 어디서든 명령어를 실행할 수 있는 공통 진입점을 가짐
모든 개발자는 특정 리포지토리로 먼저 이동할 필요 없이 어디서나 acme <command>를 실행하여 명령을 트리거할 수 있음
개발자들이 새 명령어를 쉽게 기여할 수 있도록 함
acme update로 새 버전을 쉽게 배포할 수 있게 함
크로스 플랫폼 지원(예: acme download something을 하면 Linux에서는 curl, Windows에서는 Invoke-WebRequest 사용)
acme list로 사용 가능한 명령어 목록과 간단한 설명을 볼 수 있게 함
just를 사용해 프로젝트 시작하기
just는 make와 유사하지만 명령어 실행에 특화된 도구임
크로스 플랫폼을 지원하고 플랫폼 특화 명령어도 실행 가능함
다른 옵션으로는 Slack의 magic-cli(Ruby를 잘 안다면 시작하기에 훌륭함)나 make가 있음
프로젝트 세팅하기
just 설치. 여기 지침 따르기
~/acme/cli 폴더 만들고 루트에 다음 justfile 추가:
Reaction
Comment
Share