프로젝트 기획 - ttasjwi/board-system GitHub Wiki
목표
- 포트폴리오
- 스프링부트로 간단한 Api 게시판을 구현하기
- 성능 테스트를 통해 병목지점을 확인하고, 성능을 개선하는 경험하기
- 간단한 인프라를 클라우드 환경(AWS)에 지속적 통합/배포하는 경험
- 도커, 쿠버네티스를 사용한 배포 경험
- 애플리케이션 신뢰성을 보장할 수 있는 선에서 테스트코드 작성
요구사항
- 일반 회원가입, 로그인
- 소셜 회원가입, 로그인
- 비회원이 소셜 로그인하면 회원가입됨
- 소셜 연동 : 기존 회원이 소셜로그인하면 소셜 연동이 추가됨
- JWT 를 사용한 인증/인가(액세스 토큰, 리프레시 토큰)
- 회원 프로필 사진 등록, 수정, 삭제
- 게시판 생성, 수정, 조회(단건, 목록)
- 게시판 카테고리 생성, 수정, 삭제, 목록 조회
- 게시글 생성, 수정, 삭제, 조회(단건, 목록)
- 게시글 조회수
- 게시글 조회 어뷰징 방지를 위해, 10분 단위로 한 번만 집계하도록 하기
- 게시글 좋아요/싫어요/좋아요수/싫어요수
- 댓글 생성, 수정, 삭제, 조회(단건, 목록)
기술 스택
- Kotlin
- Spring Boot
- Web
- Data JPA
- Data Redis
- Security(+OAuth2 Client)
- MySQL
- Redis
- AWS
- GitHub Actions
- Docker
- Kubernetes