
bscaff는 프로젝트 구조와 파일, 코드 조각, Git 저장소, URL, 템플릿을 저장했다가 필요할 때 다시 꺼내 쓰는 크로스플랫폼 명령줄 도구(CLI)다. 다만 현재 불안정한 사전 출시 단계로, 치명적인 버그가 있을 수 있고 운영 환경이나 자동화된 중요 작업에는 사용하지 말라고 안내한다. 명령줄 옵션과 설정 문법, 출력은 예고 없이 바뀔 수 있다.
설치와 실행
설치에는 Node.js 22.11.0 이상이 필요하며, 템플릿을 다룰 때는 Git도 필요하다.
npm install -g @akashnag/bscaff
설치 여부와 사용 가능한 명령을 확인한다.
bscaff --version
bscaff --help
소스에서 직접 빌드하려면 Node.js v22.11.0 이상과 npm이 필요하다. 템플릿을 사용할 경우 Git도 설치해야 한다.
git clone https://github.com/akashnag/bscaff.git
cd bscaff
npm install
npm run build
빌드된 코드는 dist 디렉터리에 생성된다. 전역 링크를 만들어 어디서든 CLI를 실행하려면 다음과 같이 한다.
npm link
bscaff --help
시험을 마친 뒤 링크를 제거할 수 있다.
npm unlink -g bscaff
전역 링크를 만들지 않으려면 컴파일된 진입점을 직접 실행한다.
node dist/index.js --help
반복해서 빌드하지 않고 개발 모드로 실행할 수도 있다.
npm run dev
저장한 프로젝트와 템플릿 재사용
기존 디렉터리를 스냅샷으로 저장하고 새 위치에 추출하는 기본 명령은 다음과 같다.
bscaff --key my-project save tree ./my-project
bscaff --key my-project extract ./new-project
저장된 스냅샷 전체를 확인하거나 특정 스냅샷의 내용을 살펴볼 수 있다.
bscaff list
bscaff --key my-project list
디렉터리와 파일을 포함한 프로젝트 구조를 저장하고 다시 만들 수도 있다.
bscaff --key node-api save dir ./node-api
bscaff --key node-api extract ./new-api
기존 디렉터리에서 재사용 템플릿을 만든다.
bscaff --key web-app template create ./web-app
템플릿은 저장하고 공유해 프로젝트 뼈대를 만드는 데 사용할 수 있다. 변수 입력을 요청하거나 생성 전후에 명령을 실행하도록 설정할 수 있다.
bscaff는 완성된 프로젝트 외에도 디렉터리, 여러 파일, 개별 파일, 파일에서 가져온 텍스트와 코드 조각, 직접 입력한 텍스트, URL, Git 저장소나 ZIP 파일의 템플릿을 저장한다. 예를 들면 다음과 같다.
bscaff --key dockerfile save files ./Dockerfile
bscaff --key common-utils save files ./utils.ts ./constants.ts
bscaff --key useful-url save url https://example.com/docs
Git 저장소도 재사용 가능한 스냅샷으로 저장할 수 있다. 저장할 때 .git 디렉터리는 포함되지 않는다.
bscaff --key my-template template save https://github.com/example/project.git --source git
저장한 템플릿은 필요할 때 새 위치에 추출한다.
AI가 만든 구조와 변수 활용
AI 코딩 도구에서 복사한 프로젝트 트리를 실제 디렉터리 구조로 만들 수 있다. 예를 들어 클립보드에 다음과 같은 구조가 있다면 create tree 명령으로 생성한다.
my-app/
├── src/
│ ├── index.ts
│ └── utils.ts
├── package.json
└── README.md
bscaff create tree ./my-app
파일을 만들 때 내용을 입력하도록 요청할 수도 있다. 이 기능은 AI가 제안한 프로젝트 구조를 디렉터리와 파일로 옮길 때 각 항목을 직접 만들지 않아도 되게 한다.
파일명과 디렉터리명, 텍스트 파일 내용에는 {{ variable }} 형식의 변수를 사용할 수 있다. 저장한 프로젝트 하나를 여러 프로젝트의 바탕으로 활용하는 방식이다. 변수 치환은 settings.yml 또는 템플릿 설정 파일인 bscaff-template.config.yml에서 제어한다.
{{ projectName }}/
├── src/
│ ├── {{ projectName }}.ts
│ └── utils.ts
├── package.json
└── README.md
파일 활용과 설정
저장한 콘텐츠를 명령줄에서 바로 활용할 수 있다. 예를 들어 다음 명령은 저장된 콘텐츠를 클립보드에 복사한다.
bscaff --key config copy
저장한 파일과 텍스트를 열어 편집하거나 살펴볼 수도 있다. 템플릿에는 추출 전후에 실행할 스크립트를 선택적으로 지정할 수 있어, 프로젝트별 설정이나 정리 작업을 스캐폴딩 과정에 넣을 수 있다.
bscaff는 Linux, macOS, Windows에서 사용할 수 있도록 설계됐다. 편집기와 브라우저, 터미널의 플랫폼별 기본 설정은 설정 파일에서 지정한다. 데이터와 설정은 ~/.bscaff/ 아래에 저장되며, 설정 파일은 ~/.bscaff/settings.yml이다. 설정 예시는 다음과 같다.
textEditor: nano
browser: google-chrome
exclude:
- .git
- .vscode
- node_modules
- __pycache__
- .pytest_cache
include: []
templatesSuffix: .jinja
설정 파일을 편집하려면 다음 명령을 실행한다.
bscaff settings
기능과 전체 설정은 기능 문서에서 확인할 수 있다. 기여 지침은 CONTRIBUTING.md, 행동 강령과 개발 정보는 CODE_OF_CONDUCT.md에 있다.
bscaff는 GNU General Public License v2.0으로 배포된다. 제작자는 Akash Nag다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요