사용자가 사이트에 처음 접속하여 회원가입 또는 로그인을 시도한다.
적용 기술
• Spring Security: 사용자 인증/인가 처리
• OAuth 2.0 (Google, Kakao): 소셜 로그인 기능
• 세션 또는 JWT 방식 중 선택: 인증 상태 유지 방식
흐름 예시
• 사용자가 Google 로그인을 클릭하면 OAuth 인증이 수행됨
• 로그인 성공 시, 서버에서 세션 생성 또는 JWT 발급
• 이후 사용자 요청에 세션 또는 토큰을 포함하여 인증 처리
멘토가 강의를 업로드하고, 사용자는 강의를 탐색 및 조회한다.
적용 기술
• Spring Boot + JPA: 강의 CRUD
• AWS S3: 강의 썸네일 및 영상 파일 저장소
• Redis: 강의 조회수 캐싱 처리
• Redis 락 또는 Lua Script: 좋아요 동시성 제어
흐름 예시
• 강의 등록 시 영상 파일은 S3에 저장됨
• 강의 상세 진입 시 조회수는 Redis를 통해 증가
• 좋아요 클릭 시 Redis를 통해 중복 처리 방지
사용자가 강의를 장바구니에 담고 일부 강의만 선택하여 결제한다.
적용 기술
• JPA: Cart, Order, OrderItem 도메인 구성
• Redis: 장바구니 항목 캐시 또는 선택 항목 임시 저장
• PG사 API: 토스페이, 카카오페이 등 결제 연동
흐름 예시
• 사용자가 강의를 장바구니에 담고 선택
• 선택된 강의만으로 주문(Order)과 주문 상세(OrderItem) 생성
• PG사 API와 연동하여 결제 승인 처리
수강한 강의에 대한 리뷰를 작성하고 평가한다.
적용 기술
• Spring Boot + JPA: 리뷰 CRUD 처리
• Redis: 리뷰 좋아요 수 처리
• MySQL: 리뷰 평점 및 리뷰어 수 계산
흐름 예시
• 리뷰 등록 시 강의 ID 기준으로 연결 저장
• 좋아요 클릭 시 Redis에 저장, 주기적으로 DB 반영
⸻
수강 중인 강의에 대해 멘토와 실시간 소통한다.
적용 기술
• WebSocket: 양방향 통신
• Redis Pub/Sub: 메시지 브로드캐스트 처리
• MySQL: 메시지 영구 저장
흐름 예시
• 사용자가 질문 입력 → 서버로 전송 → Redis Pub/Sub로 전달
• 모든 참여자에게 브로드캐스트되고, 메시지는 DB에 저장됨
사용자가 원하는 주제나 필요를 입력하면 적절한 강의를 추천받는다.
적용 기술
• LLM API (Claude, GPT 등)
• 메타데이터 임베딩 및 유사도 검색
흐름 예시
• 사용자가 텍스트 입력 → 챗봇이 의도 파악
• 사전 임베딩된 강의 데이터와 유사도 비교 → 강의 추천
⸻
메인 화면에 인기 강의 목록을 노출한다.
적용 기술
• Redis Sorted Set + TTL: 인기 순위 저장
• 스케줄러: 매일 점수 기반으로 캐시 갱신
흐름 예시
• 강의 조회수, 장바구니 수 등을 점수로 환산
• Redis에 저장된 인기 순위를 기반으로 메인에 노출
코드 변경 시 자동으로 서버에 배포되고 상태를 모니터링한다.
적용 기술
• GitHub Actions: 테스트, 빌드, 배포 자동화
• Docker: 어플리케이션 컨테이너화
• Nginx + EC2: 실제 배포 환경
• Grafana + Prometheus: 시스템 상태 모니터링, Slack 경보 연동
흐름 예시
• 코드 푸시 시 GitHub Actions가 실행되어 빌드 및 테스트 수행
• Docker 이미지를 빌드하여 EC2 서버에 배포
• 상태 정보는 Grafana 대시보드에서 실시간 확인 가능