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 클라이언트 자동 생성.

라이브 보기
← 다른 프로젝트 보기