-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
🔍 개선사항
현재 사진 업로드/관리 기능이 체계적으로 분리되어 있지 않아, 다음 문제가 있습니다.
- 사진 업로드를 위한 S3 업로드 흐름(업로드 URL 발급 등) 이 도메인 레벨로 정리되어 있지 않음
- 사진을 앨범에 귀속/이동/삭제 하는 관리 기능이 부족함
- 앨범에 속하지 않은(미지정) 사진을 별도로 조회/관리하기 어려움
- Trip 기준 권한 체크가 각 기능에서 일관되게 적용되기 어려움
💡 제안하는 해결 방안
Photo 도메인을 도입하고, S3 업로드를 위한 인프라를 함께 구성합니다.
구현 범위는 아래와 같습니다.
-
Photo API 구현
- 업로드 URL 생성 API (GenerateUploadUrls)
- 사진 메타데이터 생성/등록 API (CreatePhotos)
- 앨범별 사진 목록 조회 (GetPhotosByAlbum)
- 미지정(앨범 없는) 사진 조회 (GetUnassignedPhotos)
- 사진 단건 조회 (GetPhoto)
- 사진 이동(앨범 변경) (MovePhotos)
- 사진 삭제 (DeletePhotos)
-
권한 체크 적용
- Trip 편집 권한이 있는 사용자만 업로드/이동/삭제 가능하도록 TripPermissionService 기반으로 처리
-
S3 연동 구성
- S3Config, S3Service, S3KeyGenerator 기반으로 업로드 키 생성 및 업로드 URL 발급 흐름 정리
- application-dev.yml, build.gradle 설정 반영
📈 기대 효과
- 사진 업로드부터 저장/조회/이동/삭제까지 도메인 책임이 명확해짐
- 앨범/미지정 사진 관리가 가능해져 사용자 경험 개선
- S3 업로드 흐름이 표준화되어 추후 기능 확장(대표사진, 썸네일, 검증/상태관리 등) 기반 마련
- 권한 체크 로직이 공통화되어 보안/정합성 확보
💬 추가 참고사항
- Photo 도메인 Swagger 문서 작성
- 테스트 코드 작성
- API 테스트 시나리오 작성
- dev seed 수정
coderabbitai
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request