변경 이력 (Changelog)
Caffeine Framework의 버전별 변경 사항입니다.
개요
이 문서는 NuGet.org에 공식 배포된 버전의 변경 이력을 기록합니다.
v2.0.6은 Caffeine Framework의 첫 NuGet.org 공개 릴리스입니다. 이전 버전(v2.0.5 이하)은 내부 개발 빌드로 공개 배포되지 않았습니다.
[v2.1.0] - 2026-03-08
Resilience DI 표준화, 라이선스 검증 전용 API, Testing 패키지 공개 배포, Mermaid 다이어그램 개선 릴리스입니다.
개선 사항
- Mermaid 다이어그램 뷰어 개선 — 기본 프레임 최소 높이 300px 적용, 전체화면 진입/종료 시 줌 자동 리셋, 전체화면에서 줌/이동이 확장된 프레임 전체를 대상으로 동작하도록 수정
새로운 기능
- FIR-013: Resilience DI 표준화 —
AddCaffeineResilience()내부 구현을AddKeyedSingleton방식에서AddResiliencePipeline(표준 Polly.Extensions 패턴) 으로 전환.ResiliencePipelineProvider<string>DI 등록으로 표준 Polly 사용 방식 지원. Polly.Extensions 8.4.2 - FIR-014:
AddCaffeineLicenseVerification()신규 DI 확장 메서드 — 검증 전용 DI 등록 (ILicenseService+IHardwareInfo).DefaultHardwareInfo크로스 플랫폼 폴백(Windows/Linux/macOS) 지원. 라이선스 생성·서명 기능은 포함하지 않음 (보안 정책) - FIR-015:
NEXCODE.Caffeine.TestingNuGet.org 공개 배포 — 드라이버 테스트 하네스 패키지 공식 배포 개시. 18개 → 19개 NuGet 패키지
품질
- 전체 테스트 4,579개 통과 (0 실패)
- 신규 테스트 8개 추가 (ResilienceExtensions, LicenseVerification)
[v2.0.9] - 2026-03-06
NuGet 패키지명 NEXCODE 리브랜딩, 커버리지 개선, CI 안정성 수정 릴리스입니다.
변경 사항
- NuGet 패키지명 NEXCODE 리브랜딩 — 모든 패키지명
NEXCODE.Caffeine.*통일 (docs 반영) - 개별 어셈블리 커버리지 80%+ 달성 — CI 측정 버그 수정 및
ExcludeFromCodeCoverage적용 - CI ubuntu SIGBUS(exit 135) 크래시 수정 — TypeDB P/Invoke RID 조건부 참조 적용
[v2.0.8] - 2026-03-03
라이선스 정책 문서화, Community 에디션 기본값 동기화, Licensing 보안 재설계 릴리스입니다.
보안 개선
Caffeine.LicensingNuGet 배포 중단 (IsPackable=false) — 라이선스 생성 코드(PkvKeyGenerator,LicenseGenerator)의 외부 노출 차단. NuGet을 통해 누구나 라이선스를 발급할 수 있던 보안 취약점 해소- PKV 검증 타입
Caffeine.Core.Licensing으로 이동 —PkvKeyVerifier,KeyByteSet을 내부 전용 어셈블리에서 Core 네임스페이스로 분리하여 검증(Verification)과 생성(Generation) 책임 명확히 분리
새로운 기능
- 토큰 자동 영속화 (
FileBasedLicenseTokenStore) — 업로드 성공 시 로컬 디스크 자동 저장, 서버 재시작 시 자동 로드 (Windows:%LocalApplicationData%/Caffeine/license.jwt, Linux:~/.local/share/Caffeine/license.jwt) appsettings.jsonLicensing 섹션 —PublicKeyXml(RSA 공개키),TokenStorePath(저장 경로 오버라이드) 설정 지원AddCaffeineLicensing(IConfiguration)DI 확장 메서드 —IConfiguration기반 설정 주입으로 단순화된 서비스 등록cafe-license내부 전용 CLI (Caffeine.Licensing.Cli,IsPackable=false) — RSA 키 쌍 생성(generate-keys), JWT 토큰 발급(issue), 검증(verify), HWID 조회(hwid) 서브커맨드 제공
NuGet 패키지 변경
Caffeine.Licensing패키지 배포 목록에서 제거 — 내부 전용(IsPackable=false)으로 전환. v2.0.6 기준 19개 배포 패키지 → 18개
문서
라이선스 문서 신규 추가 (docs/licensing/)
pricing.md: 에디션별 가격 정책, 경쟁사 대비 장점, Community/Professional/Enterprise 상세guide.md: JWT + HWID 이중 바인딩 동작 원리, 활성화 Mermaid 플로우차트, Admin UI 사용법, 토큰 영속화 설명, 서버 설정 가이드, Safe Mode 설명feature-comparison.md: 데이터 수집·저장·통신·AI·로보틱스·보안 전 영역 기능 비교 매트릭스, Feature Flag 목록, 드라이버별 라이선스 요구사항trial.md: 30일 무료 Trial 시작 절차, 기간 확인, 만료 후 동작, 정식 전환 절차troubleshooting.md: HWID 불일치, Safe Mode 복구, 토큰 업로드 실패, 에러 코드 레퍼런스
기존 문서 개선
introduction/overview.md: 라이선스 비교·가격·가이드 링크 3곳 추가api/license.md: 정책 안내 박스 + 기능 비교표 링크 추가 + POST /upload 토큰 영속화 노트 추가reference/faq.md: Q3 실제 3-tier 모델로 전면 수정, 라이선스 FAQ 5개 추가 (Trial·업그레이드·HWID·SafeMode·Community 기능)
버그 수정
LicenseModels.cs: Community 기본값 API 문서와 동기화 (MaxTags500→100,MaxDrivers1→2)
[v2.0.7] - 2026-03-02
Caffeine CLI (cafe) 배포 위자드 및 원격 Docker Context 지원이 추가된 릴리스입니다.
새로운 기능
cafe setup 대화형 배포 위자드 (Setup Distribution Phase 2)
- 원클릭 배포:
cafe setup한 줄로 Docker 환경 구성 완료 - 5개 프로파일 시스템:
minimal/standard/full/full+monitoring/app - 사전 검증: Docker 설치, 데몬 실행, Compose v2 자동 확인
- 포트 충돌 감지: 선택한 프로파일 포트 사용 현황 자동 감지
- .env 자동 생성:
RandomNumberGenerator기반 암호학적 안전 시크릿 자동 생성 - EmbeddedResource 배포 파일:
cafe setup extract로 docker-compose.yml 추출 - 서브커맨드:
status,down,extract(--list, --profile, --force, --output)
원격 Docker Context (SSH) 지원 (2D-04)
--remote ssh://user@host: 원격 서버에 직접 배포- Docker Context 자동 생성: SSH URL에서 context 이름 자동 유도
.caffeine-context영속화: 배포 후 context 저장,status/down에서 재사용- SSH 연결 검증: 배포 전 원격 Docker 데몬 연결 자동 확인
Production 보안 강화
--mode production: 6개 보안 항목 자동 검증.env파일 존재 확인- JWT Secret 강도 검사 (44자 이상)
- 기본 비밀번호 탐지 (
admin123,changeme등) CAFFEINE_ENV=production설정 확인- TLS 인증서 존재 확인
- Docker 데몬 실행 확인
docker-compose.prod.yml: 리소스 제한, 로그 로테이션, 재시작 정책 오버레이
인프라 표준화 (Setup Distribution Phase 1)
- 통합
docker-compose.yml: 5개 프로파일 통합 관리 .env.example: 안전한 환경 변수 템플릿 제공- NEXCODE.Caffeine.Cli v0.9.0 NuGet 패키지:
dotnet tool install -g NEXCODE.Caffeine.Cli
테스트 커버리지
- 90.4% line-rate (CI 임계값 80% 초과)
- 총 409개 테스트 통과, 0 실패
- 신규 테스트 +36개 (DockerContextService, 원격 배포 시나리오)
[v2.0.6] - 2026-03-02
Caffeine Framework의 첫 NuGet.org 공식 릴리스입니다.
포함된 패키지 (19개)
⚠️ v2.0.8 변경:
Caffeine.Licensing이 내부 전용(IsPackable=false)으로 전환되어 배포 목록에서 제거되었습니다. v2.0.8부터 18개 패키지가 배포됩니다.
| 패키지 | 설명 |
|---|---|
| NEXCODE.Caffeine.Core | 핵심 인터페이스, 엔티티, 값 객체 |
| NEXCODE.Caffeine.Client | gRPC/SignalR 클라이언트 SDK |
| NEXCODE.Caffeine.Identity | ASP.NET Core Identity + JWT 인증 |
| NEXCODE.Caffeine.Infrastructure | InfluxDB, Redis, SQLite 어댑터 |
| NEXCODE.Caffeine.IPC | gRPC/Protobuf 계약 |
| NEXCODE.Caffeine.AI | ONNX/ML.NET 예측 정비 |
| NEXCODE.Caffeine.Generators | Roslyn Source Generator |
| NEXCODE.Caffeine.Presentation | Web API/gRPC/SignalR 진입점 |
| NEXCODE.Caffeine.Simulation | 시뮬레이션 엔진 |
| NEXCODE.Caffeine.UI | MudBlazor 공유 UI |
| NEXCODE.Caffeine.Robotics.Abstractions | 로보틱스 추상화 |
| NEXCODE.Caffeine.Testing | 테스트 유틸리티 |
| NEXCODE.Caffeine.Drivers.Simulation | 시뮬레이션 드라이버 |
| NEXCODE.Caffeine.Drivers.ModbusTcp | Modbus TCP 드라이버 |
| NEXCODE.Caffeine.Drivers.ModbusRtu | Modbus RTU 드라이버 |
| NEXCODE.Caffeine.Drivers.SecsGem | SECS/GEM 반도체 드라이버 |
| NEXCODE.Caffeine.Drivers.Lse | LSE 드라이버 |
| NEXCODE.Caffeine.Drivers.Mitsubishi | Mitsubishi PLC 드라이버 |
| NEXCODE.Caffeine.Drivers.Omron | Omron PLC 드라이버 |
주요 기능
- .NET 10 기반 IIoT 엣지 플랫폼
- Reactive Programming (System.Reactive) 기반 실시간 데이터 파이프라인
- 플러그인 아키텍처 드라이버 시스템 (Modbus, SECS/GEM, PLC)
- gRPC + SignalR 이중 통신
- MQTT/Kafka 엣지-클라우드 전송
- ASP.NET Core Identity + JWT RBAC 인증
- InfluxDB 시계열 + Redis 캐시 + SQLite 로컬 스토리지
- ONNX Runtime 예측 정비
- Blazor Server + MudBlazor 관제 대시보드
- OpenTelemetry 관측성
📊 버전 정책
Semantic Versioning
Caffeine은 Semantic Versioning 2.0.0을 따릅니다.
형식: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes (호환성 깨짐)
- MINOR: 새로운 기능 추가 (하위 호환)
- PATCH: 버그 수정 (하위 호환)
예제:
2.0.6→2.0.7: 버그 수정2.0.7→2.1.0: 새 기능 추가2.1.0→3.0.0: Breaking changes
LTS (Long-Term Support)
| 버전 | 릴리스 날짜 | 일반 지원 종료 | LTS 종료 |
|---|---|---|---|
| 2.x | 2026-03-02 | 2027-03-02 | 2029-03-02 |
지원 정책:
- 일반 지원: 버그 수정, 보안 패치, 새 기능
- LTS: 버그 수정, 중요 보안 패치만
📝 알려진 문제
Version 2.0.0
문제 1: SignalR 재연결 지연
- 설명: 네트워크 끊김 후 재연결에 최대 30초 소요
- 임시 해결책:
HubOptions.HandshakeTimeout조정 - 수정 예정: 2.0.7
문제 2: InfluxDB 배치 쓰기 메모리 누수
- 설명: 대량 데이터 쓰기 시 메모리 증가
- 임시 해결책: 배치 크기를 500개로 제한
- 수정 예정: 2.0.7
📞 문의
버전 관련 질문이나 문제가 있으시면:
- 이메일: matrix@live.co.kr
- 공식 문서: https://docs.nexcode.co.kr/caffeine
최종 업데이트: 2026-03-08