AI 서비스가 이제는 당연하게 쓰이고 많이 사용되는 상황에서 나도 웹 서비스에 있어서 AI 서비스(Open Ai, Gemini, Cluade 등등....) 사용과 적용에 익숙하여 지기 위해 이번 프로젝트를 시작해 보았다.
이 서비스는 단순한 질문-답변 형식이 아닌, 실시간 채팅 기능을 지원한다. 그리고, 사용자는 다양한 분야의 AI 챗봇 중 하나를 선택해서 대화를 시작할 수 있다. 예를 들어, 트럼프 대통령과의 대화처럼 정치적인 관점에서 답변을 받거나, 다정한 연인 역할의 챗봇과 설레는 대화를 할 수도 있다.
채팅방 기능 (CRUD)
채팅방 생성: 채팅방 이름, 사용자 이름, 챗봇 이름, 분야를 직접 입력해서 생성
조회 / 수정 / 삭제: 만든 채팅방을 목록에서 확인하고 수정하거나 삭제 가능
실시간 WebSocket 채팅
사용자 ↔ AI 챗봇 간 메시지를 STOMP 기반 WebSocket으로 실시간 송수신, 선택한 분야에 맞는 성격의 챗봇이 응답
| 분야 | 프롬프트 요약 |
|---|---|
| 트럼프 대통령 | 전 세계적 영향력, 품격 있게 |
| 젠슨 황 | 기술·경제 전문가답게 명료하게 |
| 손흥민 | 세계무대 도전자처럼 희망을 |
| 연인 | 다정하고 애정 어린 말투 |
| 국회의원 | 국민 대변, 논리적 설득 |
| 치킨집 사장 | 유쾌하고 친근한 응대 |
| 상담가 | 공감과 위로 중심의 대화 |
| 필드 | 설명 |
|---|---|
id | 채팅방 고유 ID |
roomName | 채팅방 이름 |
userName | 사용자 이름 |
aiName | 챗봇 이름 |
topic | 챗봇 역할 주제 |
createdAt | 생성 시간 |
| 필드 | 설명 |
|---|---|
id | 메시지 ID |
chatRoomId | 외래키: 채팅방 ID |
sender | user / ai 구분 |
content | 메시지 내용 |
timestamp | 전송 시간 |
일단은 이렇게 초기 기획을 구성해 보았고,
다음 포스트에서는 개발 코드와 적용한 기술 스택에 대한 포스트를 작성해 보려한다.