팀 프로젝트 구현 과정 정리

박화랑·2025년 5월 29일
1

Spring_6기

목록 보기
24/32

도메인 설정

  • 도메인: 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에 많은 요청이 생기면 부하가 생기기 때문에 이를 해결할 방법 (모니터링과 연계해서 확인하기)
profile
개발자 희망생

0개의 댓글