본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
SQLite에 대화내용(사용자 및 대화별) 저장
SQL(Structured Query Language)은 프로그래밍에 사용되는 도메인 특화 언어로, 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 관리하거나 관계형 데이터 스트림 관리 시스템(RDSMS)에서 스트림 처리를 위해 설계됨.
⇒ 엔티티와 변수 간의 관계를 포함하는 구조화된 데이터를 다루는 데 유용
> Storage를 사용하려면
- Sesson_id
사용자 이름, 이메일, 채팅 ID 등과 같은 세션의 고유 식별자 - connection
데이터베이스 연결을 지정하는 문자열.
이 문자열은 SQLAlchemy의 create_engine 함수에 전달됨.
일반 변수에 대화내용 저장(휘발성 메모리)
일반 변수에 대화 내용을 저장하는 방식은 가장 단순하고 구현이 쉬움.
Python 리스트나 딕셔너리에 사용자 질문과 AI 응답을 차례대로 append 하여 관리하는 형태가 대표적.
⇒ 이 방식의 가장 큰 특징은 메모리(RAM)상에서만 데이터가 유지되는 '휘발성 저장 방식'으로, 프로그램이 종료되거나 서버가 재시작되면 지금까지의 모든 대화 기록이 완전히 사라짐.
장점
- DB 설정이나 연결이 필요 없이 구현이 매우 간단함
- 저장·조회 속도가 빠름
- 실습용, 데모용, 단기 테스트에 적합
단점
- 서버 재시작 시 대화 기록 복구 불가능
- 사용자별 대화 이력 관리 불가
- 장기 대화, 고객 상담, 로그 분석, RAG 학습 데이터로 활용 불가
- 여러 사용자가 동시에 접속하는 환경에서는 데이터 혼합 위험
일반 변수 저장이 아닌 DB 저장이 필요한 이유
- 일반 변수에 저장된 대화는 프로그램이 종료되면 모두 사라지는 휘발성 메모리
- SQLite는 디스크에 영구 저장(Persistent Storage) 되므로
- 서버 재시작 후에도 대화 복구 가능
- 사용자별 대화 이력 관리 가능
- 추후 RAG 학습 데이터로 재활용 가능
Session ID의 진짜 역할
→ 단순 ID가 아니라
- 사용자 구분
- 여러 채팅방 구분
- 날짜별 이력 관리
→ 실 서비스에서는
- user_id, email, uuid, ip 기반 세션 등으로 확장됨
SQLite를 쓰는 이유
- 설치 필요 없음(파일 하나로 끝)
- Python 기본 지원
- 소규모 프로젝트, 개인 서비스, MVP에 최적
- 추후 MySQL, PostgreSQL로 쉽게 마이그레이션 가능
오늘은 챗봇 대화내용을 SQLite 데이터베이스에 저장하는 구조에 대해 학습했어요 지금까지는 대화 기록을 일반 변수에 저장했기 때문에, 실행 중인 웹앱 창을 종료하면 모든 대화가 사라지는 한계가 있었죠. 우리 ChatGPT 사용할 때는 기록이 다 남아있잖아요? 이를 위해서는 SQLite 같은 관계형 데이터베이스를 사용해서 대화 기록을 디스크에 영구적으로 저장하는 방법이 있다는 걸 알게 된 거죠!! 이는 대화 기록을 디스크에 영구적으로 저장할 수 있어서 이후에도 다시 불러오거나, 사용자별 이력 관리, 데이터 분석, RAG 학습 데이터로의 활용까지 가능해집니다.
SQLite는 SQL을 기반으로 한 경량 RDBMS로, 엔티티와 속성 간의 관계를 구조화된 형태로 관리할 수 있다는 점이 가장 큰 장점이에요. 특히 별도의 서버 구축 없이 파일 하나로 DB를 구성할 수 있어, 개인 프로젝트나 MVP 단계의 서비스에 적합해서 활용도가 아주 높아요.
사용자별 대화를 안전하게 저장하고, 언제든지 다시 불러올 수 있도록 코드 구조를 잘 기억해둬야겠어요. 제가 구현해보고자 하는 시스템이 딱 필요로 하는 내용이에요. 이전에는 '메모리 기반 챗봇'이었다면, 이제는 실제 서비스 형태에 가까운 '상태를 가지는 챗봇' 구조로 확장할 수 있다는 점이 인상 깊은 수업 내용이었어요. 앞으로 RAG 시스템이나 장기 대화 챗봇을 만들 때 SQLite 기반 저장 구조를 활용 봐야겠어요!!!




커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr
'RAG' 카테고리의 다른 글
| 패스트캠퍼스 환급챌린지 29일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.10 |
|---|---|
| 패스트캠퍼스 환급챌린지 28일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.09 |
| 패스트캠퍼스 환급챌린지 : 테디노트의 RAG 비법노트 강의 중간 점검 (1) | 2025.12.07 |
| 패스트캠퍼스 환급챌린지 26일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.07 |
| 패스트캠퍼스 환급챌린지 25일차 : 테디노트의 RAG 비법노트 강의 후기 (0) | 2025.12.06 |