프로젝트 기획 - ttasjwi/board-system GitHub Wiki

목표

  • 포트폴리오
  • 스프링부트로 간단한 Api 게시판을 구현하기
  • 성능 테스트를 통해 병목지점을 확인하고, 성능을 개선하는 경험하기
  • 간단한 인프라를 클라우드 환경(AWS)에 지속적 통합/배포하는 경험
  • 도커, 쿠버네티스를 사용한 배포 경험
  • 애플리케이션 신뢰성을 보장할 수 있는 선에서 테스트코드 작성

요구사항

  • 일반 회원가입, 로그인
    • 이메일 인증을 필요로 함
  • 소셜 회원가입, 로그인
    • 비회원이 소셜 로그인하면 회원가입됨
    • 소셜 연동 : 기존 회원이 소셜로그인하면 소셜 연동이 추가됨
  • JWT 를 사용한 인증/인가(액세스 토큰, 리프레시 토큰)
  • 회원 프로필 사진 등록, 수정, 삭제
  • 게시판 생성, 수정, 조회(단건, 목록)
  • 게시판 카테고리 생성, 수정, 삭제, 목록 조회
  • 게시글 생성, 수정, 삭제, 조회(단건, 목록)
  • 게시글 조회수
    • 게시글 조회 어뷰징 방지를 위해, 10분 단위로 한 번만 집계하도록 하기
  • 게시글 좋아요/싫어요/좋아요수/싫어요수
  • 댓글 생성, 수정, 삭제, 조회(단건, 목록)
    • 대댓글 : 최대 2 Depth

기술 스택

  • Kotlin
  • Spring Boot
    • Web
    • Data JPA
    • Data Redis
    • Security(+OAuth2 Client)
  • MySQL
  • Redis
  • AWS
  • GitHub Actions
  • Docker
  • Kubernetes