Portfolio
calynda — 폴리글랏 공유 캘린더·할일
2025.10 ~ 현재
일정·할일·일기를 통합 관리하는 다인 공유 캘린더. 인증은 Go MSA로 분리, OpenAPI 계약 우선. NAS 자가 배포 라이브.
JavaSpring Boot 3.5GoFlutterMySQLOpenAPI
문제 · 맥락
일정·할일·일기를 통합 관리하는 다인 공유 캘린더. 할일은 상태/우선순위/스프린트/하위태스크 기반의 Jira식 관리.
핵심 설계 결정
폴리글랏 + 서비스 경계 분리
인증을 Go 마이크로서비스(OAuth2·JWT ES256)로 분리, Spring은 JWKS로 토큰 검증.
OpenAPI 계약 우선(contract-first)
spec(openapi.yaml)에서 Dart 클라이언트·BE 모델 자동 생성 → 계약 드리프트 제거.
운영 디버깅
NAS docker-compose 4서비스(mysql / login-db postgres / login-server go / backend) + nginx.
MySQL fsync 최소화로 PUT /tasks 1.29s 지연 해소, 컨테이너 기동 레이스(healthcheck start_period) 해소.
성과 · 지표
NAS 자가 배포 라이브 운영
calynda.duckdns.org.
한 줄 요약
Java/Spring + Go(JWT ES256) + Flutter 폴리글랏으로 공유 캘린더 설계, 인증을 Go MSA로 분리하고 OpenAPI 계약 우선으로 FE/BE 클라이언트 자동 생성.