AI와 함께하는 새로운 일기 경험
Qnote는 사용자의 하루를 되돌아보고, 일기 작성을 혁신적으로 재해석하는 LLM 기반 AI 일기 앱입니다. 사용자가 하루 동안 겪은 일들을 직접 작성하지 않아도, AI가 자연스럽게 대화를 통해 사용자의 일상을 분석하고, 그에 맞는 일기를 자동으로 생성해 줍니다.
일기를 쓰는 과정은 터치 기반 인터랙션과 간단한 응답만으로 이루어지며, 최종적으로 AI가 생성한 초안에 대해 사용자가 편집 후 저장할 수 있도록 설계되어 있습니다.
또한, Qnote는 사용자의 응답을 기반으로 스케줄 관리 정보를 추출하고, 이를 일기 외적인 기능과도 연동하여 보다 통합적인 하루 관리를 제공합니다.
- LLM 기반 일기 생성 (OpenAI API 활용)
- 사용자 응답 예측 및 일기 초안 자동 생성
- 터치 기반 대화 인터페이스로 간편한 사용
- 일기 편집 및 저장 기능
- 사용자 일상에서 일정 요소 자동 추출
Qnote는 OpenAI API 사용과 함께, 서비스 안정성과 사용자 보호를 위해 로그인 시스템을 도입하였습니다. 사용자의 계정 정보와 AI 사용 내역은 모두 안전하게 보호되며, 다음과 같은 방식으로 관리됩니다:
- 자체 로그인 (이메일 / 비밀번호 기반)
- Kakao OAuth
- Google OAuth
- 모든 인증 시스템은 JWT(Json Web Token) 기반으로 작동합니다.
- OAuth 로그인 시, 클라이언트는 서버에
accessToken을 전달합니다. - 서버는 이를 검증한 후, 자체 발급한
accessToken,refreshToken을 응답합니다. - 클라이언트(Flutter 앱)는 인증된 토큰을 HTTP 헤더에 포함하여 API 요청을 보냅니다:
Qnote의 백엔드는 NestJS를 기반으로 구성되어 있으며, 다음과 같은 구조로 동작합니다:
- NestJS
- MySQL (일기 및 채팅 데이터 저장)
- Passport (Local, JWT 전략 사용)
- OpenAI API (일기 자동 생성)
- Docker 기반 서비스 구성
LocalStrategy+JWTStrategy를 이용한 Passport 기반 Guard 시스템- 모든 민감한 API 진입 지점에 대해 Guard를 통해 인증 검증
- OAuth 로그인도 내부적으로 JWT로 전환하여 통합 관리
- 사용자 계정 및 토큰 정보
- AI와의 대화 내용 (채팅 로그)
- 자동 생성된 일기 및 최종 저장본
- 추출된 일정 및 메타데이터
모든 데이터는 MySQL 기반으로 안전하게 저장 및 관리됩니다.
- 사용자 맞춤형 추천 기능 (예: 감정 분석 기반 피드백)
- 다국어 지원
- 통계 기반의 감정 변화 추이 시각화
- 일기 기반의 일정 자동 등록 기능 고도화
- 연속된 사용자에 입력 처리를 빠르게 하기 위해, 메모리 기반 데이터베이스인 redis를 사용하여, 관리
- redis 기반 메모리 데이터베이스를 사용하여, 서버내에서 유저의 정보를 더욱 빠르게 관리
Qnote는 사용자 중심의 따뜻한 기술을 꿈꾸며, AI와 사람 사이의 의미 있는 연결을 추구합니다.
Qnote — 오늘을 기록하는 가장 쉬운 방법
