본문으로 건너뛰기

Caffeine CLI 사용자 매뉴얼

📖 목차

  1. 개요
  2. 설치 및 설정
  3. 명령어 참조
  4. 템플릿 시스템
  5. 사용 예시
  6. 트러블슈팅
  7. FAQ

개요

Caffeine CLI는 Caffeine IoT 플랫폼 기반 프로젝트를 빠르고 쉽게 생성, 관리, 배포할 수 있는 명령줄 도구입니다.

주요 기능

  • 🚀 배포 환경 구성: cafe setup 대화형 위자드로 Docker 환경 원클릭 구성
  • 환경 진단: 개발 환경의 필수 요소 (SDK, Docker, 포트) 검증
  • 🏗️ 프로젝트 생성: 템플릿 기반 드라이버 및 앱 프로젝트 생성
  • 📦 패키징: NuGet 패키지 빌드 및 배포
  • 🔧 버전 관리: CLI 및 런타임 버전 정보 확인

지원 환경

  • .NET SDK: 10.0 이상
  • OS: Windows, Linux, macOS
  • PowerShell: 5.1 이상 (Windows)

설치 및 설정

전제 조건

Caffeine CLI를 사용하기 전에 다음 도구가 설치되어 있어야 합니다:

  1. .NET 10.0 SDK

    dotnet --version
    # 출력 예: 10.0.102
  2. Docker (선택사항, doctor 명령어 사용 시)

    docker --version
    # 출력 예: Docker version 24.0.7
  3. Git (선택사항, --git 옵션 사용 시)

    git --version
    # 출력 예: git version 2.42.0

CLI 빌드 및 실행

1. 소스에서 빌드

# CLI 프로젝트 빌드
dotnet build src/Caffeine.Cli

# 별칭 설정 (선택사항)
# Windows (PowerShell)
Set-Alias cafe "dotnet run --project src/Caffeine.Cli --"

# Linux/macOS (Bash)
alias cafe='dotnet run --project src/Caffeine.Cli --'

2. NuGet 글로벌 도구 설치 (권장)

# NuGet에서 글로벌 도구 설치
dotnet tool install -g NEXCODE.Caffeine.Cli

# 사용
cafe --help

# 업데이트
dotnet tool update -g NEXCODE.Caffeine.Cli

명령어 참조

전체 명령어 구조


doctor 명령어

목적: 개발 환경의 상태를 진단하고 필수 요소가 올바르게 설치되었는지 확인합니다.

사용법

cafe doctor

검사 항목

항목검사 내용기대 결과
.NET SDKdotnet --version 실행버전 10.0 이상
Dockerdocker --version 실행Docker가 설치 및 실행 중
Redis 포트TCP 6379 포트 확인사용 가능 또는 이미 사용 중
MQTT 포트TCP 1883 포트 확인사용 가능 또는 이미 사용 중
Kafka 포트TCP 9092 포트 확인사용 가능 또는 이미 사용 중

출력 예시

  ____   ___   ____ _____ ___  ____  
| _ \ / _ \ / ___|_ _/ _ \| _ \
| | | | | | | | | || | | | |_) |
| |_| | |_| | |___ | || |_| | _ <
|____/ \___/ \____| |_| \___/|_| \_\

Diagnosing your development environment...

┌────────────────┬─────────────────────────┬────────┐
│ Component │ Version/Status │ Status │
├────────────────┼─────────────────────────┼────────┤
│ .NET SDK │ 10.0.102 │ ✓ OK │
│ Docker │ 24.0.7 │ ✓ OK │
│ Redis (6379) │ Available │ ✓ OK │
│ MQTT (1883) │ In Use │ ⚠ WARN │
│ Kafka (9092) │ Available │ ✓ OK │
└────────────────┴─────────────────────────┴────────┘

System is ready for Caffeine development!

트러블슈팅

  • Docker 없음: Docker Desktop 설치 또는 Linux에서 Docker Engine 설치
  • 포트 사용 중: 해당 서비스가 이미 실행 중이므로 정상입니다
  • .NET SDK 버전 오류: dotnet --list-sdks로 설치된 버전 확인 후 업그레이드

init 명령어

목적: 템플릿 기반으로 새로운 Caffeine 프로젝트를 생성합니다.

사용법

# 대화형 모드
cafe init

