Skip to content

시스템 전체 아키텍처

truloop 플랫폼을 구성하는 모든 서비스와 그 연결 관계를 설명합니다.


시스템 아키텍처 다이어그램


서비스 통신 테이블

호출자대상방식설명
클라이언트 (iOS/Android)truloop-coreHTTPS (REST)모든 비즈니스 API 호출
클라이언트 (iOS/Android)truloop-media-serviceHTTPS (Multipart)미디어 업로드 (이미지/비디오)
클라이언트 (iOS/Android)Sendbird SDKWebSocket실시간 채팅
truloop-coreAurora PostgreSQLTCP (JDBC)비즈니스 데이터 CRUD
truloop-coreElastiCache RedisTCP캐싱, 세션
truloop-coreAWS S3HTTPS파일 저장/조회
truloop-coreSendbirdHTTPS (REST)채팅 채널 관리, 메시지 발송
truloop-coreFirebase FCMHTTPS푸시 알림 발송
truloop-coreBranchHTTPS딥링크 생성
truloop-coreNHNHTTPSSMS 발송
truloop-coreSegmentHTTPS이벤트 분석
truloop-coreRevenueCatHTTPS구독 관리
truloop-coretruloop-ai-serverHTTPS (REST)이미지 임베딩 생성/삭제, 그룹핑 결과 조회
truloop-coreAWS SQSHTTPS그룹핑 작업 요청 발행 (grouping-queue)
truloop-media-serviceAWS S3HTTPS미디어 파일 업로드/처리
truloop-media-serviceAWS SQSHTTPS업로드 이벤트 발행, 처리 완료 알림
truloop-media-serviceRedisTCPIdempotency key, Job Queue
truloop-ai-serverAurora PostgreSQLTCP콘텐츠 템플릿/생성 기록 조회
truloop-ai-serverRedis (Valkey)TCPCelery broker/backend
truloop-ai-serverOpenRouterHTTPSLLM API 호출 (텍스트/이미지 분석)
truloop-ai-servertruloop-media-serviceHTTPS생성된 콘텐츠 이미지 업로드
truloop-assistanttruloop-coreHTTPS (REST)사용자/룹 정보 조회 (Internal API)
truloop-assistantSendbirdHTTPS (REST)AI 응답 메시지 전송
truloop-assistantRedisTCP대화 이력, Pending tool calls
truloop-assistantOpenRouterHTTPSLLM 추론 (Claude Sonnet)
Sendbirdtruloop-assistantHTTPS (Webhook)사용자 메시지 수신 이벤트
AWS SQStruloop-corePolling미디어 처리 완료 이벤트 수신
EventBridge Schedulertruloop-functionsLambda Invoke (async)스케줄 기반 트리거 디스패치
truloop-functionstruloop-coreHTTPS (REST)트리거 대상 조회/완료 처리 (Internal API)
truloop-functionsAWS SQSHTTPS트리거 이벤트 메시지 발행 (trigger-events)
AWS SQStruloop-assistantPolling트리거 이벤트 수신 (리마인더 등)
truloop-coreAWS SQSHTTPS리캡 생성 요청 메시지 발행 (story-queue)
AWS SQStruloop-storyLambda Trigger리캡 생성 메시지 소비
truloop-storyOpenRouterHTTPSLLM API 호출 (이미지 분석, 스토리 생성)
truloop-storytruloop-coreHTTPS (REST)리캡 생성 결과 콜백 (Internal API)

환경 구성

항목
AWS Regionap-northeast-2
API 도메인dev-api.truloop.app
ECS ClusterDevelopment 전용
AuroraDev 인스턴스 (SSM 터널: localhost:54320)
RedisDev ElastiCache
S3 BucketDev 전용 버킷
배포 트리거main 브랜치 push 시 자동 배포
딥링크 스킴truloop.dev://

Repository 맵

Repository언어역할배포 대상
truloop-iosSwift / SwiftUIiOS 네이티브 클라이언트App Store
truloop_androidKotlin / ComposeAndroid 네이티브 클라이언트Google Play
truloop-web-inviteTypeScript / Next.js 16룹 초대 웹 페이지AWS (CDN)
truloop-teaser-webTypeScript / Next.js 15티저/랜딩 웹 페이지AWS (CDN)
truloop-coreKotlin 2.3 / Ktor 3.4핵심 비즈니스 API 서버ECS (Fargate)
truloop-media-serviceGo 1.24미디어 업로드 및 처리 서비스ECS (Fargate)
truloop-ai-serverPython 3.11 / FastAPIAI 콘텐츠 생성 서비스ECS (Fargate)
truloop-assistantPython 3.14 / FastAPIAI 비서 (대화형 에이전트)ECS (Fargate)
truloop-functionsPython 3.13 / Pulumi서버리스 트리거 디스패치 (EventBridge → Lambda)AWS Lambda
truloop-storyPython 3.13 / Serverless리캡 생성 서버리스 워커AWS Lambda
truloop-infraTypeScript / PulumiIaC 인프라 관리AWS
database_schemaHCL (Atlas)DB 스키마 관리Aurora PostgreSQL

서비스 간 인증

호출 경로인증 방식설명
클라이언트 → BackendJWT (Bearer)사용자 인증 토큰
Backend 서비스 간Bearer API KeyInternal API 인증 (authenticate("internal-api"))
Sendbird → AssistantWebhook SecretWebhook 검증
truloop-functions → truloop-coreBearer API KeyInternal API 인증
truloop-story → truloop-coreBearer API KeyInternal API 인증
Backend → 외부 서비스API Key / OAuth서비스별 인증 방식

데이터 흐름 요약


변경 이력

날짜내용
2026-03-12이미지 그룹핑 반영 — core→ai-server 직접 통신, grouping-queue SQS 흐름 추가, 서비스 통신 테이블 2행 추가
2026-03-11truloop-story 추가: 아키텍처 다이어그램, Repository 맵, 서비스 통신 테이블, 데이터 흐름, 서비스 간 인증 업데이트
2026-03-11truloop-functions 추가: 아키텍처 다이어그램에 EventBridge/Lambda 노드, Repository 맵, 서비스 통신 테이블, 서비스 간 인증 테이블 업데이트
2026-03-10Repository 맵 ai-server Python 버전 명시 (Python → Python 3.11)