Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 2.24 KB

README.md

File metadata and controls

38 lines (26 loc) · 2.24 KB

개인 프로젝트 Hello, consultant!

프로젝트 기획 배경

외국인들이 본인의 언어로 소통이 가능한 상담사를 찾으려고 노력하는 모습을 보고 서로의 언어로 소통이 가능한 상담 채팅 플랫폼을 만들고자 계획하게 되었습니다.

제공하는 기능

  • 외국인 고객의 채팅 시작 전 고객 정보 입력 및 채팅방 비밀 번호 설정 (Yes, continue 클릭시 히스토리 채팅 목록으로 이동) image
  • 서로의 언어로 번역되는 채팅 및 상담원의 상담 완료 버튼(상태가 AVAILABLE로 되어 다른 외국인 상담 매칭 가능), 금칙어 처리 image
  • 히스토리 저장에 따른 상담원 및 외국인 고객의 채팅 목록 image
  • 채팅방 읽지 않은 메세지 수 제공
  • fallback method 및 Open 상태 전환 시 관리자에게 텔레그램 봇 알람

운영중인 사이트

프로젝트의 주요 관심사

  • 외부 API에 대한 이중화 및 fallback method 호출, open 상태로의 전환 시 관리자 알림
  • 금칙어 조회에 성능이 좋은 아호코라식 알고리즘을 사용 및 ApplicationRunner를 통하여 스프링 부트 초기화 시 DB에 있는 금칙어 데이터를 로컬 캐시에 올려두도록 구현 및 새롭게 DB에 추가된 경우 서버를 재가동 시키는 번거로움이 존재하여 API 구현
  • 개인 정보 노출을 고려하여 채팅방 비밀번호를 설정 및 암호화, ip Address와 접속 일자를 통한 가변적 salt 처리

기술

  • 프레임워크 : Java 17, Spring(Boot 3.2.0, JPA, Hibernate), JUnit5, Javascript
  • DB : MySQL 8.0, MongoDB 7.0.9
  • 인프라 : AWS(EC2, RDS), Github Action, Docker, Nginx

아키텍처

image