# 비대화형 모드
cafe init --name <프로젝트명> --template <템플릿> [옵션]

옵션

옵션축약형설명기본값필수
--name-n프로젝트 이름-❌ (대화형)
--template-t템플릿 유형 (driver, app, driver-full, solution)-❌ (대화형)
--output-o출력 디렉토리현재 디렉토리
--git-gGit 저장소 초기화false

템플릿 종류

템플릿설명생성 파일
driver기본 드라이버 프로젝트.csproj, DriverService.cs, README.md
appCaffeine 클라이언트 앱.csproj, Program.cs, README.md
driver-full드라이버 + 테스트 프로젝트src/, tests/ (완전한 구조)
solution솔루션 템플릿.gitignore

프로젝트 이름 규칙

프로젝트 이름은 다음 규칙을 준수해야 합니다:

  • ✅ 영문자로 시작
  • ✅ 영문자, 숫자, 하이픈(-), 밑줄(_) 사용 가능
  • ❌ 숫자로 시작 불가
  • ❌ 특수문자 (!@#$%^&*() 등) 사용 불가
  • ❌ Windows 예약어 (CON, PRN, AUX, NUL 등) 사용 불가
  • ❌ 공백 포함 불가

유효한 이름 예시: ModbusDriver, OpcUa-Client, My_Driver_2024
유효하지 않은 이름 예시: 123Driver, My Driver!, CON

워크플로우

사용 예시

예시 1: 대화형 모드
$ cafe init

____ __ ___ _ __
/ ___|__ _ / _| ___ |_ _|_ __ (_) __|
| | / _` | |_ / _ \ | || '_ \| | __|
| |__| (_| | _| __/ | || | | | | |_
\____\__,_|_| \___| |___|_| |_|_|\__|

What is the name of your project?
> ModbusDriver

Choose a template:
driver
app
> driver-full
solution

Creating driver-full project: ModbusDriver

✅ Successfully created ModbusDriver!

Generated files:
• src\ModbusDriver.csproj
• src\ModbusDriver.cs
• tests\ModbusDriver.Tests.csproj
• tests\ModbusDriverTests.cs

Next steps:
cd ModbusDriver
dotnet restore
dotnet build
dotnet test
예시 2: 비대화형 모드
$ cafe init --name OpcUaDriver --template driver --output ./projects --git

Creating driver project: OpcUaDriver

✅ Successfully created OpcUaDriver!

Generated files:
• OpcUaDriver.csproj
• OpcUaDriver.cs
• README.md

Initializing Git repository...
✅ Git repository initialized successfully

Next steps:
cd OpcUaDriver
dotnet restore
dotnet build

생성된 프로젝트 구조

driver 템플릿
MyDriver/
├── MyDriver.csproj
├── MyDriver.cs
└── README.md
driver-full 템플릿
MyDriver/
├── src/
│ ├── MyDriver.csproj
│ └── MyDriver.cs
└── tests/
├── MyDriver.Tests.csproj
└── MyDriverTests.cs

version 명령어

목적: Caffeine CLI 및 런타임 버전 정보를 표시합니다.

사용법

cafe version

출력 예시

__     __            _             
\ \ / /__ _ __ ___(_) ___ _ __
\ \ / / _ \ '__/ __| |/ _ \| '_ \
\ V / __/ | \__ \ | (_) | | | |
\_/ \___|_| |___/_|\___/|_| |_|

┌──────────────────┬──────────────────────┐
│ Property │ Value │
├──────────────────┼──────────────────────┤
│ CLI Version │ 0.9.0-prototype │
│ Assembly Version │ 0.9.0 │
│ .NET Runtime │ .NET 10.0.2 │
│ Operating System │ Microsoft Windows 11 │
│ Architecture │ X64 │
└──────────────────┴──────────────────────┘

For more information, visit: https://www.nexcode.co.kr/caffeine

정보 설명

  • CLI Version: 사용자에게 표시되는 버전 (InformationalVersion)
  • Assembly Version: 어셈블리 파일 버전
  • .NET Runtime: 현재 실행 중인 .NET 런타임 버전
  • Operating System: 운영 체제 정보
  • Architecture: CPU 아키텍처 (X64, ARM64 등)

package 명령어

목적: 현재 프로젝트를 NuGet 패키지로 빌드하고 NuGet 피드에 배포합니다.

사용법

# 프로젝트 디렉토리에서 실행
cd src/MyDriver
cafe package

전제 조건

  1. 현재 디렉토리가 Caffeine 프로젝트 (.csproj 파일에 Caffeine.Core 또는 Caffeine.Client 참조 포함)
  2. publish_local.ps1 스크립트가 scripts/ 디렉토리에 존재

워크플로우

출력 예시

 ____            _                    
| _ \ __ _ ___| | ____ _ __ _ ___
| |_) / _` |/ __| |/ / _` |/ _` |/ _ \
| __/ (_| | (__| < (_| | (_| | __/
|_| \__,_|\___|_|\_\__,_|\__, |\___|
|___/

Building NuGet package...

✅ Package built successfully

Package has been published to NuGet feed.

에러 메시지

1. Caffeine 프로젝트가 아닌 경우
❌ Not a Caffeine project directory.
Please run this command in a directory containing a Caffeine project (.csproj with Caffeine references).

해결: Caffeine.Core 또는 Caffeine.Client를 참조하는 프로젝트 디렉토리에서 실행

2. 스크립트 없음
❌ publish_local.ps1 script not found. Please ensure you are in a Caffeine project directory.

💡 Tip: Ensure publish_local.ps1 exists in scripts/ directory.

해결: 프로젝트 루트에 scripts/publish_local.ps1 파일 확인


events 명령어

목적: 시스템에 등록된 이벤트 카탈로그를 조회합니다.

서브커맨드 구조

cafe events <서브커맨드> [옵션]
서브커맨드설명
list등록된 이벤트 전체 목록 출력
show <eventName>특정 이벤트의 상세 정보 출력

events list

모든 등록된 이벤트를 테이블 형식으로 출력합니다.

사용법
cafe events list [옵션]
옵션
옵션축약형설명기본값
--severity-s심각도 필터 (Debug, Info, Warning, Error, Critical)전체
--assembly-a어셈블리 이름 필터 (부분 일치)전체
출력 예시
 _____                 _
| ____|_ _____ _ __ | |_ ___
| _| \ \ / / _ \ '_ \| __/ __|
| |___ \ V / __/ | | | |_\__ \
|_____| \_/ \___|_| |_|\__|___/

╭─────────────────────────────┬──────────┬──────────────────────────────────────┬──────────────────────────────╮
│ Event Name │ Severity │ Description │ Assembly │
├─────────────────────────────┼──────────┼──────────────────────────────────────┼──────────────────────────────┤
│ DeviceConnected │ Info │ 장치 연결 성공 │ Caffeine.Core │
│ DeviceDisconnected │ Warning │ 장치 연결 해제 │ Caffeine.Core │
│ DataIngestionFailed │ Error │ 데이터 수집 실패 │ Caffeine.Engine │
│ AlarmTriggered │ Critical │ 알람 발생 │ Caffeine.Engine │
╰─────────────────────────────┴──────────┴──────────────────────────────────────┴──────────────────────────────╯

Total: 4 event(s)
필터링 예시
# 심각도 Error 이상만 조회
cafe events list --severity Error

# 특정 어셈블리 이벤트만 조회
cafe events list --assembly Caffeine.Engine

# 심각도 + 어셈블리 복합 필터
cafe events list -s Warning -a Caffeine.Core

events show

특정 이벤트의 상세 정보를 출력합니다.

사용법
cafe events show <eventName>
인수
인수설명필수
eventName조회할 이벤트 이름 (정확한 이름)
출력 예시
$ cafe events show DeviceConnected
 _____                 _
| ____|_ _____ _ __ | |_
| _| \ \ / / _ \ '_ \| __|
| |___ \ V / __/ | | | |_
|_____| \_/ \___|_| |_|\__|

╭──────────────┬────────────────────────────────╮
│ Event Name │ DeviceConnected │
│ Description │ 장치 연결 성공 │
│ Severity │ Info │
│ Type │ Caffeine.Core.Events.DeviceConnectedEvent │
│ Assembly │ Caffeine.Core │
╰──────────────┴────────────────────────────────╯
이벤트를 찾지 못한 경우
$ cafe events show UnknownEvent
❌ Event 'UnknownEvent'을 찾을 수 없습니다.

심각도(Severity) 종류

설명표시 색상
Debug디버그 정보회색
Info일반 정보청록색
Warning주의 필요노란색
Error오류 발생빨간색
Critical심각한 오류자주색

setup 명령어

목적: Caffeine 배포 환경을 대화형 위자드로 구성합니다. Docker Compose 프로파일 선택, .env 자동 생성, Production 보안 검증, 원격 SSH 배포를 단계적으로 안내합니다.

사용법

# 대화형 위자드 (가장 일반적인 사용법)
cafe setup

# Production 모드 (보안 체크리스트 포함)
cafe setup --mode production

# 원격 SSH 배포
cafe setup --remote ssh://user@192.168.1.100

옵션

옵션단축키기본값설명
--mode-mdevelopment배포 모드 (development | production)
--remote원격 Docker SSH URL (예: ssh://user@host)

지원 프로파일

프로파일서비스용도
minimalRedis, MQTT드라이버 개발 최소 환경
standard+ InfluxDB, Kafka표준 개발환경 (권장)
full+ TypeDB, Grafana전체 기능 개발
full+monitoring+ Prometheus운영 모니터링 포함
app+ Caffeine Engine, Admin소스 없이 앱 실행

서브커맨드

setup status — 서비스 상태 확인
# 실행 중인 Docker Compose 서비스 목록
cafe setup status

# HTTP /health 엔드포인트 폴링 포함
cafe setup status --health

# 원격 서버 상태 확인
cafe setup status --remote ssh://user@host
옵션단축키설명
--health-HHTTP /health 엔드포인트 폴링
--remote원격 Docker SSH URL
setup down — 서비스 중지
cafe setup down
cafe setup down --remote ssh://user@host
setup extract — 배포 파일 추출

CLI에 내장된 docker-compose.yml, .env.example 등의 배포 파일을 추출합니다.

# 현재 디렉토리에 추출
cafe setup extract

# 특정 경로에 추출
cafe setup extract --output ./deploy

# 특정 프로파일 파일만 추출
cafe setup extract --profile minimal

# 내장 리소스 목록 확인
cafe setup extract --list

# 기존 파일 덮어쓰기
cafe setup extract --force
옵션단축키기본값설명
--output-o현재 디렉토리추출 대상 경로
--force-ffalse기존 파일 덮어쓰기
--list-lfalse리소스 목록만 표시
--profile-p특정 프로파일 파일만 추출

출력 예시

   ____         __       ____       __
/ ___|__ _ / _| ___ / ___| ___| |_ _ _ _ __
| | / _` | |_ / _ \ \___ \ / _ \ __| | | | '_ \
| |__| (_| | _| __/ ___) | __/ |_| |_| | |_) |
\____\__,_|_| \___| |____/ \___|\__|\__,_| .__/
|_|
Caffeine 배포 환경 구성 마법사

사전 검증 중...
✅ Docker: 설치됨 (24.0.7)
✅ Docker 데몬: 실행 중
✅ Docker Compose: 사용 가능 (v2.23.0)

? 배포 프로파일을 선택하세요:
Minimal (드라이버 개발용)
❯ Standard (표준 개발환경 — 권장)
Full (전체 기능)
Full + Monitoring (운영 모니터링)
App (소스 없이 실행)

자세한 내용은 배포 위자드 가이드를 참조하세요.


템플릿 시스템

Caffeine CLI는 Embedded Resource로 템플릿을 관리하며, 프로젝트 생성 시 변수를 치환합니다.

템플릿 변수

모든 템플릿 파일(.template)에서 사용 가능한 변수:

변수설명예시
{{ProjectName}}사용자가 입력한 프로젝트 이름ModbusDriver
{{Namespace}}C# 네임스페이스 (하이픈/공백 → 밑줄)Modbus_Driver
{{ClassName}}C# 클래스명 (하이픈/공백 제거)ModbusDriver
{{Year}}현재 연도2026
{{Month}}현재 월 (2자리)01
{{Day}}현재 일 (2자리)28
{{Author}}시스템 사용자명matrix

템플릿 구조

driver 템플릿

Templates/driver/
├── Driver.csproj.template
├── DriverService.cs.template
└── README.md.template

파일 변환 예시:

  • Driver.csproj.templateModbusDriver.csproj
  • DriverService.cs.templateModbusDriver.cs

driver-full 템플릿

Templates/driver-full/
├── src/
│ ├── Driver.csproj.template
│ └── DriverService.cs.template
└── tests/
├── DriverTests.csproj.template
└── DriverServiceTests.cs.template

디렉토리 구조 유지: src/, tests/ 디렉토리가 그대로 생성됩니다.

템플릿 예시

Driver.csproj.template

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<RootNamespace>{{Namespace}}</RootNamespace>
<Authors>{{Author}}</Authors>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="NEXCODE.Caffeine.Core" Version="2.0.*" />
</ItemGroup>
</Project>

치환 후 (프로젝트명: ModbusDriver):

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<RootNamespace>ModbusDriver</RootNamespace>
<Authors>matrix</Authors>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="NEXCODE.Caffeine.Core" Version="2.0.*" />
</ItemGroup>
</Project>

사용 예시

시나리오 1: Modbus 드라이버 개발

요구사항: Modbus TCP 프로토콜을 지원하는 드라이버 개발

# 1. 프로젝트 생성 (테스트 포함)
cafe init --name ModbusTcpDriver --template driver-full --git

cd ModbusTcpDriver

# 2. 의존성 복원 및 빌드
dotnet restore
dotnet build

# 3. 테스트 실행
dotnet test

# 4. 구현 후 패키징
cd src
cafe package

시나리오 2: 데이터 수집 앱 개발

요구사항: Caffeine 클라이언트를 사용한 데이터 수집 앱

# 1. 프로젝트 생성
cafe init -n DataCollectorApp -t app -o ./projects

cd projects/DataCollectorApp

# 2. Program.cs 수정 (비즈니스 로직 추가)
# ... 코드 작성 ...

# 3. 실행
dotnet run

시나리오 3: CI/CD 파이프라인

GitHub Actions 예시:

name: Build and Package

on:
push:
branches: [ main ]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '10.0.x'

- name: Diagnose Environment
run: dotnet run --project src/Caffeine.Cli -- doctor

- name: Build Project
run: dotnet build src/MyDriver

- name: Run Tests
run: dotnet test tests/MyDriver.Tests

- name: Package
run: dotnet run --project src/Caffeine.Cli -- package
working-directory: src/MyDriver

트러블슈팅

문제 1: "Not a valid project name" 에러

증상:

❌ Invalid project name: Names starting with a digit are not allowed.

원인: 프로젝트 이름이 숫자로 시작하거나 특수문자 포함

해결:

  • 영문자로 시작하는 이름 사용
  • 특수문자 대신 하이픈(-) 또는 밑줄(_) 사용

예시:

# ❌ 잘못된 이름
cafe init --name 2024Driver # 숫자 시작
cafe init --name My Driver! # 공백 및 특수문자

# ✅ 올바른 이름
cafe init --name Driver2024
cafe init --name My-Driver

문제 2: "Directory already exists" 에러

증상:

❌ Failed to create project: Directory 'MyDriver' already exists.

원인: 동일한 이름의 디렉토리가 이미 존재

해결:

# 방법 1: 다른 이름 사용
cafe init --name MyDriver_v2

# 방법 2: 기존 디렉토리 제거
rm -rf MyDriver
cafe init --name MyDriver

# 방법 3: 다른 출력 경로 지정
cafe init --name MyDriver --output ./new_projects

문제 3: Git 초기화 실패

증상:

⚠️  Git is not installed or not in PATH. Please install Git first.

원인: Git이 설치되지 않았거나 환경 변수 PATH에 없음

해결:

# Windows (Chocolatey)
choco install git

# Linux (Ubuntu)
sudo apt install git

# macOS (Homebrew)
brew install git

# 설치 확인
git --version

문제 4: Package 명령어가 스크립트를 찾지 못함

증상:

❌ publish_local.ps1 script not found.

원인: 프로젝트 구조가 표준과 다르거나 스크립트가 없음

해결:

# 1. 현재 위치 확인
pwd

# 2. 스크립트 존재 확인
ls scripts/publish_local.ps1

# 3. 루트 디렉토리로 이동 후 재시도
cd ../..
cd src/MyDriver
cafe package

문제 5: PowerShell Execution Policy 에러

증상 (Windows):

... cannot be loaded because running scripts is disabled on this system.

원인: PowerShell 스크립트 실행 정책 제한

해결:

# 현재 세션만 허용
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

# 또는 사용자 수준으로 영구 허용 (관리자 권한)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

FAQ

Q1: CLI를 전역 도구로 설치할 수 있나요?

A: 예, NuGet에서 글로벌 도구로 설치할 수 있습니다.

# NuGet 글로벌 도구로 설치
dotnet tool install -g NEXCODE.Caffeine.Cli

# 설치 확인
cafe --version

# 업데이트
dotnet tool update -g NEXCODE.Caffeine.Cli

소스에서 직접 빌드하려는 경우:

# 별칭 설정 (Linux/macOS)
alias cafe='dotnet run --project /path/to/Caffeine/src/Caffeine.Cli --'

Q2: 커스텀 템플릿을 추가할 수 있나요?

A: 현재는 내장 템플릿만 지원합니다. 커스텀 템플릿은 다음 단계로 직접 추가 가능합니다:

  1. src/Caffeine.Cli/Templates/<템플릿명>/ 디렉토리 생성
  2. .template 파일 작성 (변수 사용)
  3. Caffeine.Cli.csproj<EmbeddedResource> 추가
  4. 재빌드

향후 버전에서 외부 템플릿 지원 예정입니다.


Q3: 생성된 프로젝트의 .NET 버전을 변경할 수 있나요?

A: 템플릿은 기본적으로 net10.0을 사용합니다. 변경 방법:

# 1. 프로젝트 생성
cafe init --name MyDriver --template driver

# 2. .csproj 파일 수정
cd MyDriver
# <TargetFramework>net10.0</TargetFramework>를
# <TargetFramework>net9.0</TargetFramework>로 변경

# 3. 재빌드
dotnet build

Q4: init 명령어가 실패했는데 롤백이 되나요?

A: 예, 실패 시 생성된 디렉토리가 자동으로 삭제됩니다. 수동 정리가 필요 없습니다.


Q5: 여러 프로젝트를 한 번에 생성할 수 있나요?

A: 현재는 스크립트로 우회 가능합니다:

# projects.txt 파일 생성
# ModbusDriver driver
# OpcUaDriver driver
# DataCollector app

# 스크립트 실행
while read name template; do
cafe init --name $name --template $template
done < projects.txt

향후 배치 생성 기능 추가 예정입니다.


Q6: Windows에서 PowerShell 대신 CMD를 써도 되나요?

A: 기본 명령어 (doctor, init, version)는 CMD에서도 동작하지만, package 명령어는 PowerShell 스크립트를 사용하므로 PowerShell이 필요합니다.

REM CMD에서 PowerShell 호출
powershell -Command "cafe package"

Q7: 생성된 프로젝트에 라이선스를 추가할 수 있나요?

A: 현재는 수동으로 추가해야 합니다:

# 프로젝트 생성
cafe init --name MyDriver --template driver

# LICENSE 파일 추가
cd MyDriver
cat > LICENSE << EOF
Copyright © 2026. NEXCODE. All rights reserved
...
EOF

향후 --license 옵션 추가 예정입니다.


부록

A. 명령어 치트시트

# ── 배포 ──────────────────────────────────────
# 대화형 위자드 (권장)
cafe setup

# Production 모드 배포
cafe setup --mode production

# 원격 SSH 배포
cafe setup --remote ssh://user@host

# 서비스 상태 확인
cafe setup status

# HTTP 헬스 체크 포함
cafe setup status --health

# 서비스 중지
cafe setup down

# 배포 파일 추출
cafe setup extract

# ── 환경 진단 ──────────────────────────────────
cafe doctor

# ── 프로젝트 생성 ──────────────────────────────
# 대화형
cafe init

# 비대화형
cafe init -n MyProject -t driver

# Git 포함 프로젝트 생성
cafe init -n MyProject -t driver-full -g

# 특정 경로에 생성
cafe init -n MyProject -t app -o ./projects

# ── 기타 ───────────────────────────────────────
# 버전 확인
cafe version

# NuGet 패키징
cafe package

B. 템플릿 선택 가이드

용도권장 템플릿이유
간단한 드라이버driver빠른 프로토타입
프로덕션 드라이버driver-full테스트 포함
데이터 수집 앱appCaffeine 클라이언트 통합
멀티 프로젝트solution.gitignore 포함

C. 관련 링크


작성일: 2026-01-28
버전: 1.0
작성자: Caffeine Development Team