NUMBLE에서 2023.03.13 ~ 2023.03.26 동안 진행된 네이버 MYBOX 서버 만들기 챌린지에 참여해 수행한 개인 프로젝트입니다.
챌린지 종료 후 개인적으로 3주 정도 더 프로젝트를 보완하였습니다.
- Spring MVC, RDBMS, Storage 솔루션 활용 ✅
- 서로 다른 솔루션(DB, Storage)간의 연동 ✅
- transaction 처리
- 아키텍쳐와 ERD, DB schema 설계를 진행하고 구현 ✅
- CI/CD 파이프라인 구축 ✅
- 테스트 코드 작성 ✅
- Spring Security + JWT를 활용한 회원가입/로그인 구현 ✅
- nGrinder를 통한 성능 테스트
- 정적 분석 등 추가적인 코드 품질 관리 요소 추가
- 캐시, 배치, message queue 등을 통한 성능 향상

- 유저 API
- 유저 생성(login)
- 30GB 이상의 Root Folder 생성 기능
- 유저 정보 조회 — userId, 사용량 등
- 사용 가능한 용량 및 사용중 용량 조회 기능
- 유저 생성(login)
- 파일 API
- 파일 조회
- (옵션) 이미지 파일인지 텍스트 파일인지 구분
- 파일 업로드
- 파일명 중복 확인 기능
- 파일 크기 확인 기능
- 사용 가능한 공간 확인 기능
- 사용 가능한 용량 차감 및 사용중 용량 증가 기능
- 업로드 성공 확인 기능
- 업로드 실패 시 사용 가능한 공간 롤백 기능
- 파일 다운로드
- 다운로드 용량 표시 기능
- 파일 삭제
- 사용 가능한 공간 확보
- 파일 조회
- 폴더 API
- 폴더 조회
- 폴더 생성
- 폴더명 중복 확인 기능
- 폴더 삭제
- 자식 파일/폴더 리스트 조회
- zip 파일 다운로드(옵션)
SpringBoot 2.6
MySQL
JUnit5
Mockito
Github Actions
AWS EC2, RDS
NCP Object Storage
