[Spring boot] spring boot + Stomp + openAI으로 나만의 AI 챗봇 만들기

Yong·2025년 7월 19일

AI 서비스가 이제는 당연하게 쓰이고 많이 사용되는 상황에서 나도 웹 서비스에 있어서 AI 서비스(Open Ai, Gemini, Cluade 등등....) 사용과 적용에 익숙하여 지기 위해 이번 프로젝트를 시작해 보았다.

📚 주제 : 특정 분야(예: 대통령, 연인, 국회의원 등)에 특화된 AI와 실시간으로 대화할 수 있는 웹 기반 채팅 서비스

이 서비스는 단순한 질문-답변 형식이 아닌, 실시간 채팅 기능을 지원한다. 그리고, 사용자는 다양한 분야의 AI 챗봇 중 하나를 선택해서 대화를 시작할 수 있다. 예를 들어, 트럼프 대통령과의 대화처럼 정치적인 관점에서 답변을 받거나, 다정한 연인 역할의 챗봇과 설레는 대화를 할 수도 있다.


📌 주요 기능 소개

  • 채팅방 기능 (CRUD)
    채팅방 생성: 채팅방 이름, 사용자 이름, 챗봇 이름, 분야를 직접 입력해서 생성

  • 조회 / 수정 / 삭제: 만든 채팅방을 목록에서 확인하고 수정하거나 삭제 가능

  • 실시간 WebSocket 채팅
    사용자 ↔ AI 챗봇 간 메시지를 STOMP 기반 WebSocket으로 실시간 송수신, 선택한 분야에 맞는 성격의 챗봇이 응답


🧠 챗봇 프롬프트 설정

분야프롬프트 요약
트럼프 대통령전 세계적 영향력, 품격 있게
젠슨 황기술·경제 전문가답게 명료하게
손흥민세계무대 도전자처럼 희망을
연인다정하고 애정 어린 말투
국회의원국민 대변, 논리적 설득
치킨집 사장유쾌하고 친근한 응대
상담가공감과 위로 중심의 대화

🗃️ 데이터베이스 설계

  • ChatRoom 테이블
필드설명
id채팅방 고유 ID
roomName채팅방 이름
userName사용자 이름
aiName챗봇 이름
topic챗봇 역할 주제
createdAt생성 시간
  • ChatMessage 테이블
필드설명
id메시지 ID
chatRoomId외래키: 채팅방 ID
senderuser / ai 구분
content메시지 내용
timestamp전송 시간

마치며

일단은 이렇게 초기 기획을 구성해 보았고,
다음 포스트에서는 개발 코드와 적용한 기술 스택에 대한 포스트를 작성해 보려한다.

profile
Coram Deo

0개의 댓글