도메인 설정
- 도메인: DevMountain
- 목적: 개발자가 다양한 강의를 검색, 주문, 리뷰할 수 있는 온라인 학습 플랫폼 개발
필수 기능(MVP) 설정
- 도메인에 맞는 필수 기능을 설정하여 프로젝트의 최소 기능을 정의합니다. 이는 전체적인 프로젝트의 뼈대를 형성하는 기능입니다.
- 사용자
- 회원가입, 로그인(Oauth 2.0, 토큰 or 세션), Spring Security(인증,인가)
- 채팅방 기능 (AI한테 채팅 가능, 사람 X)
- 회원:채팅방 = 1:N 관계 (추천은 하루 최대 3번까지 제한 두기)
- 단계적인 추천
- 대화 형식을 통해 정보들을 더 추가하기
- 해본 언어 물어보기
- 같이 배우고 싶은 언어
- 최종 결과 출력
- 채팅에 원하는 강의 카테고리나 내용을 말하면 가장 높은 유사도를 가진 강의를 추천해 줌 → log로 남기기
- 웹소켓을 통해 프론트에 계속 요청을 보내서 글자를 하나씩 출력하는 방식으로 진행
- 응답값에 강의 이미지도 같이 출력하기 (S3)
- DB에 채팅 기록 저장
- (보류) 유료 구독 기능
- 결제 서비스 API(토스페이)를 활용
- 결제 시 다양한 기능 (이미지와 함께 요청, 채팅방 제한 없음, 개인 프롬프트 설정 가능) 등등을 이용할 수 있음
- 역할이 유료 유저로 변경 (FREE → PRO)
- 유료 유저는 개인 설정 및 채팅방 내용을 기억한 상태로 유지
- 채팅기능: 강의 추천 AI 챗봇 기능 (웹소켓)
- AI 모델 결정 & 적용
- 데이터 크롤링 & S3 저장 (튜터님 질문)
- Spring AI를 MCP 서버에 올려 배포 (PostgreSQL의 pg vector 사용하기)
- 프론트 구현
- 기본적인 로그인 및 회원가입 후 챗봇과의 채팅기능까지 구현
- 부가기능
- 모니터링 (Grafana + Prometheus을 통해서 slack에 경보 시스템 구축하기) {다음주까지 가능할 듯?}
- CI/CD 배포 (Jenkins or Git Hub Action)
- Docker
- 프론트엔드
- 브레이브 서치
- 테스트 코드 작성 (각자 맡은 파트 알아서 만들기)
- 크롤링 자동화 적용 (스케쥴러 사용)
- 많이 추천 받은 강의 및 추천 받은 강의 클릭 수, 리뷰 데이터 등을 활용해 랭킹 기능을 만들어보기
- 리뷰, 추천 커뮤니티가 가능하다면 랭킹 기능도 같이 구현 (시간이 널널하다면 해보기)
- 동시성 이슈로 무료 AI에 많은 요청이 생기면 부하가 생기기 때문에 이를 해결할 방법 (모니터링과 연계해서 확인하기)