본문으로 건너뛰기

변경 이력 (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.Testing NuGet.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.Licensing NuGet 배포 중단 (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.json Licensing 섹션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 문서와 동기화 (MaxTags 500→100, MaxDrivers 1→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.ClientgRPC/SignalR 클라이언트 SDK
NEXCODE.Caffeine.IdentityASP.NET Core Identity + JWT 인증
NEXCODE.Caffeine.InfrastructureInfluxDB, Redis, SQLite 어댑터
NEXCODE.Caffeine.IPCgRPC/Protobuf 계약
NEXCODE.Caffeine.AIONNX/ML.NET 예측 정비
NEXCODE.Caffeine.GeneratorsRoslyn Source Generator
NEXCODE.Caffeine.PresentationWeb API/gRPC/SignalR 진입점
NEXCODE.Caffeine.Simulation시뮬레이션 엔진
NEXCODE.Caffeine.UIMudBlazor 공유 UI
NEXCODE.Caffeine.Robotics.Abstractions로보틱스 추상화
NEXCODE.Caffeine.Testing테스트 유틸리티
NEXCODE.Caffeine.Drivers.Simulation시뮬레이션 드라이버
NEXCODE.Caffeine.Drivers.ModbusTcpModbus TCP 드라이버
NEXCODE.Caffeine.Drivers.ModbusRtuModbus RTU 드라이버
NEXCODE.Caffeine.Drivers.SecsGemSECS/GEM 반도체 드라이버
NEXCODE.Caffeine.Drivers.LseLSE 드라이버
NEXCODE.Caffeine.Drivers.MitsubishiMitsubishi PLC 드라이버
NEXCODE.Caffeine.Drivers.OmronOmron PLC 드라이버
NEXCODE.Caffeine.Licensing라이선스 검증/발급 (v2.0.8부터 내부 전용)

주요 기능

  • .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.62.0.7: 버그 수정
  • 2.0.72.1.0: 새 기능 추가
  • 2.1.03.0.0: Breaking changes

LTS (Long-Term Support)

버전릴리스 날짜일반 지원 종료LTS 종료
2.x2026-03-022027-03-022029-03-02

지원 정책:

  • 일반 지원: 버그 수정, 보안 패치, 새 기능
  • LTS: 버그 수정, 중요 보안 패치만

📝 알려진 문제

Version 2.0.0

문제 1: SignalR 재연결 지연

  • 설명: 네트워크 끊김 후 재연결에 최대 30초 소요
  • 임시 해결책: HubOptions.HandshakeTimeout 조정
  • 수정 예정: 2.0.7

문제 2: InfluxDB 배치 쓰기 메모리 누수

  • 설명: 대량 데이터 쓰기 시 메모리 증가
  • 임시 해결책: 배치 크기를 500개로 제한
  • 수정 예정: 2.0.7

📞 문의

버전 관련 질문이나 문제가 있으시면:


최종 업데이트: 2026-03-08