프로젝트 목표/의도
요즘 많은 사람들이 영어를 배우지만, 막상 실전에서 말할 기회는 부족하다. 기존 영어 학습같은 경우에는 정적인 단어, 문장의 학습에만 치중되어 있고 실제 회화를 차용에서 학습하기에는 어려움이 있다. 물론 오프라인 영어회화로 그것들을 보충하면 되지만 그 때 학습했던 표현들을 다시 공부하거나 회고하기에는 어려움이 있다.
"실시간 대화를 하면서, AI가 자동으로 내 학습 콘텐츠를 정리해준다면 어떨까?"
이 질문에서 출발해, 팀원들과 함께 실시간 언어 교환 기반 영어 학습 플랫폼 "하우아유? (How Are You?)"를 기획하게 되었다.
핵심 기능 요약
1 | 구글 소셜 로그인 | Google OAuth를 통한 간편 로그인 (email, provider 저장) |
2 | 회원가입 옵션 선택 | 모국어 / 학습 언어 / 관심 카테고리 설정 |
3 | 채팅방 목록 조회 | 메타데이터 기반 유저 추천, 카테고리 검색, 랜덤 입장 기능 |
4 | 번역 API | NLP 모델 기반 번역 기능, 언어 자동 감지 |
5 | 1:1 실시간 채팅 | WebSocket + Redis 기반 실시간 채팅, 번역 버튼 제공, 채팅 분석 기반 추천 알고리즘 적용 |
6 | 채팅 요약 (AI) | 일정 단위 채팅 내용을 OpenAI Gemini API로 요약 처리 |
7 | 자동 단어장 생성 | 채팅 → 토큰화 → 품사 태깅 → 불용어 제거 → CEFR 레벨 분류 → MongoDB에 저장 |
8 | 단어 퀴즈 | 영한/한영 보기 선택형 퀴즈 (2지선다) 제공 |
9 | 마이페이지 | 단어장, 퀴즈 결과, 채팅 내역 시각화 / 프로필 정보(닉네임, 아바타, 카테고리 등) 수정 가능 |
기능의 세부 사항은 프로젝트 진행에 따라 계속해서 조정될 수 있지만, 3주라는 제한된 기간 내에 구현 가능한 최소 기능(MVP)을 먼저 정리해보았다. 또한, 예상치 못한 변수나 개발 지연 상황에 대비하기 위해 각 기능에 대해 중요도를 부여하고 우선순위를 설정할 계획이다.
시스템 아키텍쳐
사용자의 모든 HTTP 요청은 AWS ALB(Application Load Balancer)를 통해 수신된다. ALB는 요청을 EC2 인스턴스에 배포된 Spring Boot 서버로 전달하며, 이는 비즈니스 로직 및 API 처리의 중심 역할을 수행한다.
Spring Boot (EC2) | 전체 백엔드 애플리케이션 로직 처리. WebSocket, API, 데이터 통합 등 핵심 기능 담당 |
Redis | 채팅 메시지 실시간 캐싱 및 일정 조건에 따른 플러시 처리. 성능 최적화 핵심 |
PostgreSQL (RDS) | 사용자 정보, 학습 설정 등 정형 데이터를 저장하는 관계형 데이터베이스 |
MongoDB | 채팅 내역, 단어장, 퀴즈 이력 등 비정형 데이터 저장소로 활용 |
Elasticsearch | 추출된 단어, 개체명(NER) 등의 검색 딕셔너리 저장소. 빠른 검색을 위한 전용 인덱스 |
spaCy NLP (EC2) | 별도 서버로 구축된 자연어처리 서비스. 채팅 내용을 분석하고 품사 태깅, 개체명 인식 수행 |
- 사용자는 로그인, 채팅, 퀴즈 등 다양한 기능을 Spring 서버에 요청
- 채팅 메시지는 우선 Redis에 임시 저장되며, 일정 조건(예: 시간 or 개수)에 따라 MongoDB와 PostgreSQL에 플러시 저장
- 저장된 채팅 내역은 NLP 서버(spaCy)로 전달되어, 핵심 단어 추출 / 품사 태깅 / 개체명 인식 등을 수행
- 추출된 단어 정보는 Elasticsearch에 저장되어 자동 단어장, 퀴즈 추천 등에 활용됨
- 사용자는 마이페이지에서 단어장/퀴즈 결과/채팅 기록을 시각화된 형태로 확인 가능
'멋사 부트캠프' 카테고리의 다른 글
[멋사 부트캠프] 프로젝트 시작 (1) | 2025.07.09 |
---|---|
[멋사 부트캠프] Day10 - ThreadLocal (0) | 2025.06.30 |
[멋사 부트캠프] Day09 - 예외처리 및 로그분석(ELK) (0) | 2025.06.28 |
[멋사 부트캠프] Day08 - OAuth2 소셜 로그인 (0) | 2025.06.27 |
[멋사 부트캠프] Day04 - Gpt API (0) | 2025.06.20 |