aiin - AI 데이트 채팅앱

기술 스택
Django DRF Anthropic Claude AWS API Gateway AWS SQS DynamoDB Celery PostgreSQL
프로젝트 개요
aiin - AI 데이트 채팅앱은 Anthropic Claude 3.5 Sonnet 모델을 활용한 실시간 AI 대화 서비스입니다.
호감도 기반 동적 페르소나 시스템과 실시간 WebSocket 통신을 통해 자연스러운 대화 경험을 제공합니다.
🎯 핵심 성과 요약
✅ 호감도 기반 동적 AI 페르소나 시스템 (5단계 관계 발전)
✅ 실시간 채팅 시스템 (AWS API Gateway WebSocket)
AI 파운데이션 모델 통합
🤖 Anthropic Claude 3.5 Sonnet 프로덕션 통합
핵심 도전 과제:
AI 파운데이션 모델의 일관성 없는 응답과 비즈니스 로직 연동의 복잡성
해결 방법:
3단계 동적 프롬프트 엔지니어링 시스템
1단계: 가이드라인 프롬프트 (Guidelines)
- 응답 형식 및 제약사항 정의
2단계: 캐릭터(페르소나) 정보 프롬프트 (Character Info)
- 동적 캐릭터 정보 조합 (관리자 페이지에서 커스터마이징 가능)
3단계: 상황별 프롬프트 (Situational)
- 호감도 기반 5단계 페르소나 시스템
- 1단계: 존댓말, 거리감
- 2단계: 개인적 대화 증가
- 3단계: 반말, 친밀한 관계
- 4단계: 연인 관계에 가까움
- 5단계: 연인 관계, 애칭 사용
🔧 AI 응답 안정성 보장 시스템
다층 예외 처리로 안정성 확보 & 비즈니스 로직 통합
- 자동 호감도 조정:
increase(+0.1~0.3)
,decrease(-0.1)
,no_change(0)
- 이미지 요청 처리:
"image requested"
키워드 감지 시 캐릭터 이미지 자동 전송- 대화 차단 시스템: 호감도 0.0 시 모든 메시지 홀드 처리
📝 관리자 친화적 프롬프트 커스터마이징
동적 프롬프트 관리
- 실시간 프롬프트 조합
- 실시간 페르소나 수정: 서비스 중단 없이 캐릭터 성격 조정
- 커스텀 프롬프트: 관리자가 직접 프롬프트 텍스트 수정 가능
- 성격 조합 시스템: Personality 모델 M:N 관계로 복합 성격 구성
실시간 통신 시스템
🔥 AWS API Gateway WebSocket 아키텍처 및 비동기 처리
핵심 설계 결정:
- Django Channels 대신 AWS 네이티브 WebSocket 서비스 선택으로 확장성 확보
- AWS SQS 브로커 활용
WebSocket 메시지 전송 플로우:
- DynamoDB에서 연결 정보 조회
- AWS API Gateway Management API로 메시지 전송
- 끊어진 연결 자동 정리
확장성 보장:
- DynamoDB 연결 관리: 무제한 동시 접속 지원
- 자동 연결 정리: GoneException 발생 시 연결 정보 자동 삭제
- Multi-Region 지원: AWS 글로벌 인프라 활용
📡 정교한 실시간 상태 관리
8가지 WebSocket 메시지 타입으로 복합적 실시간 상호작용:
메시지 타입 | 설명 | 주요 기능 |
---|---|---|
SEND_CHAT | 채팅 송/수신 | 실시간 메시지 전송 및 수신 |
TYPING | 채팅방 입력 | 상대방 입력 상태 실시간 표시 |
PAUSED | 채팅방 중단 | 입력 중단 상태 즉시 반영 |
HEART_INCREASE | 하트점수 상승 | 호감도 변화 실시간 동기화 |
AI_INPUT_TIME | AI 응답 시간 예측 | 사용자 대기감 감소 UX 최적화 |
HOLD | 채팅창 홀드 | 대화 차단 시 UI 상태 제어 |
DELETED_CHAT | 채팅방 삭제 | 다중 채팅방 삭제 실시간 동기화 |
MANAGER | 운영자 현황 | 접속 중인 운영자 수 실시간 브로드캐스팅 |
AI 응답 시간 예측 시스템:
사용자 경험 최적화를 위한 동적 응답 시간 계산
- AI 모델 부하 상태 기반 예상 시간 전송
- 채팅창 “…” 표시로 대기감 감소
- 실시간 피드백으로 사용자 이탈 방지
🎯 세밀한 UX 고려사항
타이핑 상태 실시간 표시:
typing
: 입력 중 상태 실시간 브로드캐스팅paused
: 입력 중단 상태 즉시 반영- 상대방 입력 상태 시각화로 자연스러운 대화 흐름 연출
코인(서비스 재화) 정보 실시간 동기화:
- 메시지마다 사용가능 코인 업데이트
- 차등 잠금 시스템: 메시지/이미지/음성별 차등 잠금 처리
- 실시간 잔액 확인으로 서비스 연속성 보장
채팅방 삭제 실시간 동기화:
- 다중 채팅방 동시 삭제 처리
- 실시간 UI 업데이트로 일관된 사용자 경험 제공
실시간 상태 관리:
- 타이핑 상태: 실시간 타이핑 표시 및 중단 처리
- 읽음 처리: 일괄 읽음 처리로 성능 최적화
- 푸시 알림: Firebase FCM 통합 백그라운드 알림
Celery 비동기 처리:
- AWS SQS 브로커: 메시지 큐 안정성 확보
- 스케줄링: 매분 온라인 상태 확인, 푸시 알림 전송
- 자동 재시도: 실패한 AI 응답 생성 작업 재처리
운영 및 보안
🛡️ 보안 시스템
JWT 기반 인증:
- 디바이스 바인딩: 토큰 탈취 시에도 타 기기 사용 불가
- TaskManager 연동: 관리자 작업 추적 및 권한 관리
- 스코프 기반 권한: API별 세분화된 접근 제어
데이터 보호:
- 민감정보 자동 마스킹: 로그에서 패스워드 등 자동 필터링
- AWS Secrets Manager: 환경별 보안 정보 관리
📊 운영 모니터링
실시간 상태 추적:
- Celery 작업 모니터링: 모든 비동기 작업 상태 추적
- 웹소켓 연결 관리: DynamoDB 기반 연결 상태 실시간 추적
- 에러 추적: 스택 트레이스 포함 상세 에러 로깅
자동화 운영:
- 연결 정리: 끊어진 웹소켓 연결 자동 감지 및 정리
- 푸시 알림: 500개 단위 배치 처리로 성능 최적화
- 로그 관리: 환경별 보관 기간 설정 및 자동 정리