wannago
- 여행의 성격을 나타내는 컨셉을 만들어 여행지를 기반으로한 버킷을 담아 관리하는 여행 관련 서비스
사이트 화면







담당역할
- 전반적인 백엔드 담당,내부로직 구현,성능 최적화,폴더 아키텍쳐 설계
세부 사항
- 유저,버킷,컨셉,미디어(사진 및 동영상),여행지 CRUD api 구현
- 소셜 로그인(카카오,네이버,구글) 구현
- ErrorCode 및 CustomException 구현
- 팩토리 형식의 파일 관련 클래스 구현
- partial content를 사용한 동영상 스트리밍 구현
- 멀티쓰레드를 사용한 초당 동영상 썸네일 작업 최적화
- spring-security 및 jwt토큰을 사용한 인증 구현
- ResponseBodyAdvice를 통한 response 형태 통일
ERD

폴더 구조
src
├─ main
│ ├─ java
│ │ └─ com
│ │ └─ ssafy
│ │ └─ wannago
│ │ ├─ attraction(여행지 관련 api)
│ │ │ ├─ controller
│ │ │ └─ model
│ │ │ ├─ mapper
│ │ │ └─ service
│ │ ├─ bucket(버킷 관련 api)
│ │ │ ├─ controller
│ │ │ └─ model
│ │ │ ├─ mapper
│ │ │ └─ service
│ │ ├─ concept(컨셉 관련 api)
│ │ │ ├─ controller
│ │ │ └─ model
│ │ │ ├─ mapper
│ │ │ └─ service
│ │ ├─ errorcode(열겨형 클래스 enum을 사용한 코드 및 설명)
│ │ ├─ exception(CustomException 인터페이스 및 예외 구현체 클래스)
│ │ ├─ file(파일 관련 기능 클래스)
│ │ │ └─ utils
│ │ ├─ jwt(jwt토큰 생성 및 검증 관련 클래스)
│ │ ├─ main(health check 및 ExceptionHandler)
│ │ │ └─ controller
│ │ ├─ media(미디어 관련 api)
│ │ │ ├─ controller
│ │ │ └─ model
│ │ │ ├─ mapper
│ │ │ └─ service
│ │ ├─ oauth(소셜로그인 관련 api)
│ │ │ └─ controller
│ │ ├─ response
│ │ ├─ security(spring-security설정)
│ │ │ └─ configure
│ │ ├─ user(유저 관련 api)
│ │ │ ├─ controller
│ │ │ └─ model
│ │ │ ├─ mapper
│ │ │ ├─ service
│ └─ resources
│ ├─ .gitignore
│ └─ mapper(매퍼 설정 xml)
└─ test
유저 다이어그램

요청 흐름도

api 명세서