#5. 실시간 챗봇 시스템 만들기: 중간 피드백과 앞으로의 방향성
·
개발일지/KDT-핀테크 인턴십
CTO님과의 중간 점검# 무슨 CTO이신..?말 그대로 기업 연계 인턴십이기 때문에 지금 저는 기업에서 정해준 주제를 구현하고 있었습니다,,이제 곧 마무리 단계라 마무리 전 방향성에 대해서 질의응답하기 위해 CTO님께 직접 연락드렸어요! 아무래도 바쁘신 분이다보니 다른 팀들처럼 매주 보고 & 피드백 등을 진행하진 않았습니다.(제 경우가 특수한 경우긴 해요. 다른 팀은 정말 기획 -> 기획, 백엔드 -> api 개발, 프론트엔드 -> 대시보드 개발인데,저는 진짜 주제만 가지고 기획-디자인-프론트-백엔드를 혼자 해왔습니다.) 대충 대화 요약1. 지난 몇 주간은 백엔드부터 다시 공부하며 모바일 ↔ 웹 실시간 연동 구조를 직접 구현하는 데 집중했습니다 (연락 늦어서 죄송해요)2. AI의 도움도 많이 받았지만, ..
#4. 실시간 챗봇 시스템 만들기: 타이핑 인디케이터 만들기
·
개발일지/KDT-핀테크 인턴십
메시지는 실시간으로 잘 받아지는데, 상대방이 타이핑하는 걸 실시간으로 볼 수 없을까? 목표- 모바일에서 입력 중 -> 웹에서 대기 할 수 있도록 입력 중이라는 애니메이션이 필요=> 타이핑 시작/중단 실시간 감지 및 UI 업데이트 기존 상황├── 메시지는 실시간으로 잘 받아짐├── 하지만 상대방이 타이핑 중인지 모름└── 사용자 경험 개선 필요 요구사항├── 모바일 사용자 타이핑 → 웹에서 "입력중..." 표시├── 타이핑 시작/중단 실시간 감지└── 3초 후 자동으로 사라짐 (안전장치) # 양방향으로 확장 가능성은 있는데, 단방향으로 먼저 만들고 추후 확장 예정이다.내가 유저라면 상담원이 입력 중인 건 굳이 필요없다는 생각이 들었기 때문에 먼저 단방향으로 구성했다. 과정1. 타입 시스템 확장// ..
#3. 실시간 챗봇 시스템 만들기: socket 실시간 연동 누락 이슈
·
개발일지/KDT-핀테크 인턴십
ㅖ..모바일에서 메시지를 보냈는데 웹에서는 새로고침해야만 보여요. 이게 무슨 상황이었냐면 문제 상황1. 모바일 - 웹 연동 소켓 open2. 모바일 → 웹: 메시지 전송 성공3. 서버: 메시지 저장 및 브로드캐스트 성공4. 웹 클라이언트: 실시간 수신 실패, 약 10초 뒤 리스트에는 업로드. But 새로고침하지 않으면 반영되지 않음.- 채팅방 목록: 실시간 업데이트 정상- 채팅방: 실시간 업데이트 안됨. 새로고침하거나 창을 벗어나야 반영됨 핵심 문제React의 Stale Closure + Socket.IO 리스너 타이밍 이슈 라고 간단하게 정리해줬는데, 과정은 그렇게 간단하지 않았다. 문제 분석 과정 + 코드 분석증상 분석├── 모바일에서 메시지 전송├── 웹에서 실시간 수신 안됨├── 수동 새..
#2. 실시간 챗봇 시스템 만들기: MySql에서 NoSql로, 채팅 메시지 분리
·
개발일지/KDT-핀테크 인턴십
각설하고 갑자기 데베를 분리해보려고 한다. 사실은 Mysql만 알아서, 다른 거 고려도 안한 상태였는데 NoSql이란게 있단다.이럴때 써봐야지 언제 써보냐 하는 주변의 한마디에 팔랑귀가 도졌다. 이럴 때 컴퓨터 전공해서 참 다행이라 생각했다.MySql은 그래도 써본 경험이 있어서 그나마 좀 편하게 적용했던 것 같기 때문에..nosql도 비슷하겠지~ 싶긴 하다. 항목MySQL (Relational / SQL)NoSQL (Not Only SQL)데이터 구조테이블, 행(Row), 열(Column)문서(Document), 키-값(Key-Value), 그래프 등 다양스키마고정된 스키마 필요 (컬럼 타입 명확히 지정)유연한 스키마 (컬럼이 자유롭게 변할 수 있음)확장성수직 확장(더 좋은 서버로)수평 확장(..
#1. 실시간 챗봇 시스템 만들기: 모바일-웹 서버까지 풀스택 연동해보기
·
개발일지/KDT-핀테크 인턴십
1. 전체 흐름 한눈에 보기[고객(Mobile)] ←→ [백엔드(Node.js)] ←→ [상담원(Web)] ↓ 1. 메시지 전송 ↑ 3. 메시지 전달 └────────→ 2. DB 저장 및 브로드캐스트 ─────────┘ - 모바일 앱에서 고객이 메시지를 보내면,- 백엔드 서버가 메시지를 저장하고,- 웹 대시보드에서 상담원이 실시간으로 응답하는 구조! 2. 실제 동작 예시1) 고객(Mobile) → 백엔드로 메시지 전송// socketService.sendMessage(chatRoomId, content)socket.emit('user_message', { chatRoomId, senderType: 'USER', c..
#0. 실시간 챗봇 시스템 만들기: Node.js + MySQL + Socket.IO 환경 세팅
·
개발일지/KDT-핀테크 인턴십
저도 제가 풀스택이 될 줄 몰랐 아니 알았 몰랐어요..그냥 주어진 환경에 최선을 다하자고 생각했는데진짜 발등에 불이 떨어졌더라구요아뜨겁다 1. 프로젝트 초기 세팅1-1. 폴더 구조 backend/ ├─ src/ │ ├─ app.js │ ├─ config/ │ │ ├─ database.js │ │ └─ init-database.js │ ├─ services/ │ │ ├─ userService.js │ │ ├─ chatRoomService.js │ │ └─ messageService.js ├─ package.json ├─ .env └─ README.md 어떻게 해야 프론트처럼 최적화된 폴더 구조를 따질 수 있을지는 레퍼런스를 좀 더 찾아보고..