aiin - AI 데이트 채팅앱

Featured
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 메시지 전송 플로우:

  1. DynamoDB에서 연결 정보 조회
  2. AWS API Gateway Management API로 메시지 전송
  3. 끊어진 연결 자동 정리

확장성 보장:

  • DynamoDB 연결 관리: 무제한 동시 접속 지원
  • 자동 연결 정리: GoneException 발생 시 연결 정보 자동 삭제
  • Multi-Region 지원: AWS 글로벌 인프라 활용

📡 정교한 실시간 상태 관리

8가지 WebSocket 메시지 타입으로 복합적 실시간 상호작용:

메시지 타입설명주요 기능
SEND_CHAT채팅 송/수신실시간 메시지 전송 및 수신
TYPING채팅방 입력상대방 입력 상태 실시간 표시
PAUSED채팅방 중단입력 중단 상태 즉시 반영
HEART_INCREASE하트점수 상승호감도 변화 실시간 동기화
AI_INPUT_TIMEAI 응답 시간 예측사용자 대기감 감소 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개 단위 배치 처리로 성능 최적화
  • 로그 관리: 환경별 보관 기간 설정 및 자동 정리

© 2025 Jayson Hwang • Built with Jekyll & GitHub Pages