How zyovn/cheeeese-be works
Cheeeese is a Spring backend for seven-day shared photo albums. Users authenticate, create or join albums, upload and browse photos, and can finalize a four-cut selection; album expiry and storage cleanup are also represented in the codebase. The graph emphasizes those product stages plus OAuth, user profiles, and AI summaries. Several services and controllers were not sampled, so their connections are omitted or marked unverified rather than inferred from names alone.
Main entry points: PhotoQueryService.java Photo Queries · AlbumRepository.java Album Records · AlbumQueryService.java Album Discovery · Cheese4cutService.java Four-Cut Selection
Components 24
Identity & Profiles
- User Profiles
src/main/java/com/cheeeese/user/application/UserService.java - User Records
src/main/java/com/cheeeese/user/infrastructure/persistence/UserRepository.java - Kakao OAuth
src/main/java/com/cheeeese/oauth2/application/CustomOAuth2UserService.java - Token Auth
src/main/java/com/cheeeese/auth/application/AuthService.java - Refresh Tokens
src/main/java/com/cheeeese/auth/infrastructure/persistence/RefreshTokenRepository.java
Shared Albums
- Album APIs
src/main/java/com/cheeeese/album/presentation/AlbumController.java - Album Queries
src/main/java/com/cheeeese/album/presentation/AlbumQueryController.java - Album Operations
src/main/java/com/cheeeese/album/application/AlbumService.java - Album Discovery
src/main/java/com/cheeeese/album/application/AlbumQueryService.java - Album Rules
src/main/java/com/cheeeese/album/domain/Album.java - Album Records
src/main/java/com/cheeeese/album/infrastructure/persistence/AlbumRepository.java - Album Expiry
src/main/java/com/cheeeese/album/application/AlbumExpirationService.java
Photo Sharing
- Photo APIs
src/main/java/com/cheeeese/photo/presentation/PhotoQueryController.java - Photo Queries
src/main/java/com/cheeeese/photo/application/PhotoQueryService.java - Photo Records
src/main/java/com/cheeeese/photo/infrastructure/persistence/PhotoRepository.java - Photo Likes
src/main/java/com/cheeeese/photo/infrastructure/persistence/PhotoLikesRepository.java - Upload & Callback
src/main/java/com/cheeeese/photo/application/PhotoService.java - Upload URLs
src/main/java/com/cheeeese/photo/application/PresignedUrlService.java
Four-Cut & AI
- Four-Cut Selection
src/main/java/com/cheeeese/cheese4cut/application/Cheese4cutService.java - AI Summary
src/main/java/com/cheeeese/cheese4cut/application/Cheese4cutAiService.java - Clova AI
src/main/java/com/cheeeese/cheese4cut/infrastructure/ClovaClient.java
Platform Services
- Object Storage
src/main/java/com/cheeeese/global/util/S3Util.java - Redis Cache
src/main/java/com/cheeeese/global/util/RedisCacheUtil.java
Other components
- Album User
Connections 22
- Kakao OAuth → User Records: loads or creates
src/main/java/com/cheeeese/oauth2/application/CustomOAuth2UserService.java - Token Auth → User Records: loads user
src/main/java/com/cheeeese/auth/application/AuthService.java - Token Auth → Refresh Tokens: saves tokens
src/main/java/com/cheeeese/auth/application/AuthService.java - Album Queries → Album Discovery: calls
src/main/java/com/cheeeese/album/presentation/AlbumQueryController.java - Album Discovery → Album Records: queries albums
src/main/java/com/cheeeese/album/application/AlbumQueryService.java - Album Discovery → User Records: loads makers
src/main/java/com/cheeeese/album/application/AlbumQueryService.java - Album Discovery → Four-Cut Selection: uses cut photos
src/main/java/com/cheeeese/album/application/AlbumQueryService.java - Photo Queries → Photo Records: queries photos
src/main/java/com/cheeeese/photo/application/PhotoQueryService.java - Photo Queries → Photo Likes: queries likes
src/main/java/com/cheeeese/photo/application/PhotoQueryService.java - Photo Queries → Album Records: loads album
src/main/java/com/cheeeese/photo/application/PhotoQueryService.java - Photo Queries → Redis Cache: caches pages
src/main/java/com/cheeeese/photo/application/PhotoQueryService.java - Photo APIs → Photo Queries: calls
src/main/java/com/cheeeese/photo/presentation/PhotoQueryController.java - Four-Cut Selection → Photo Records: selects photos
src/main/java/com/cheeeese/cheese4cut/application/Cheese4cutService.java - Four-Cut Selection → Album Records: loads album
src/main/java/com/cheeeese/cheese4cut/application/Cheese4cutService.java - AI Summary → Clova AI: calls AI
src/main/java/com/cheeeese/cheese4cut/application/Cheese4cutAiService.java - Upload URLs → Object Storage: issues upload URLs
- Upload & Callback → Photo Records: records uploads
src/main/java/com/cheeeese/photo/application/PhotoService.java - Album User → Album APIs: manages albums
- Album User → Album Queries: browses albums
- Album User → Photo APIs: browses photos
src/main/java/com/cheeeese/photo/presentation/PhotoQueryController.java - Album Operations → Album Records: manages records
src/main/java/com/cheeeese/album/application/AlbumService.java - Album Expiry → Album Records: expires albums