멀리 있어도, 함께 추억을 남길 수 있는 온라인 포토부스 서비스
‘예나, 지금’ 은 친구, 가족, 연인과 시간과 장소에 구애 받지 않고 함께 N컷 사진이나 영상을 촬영하고 꾸미며 공유할 수 있는 온라인 포토부스 플랫폼입니다.
시공간의 제약 없이 소중한 사람들과 즐겁게 추억을 만들고 쉽게 공유할 수 있습니다.
2025.07.14 ~ 2025.08.18 (6주)
| Name | 임성룡 | 김예나 | 서연희 |
|---|---|---|---|
| FE | ![]() |
![]() |
![]() |
| Position | Leader, 촬영·편집 페이지 | FE Leader, 로그인 상태 관리 도입, 어제/지난주의 순간 페이지 | 갤러리·프로필 페이지 |
| Contact | ryongseong.dev@gmail.com | yeneua.dev@gmail.com | tjdusgml1219@naver.com |
| Name | 김환수 | 박정훈 | 전원균 |
|---|---|---|---|
| BE | ![]() |
![]() |
![]() |
| Position | BE Leader, 인프라 및 CI/CD 파이프라인 구축, N컷 게시물·오픈비두 API 개발 | S3 연계 미디어 관리 기능 구현, 댓글·랭킹·촬영 에셋 등 조회 기능 개발 | 사용자 인증 및 FFmpeg 합성 기능 개발, 영상 포트폴리오 제작 |
| Contact | skes01149@naver.com | qwg531@naver.com | spotydol7@gmail.com |
- 사진이나 영상을 실시간으로 촬영 가능 (카운트다운 지원)
- 사용자의 위치나 크기, 밝기 개별 조절 가능
- 원하는 배경 업로드, 필터, 컷 수, 촬영 횟수, 영상 촬영 시간 지정 가능
- 방 입장 시 자동으로 배경 제거
- 프레임, 스티커, 텍스트로 N컷 꾸미기
- 실시간으로 편집 내용 반영
- 공개·팔로잉·나만보기 공개범위 지정 가능
- 좋아요·댓글로 반응 남기기
- 공개 갤러리와 친구 갤러리로 필터링된 갤러리
- 어제의 순간 : 전날 N컷 좋아요 수 기준으로 정렬
- 지난주의 순간 : 주간 하이라이트 좋아요 수 기준으로 정렬
BE
BackEnd
┣ .gitlab
┃ ┗ merge_request_templates
┃ ┃ ┗ default.md
┣ .gradle
┃ ┣ 8.14.3
┃ ┃ ┣ checksums
┃ ┃ ┃ ┗ checksums.lock
┃ ┃ ┣ expanded
┃ ┃ ┣ fileChanges
┃ ┃ ┃ ┗ last-build.bin
┃ ┃ ┣ fileHashes
┃ ┃ ┃ ┣ fileHashes.bin
┃ ┃ ┃ ┗ fileHashes.lock
┃ ┃ ┣ vcsMetadata
┃ ┃ ┗ gc.properties
┃ ┣ buildOutputCleanup
┃ ┃ ┣ buildOutputCleanup.lock
┃ ┃ ┗ cache.properties
┃ ┗ vcs-1
┃ ┃ ┗ gc.properties
┣ .idea
┃ ┗ codeStyles
┃ ┃ ┗ codeStyleConfig.xml
┣ gradle
┃ ┗ wrapper
┃ ┃ ┣ gradle-wrapper.jar
┃ ┃ ┗ gradle-wrapper.properties
┣ src
┃ ┣ main
┃ ┃ ┣ java
┃ ┃ ┃ ┗ com
┃ ┃ ┃ ┃ ┗ example
┃ ┃ ┃ ┃ ┃ ┗ yenanow
┃ ┃ ┃ ┃ ┃ ┃ ┣ auth
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ AuthController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ ForgotPasswordRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ LoginRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ LoginResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ ReissueTokenResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ oauth
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CustomOAuth2UserService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ OAuth2LoginSuccessHandler.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ AuthService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ AuthServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ comment
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ CommentController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ query
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ CommentQueryDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CommentCreateRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ CommentUpdateRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CommentListResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ CommentResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ Comment.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ CommentRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CommentCountSyncService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CommentService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ CommentServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ common
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ config
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ cors
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CorsConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ CorsProperties.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ AsyncConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ EmailConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ QuerydslConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ SecurityConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ SwaggerConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ exception
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ BusinessException.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ ErrorCode.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ ErrorResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ GlobalExceptionHandler.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ security
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CustomAuthenticationEntryPoint.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ JwtAuthenticationFilter.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ smtp
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ VerificationEmailRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ VerifyEmailRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ VerifyEmailResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ MailService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ MailServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ util
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CookieUtil.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ JwtUtil.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ UuidUtil.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ film
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FfmpegController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ FilmController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ MergeRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ MergeRequestItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ BackgroundListResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FrameListResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FrameListResponseItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ MergeResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ StickerListResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ StickerListResponseItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Background.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Frame.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ Sticker.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ BackgroundRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FrameRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ StickerRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FilmService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ FilmServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ gallery
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GalleryController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ RankingController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ query
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ LikeUserQueryDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CreateNcutRelayRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CreateNcutRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CreateRelayNcutRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CutItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ ParticipantItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UpdateNcutContentRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UpdateNcutVisibilityRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UpdateRelayItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ UpdateRelayRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ MyGalleryResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ MyNcutResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutDetailResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutLikeResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutLikesResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutLikesResponseItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutRankingResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutRelayListResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ RelayListItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ RelayParticipantItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UpdateNcutContentResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ UpdateNcutVisibilityResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Ncut.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutLike.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Relay.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ RelayCut.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ RelayParticipant.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ Visibility.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutLikeQueryRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutLikeQueryRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutLikeRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutQueryRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutQueryRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutRankingQueryRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutRankingQueryRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ RelayCutRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ RelayQueryRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ RelayQueryRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ RelayRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ scheduler
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ RankingScheduler.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ RelayCleanupScheduler.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GalleryService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ GalleryServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NcutCountSyncService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ RankingServiceRedis.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ RankingServiceRedisImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ openvidu
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ OpenviduController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CodeRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ TokenRelayRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ TokenRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ CodeResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ TokenResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ OpenviduService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ OpenviduServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ s3
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ config
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ S3Config.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ S3Controller.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ PresignedUrlRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ PresignedUrlResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ S3Service.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ S3ServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ UploadDbSaveService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ util
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ S3KeyFactory.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ users
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ UsersController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NicknameRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ PresignedProfileRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ SignupRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UpdateMyInfoRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UpdatePasswordRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ UpdateProfileUrlRequest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowerResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowerResponseItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowingResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowingResponseItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ MyInfoResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ NicknameResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ ProfileResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ SignupProfileUrlResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ SignupResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UpdateProfileUrlResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UserInviteSearchResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UserInviteSearchResponseItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UserSearchResponse.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ UserSearchResponseItem.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Follow.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ Gender.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ User.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowQueryRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowQueryRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UserQueryRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UserQueryRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ UserRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowCountSyncService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ FollowServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ UserService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ UserServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ YenanowApplication.java
┃ ┃ ┗ resources
┃ ┃ ┃ ┗ application.properties
┃ ┗ test
┃ ┃ ┗ java
┃ ┃ ┃ ┗ com
┃ ┃ ┃ ┃ ┗ example
┃ ┃ ┃ ┃ ┃ ┗ yenanow
┃ ┃ ┃ ┃ ┃ ┃ ┗ YenanowApplicationTests.java
┣ .gitattributes
┣ .gitignore
┣ build.gradle
┣ Dockerfile
┣ gradlew
┣ gradlew.bat
┣ Jenkinsfile
┣ README.md
┗ settings.gradle
FE
FrontEnd
┣ .gitlab
┃ ┗ merge_request_templates
┃ ┃ ┗ default.md
┣ public
┃ ┣ header_logo.png
┃ ┣ logo.png
┃ ┗ user_default_profile.png
┣ src
┃ ┣ api
┃ ┃ ┣ auth.ts
┃ ┃ ┣ client.ts
┃ ┃ ┣ comment.ts
┃ ┃ ┣ gallerylist.ts
┃ ┃ ┣ like.ts
┃ ┃ ┣ moment.ts
┃ ┃ ┣ ncut.ts
┃ ┃ ┣ ncutdetail.ts
┃ ┃ ┣ profile.ts
┃ ┃ ┣ s3.ts
┃ ┃ ┣ search.ts
┃ ┃ ┗ user.ts
┃ ┣ assets
┃ ┃ ┗ Landing
┃ ┃ ┃ ┣ landing_photo.png
┃ ┃ ┃ ┗ photo.svg
┃ ┣ components
┃ ┃ ┣ Common
┃ ┃ ┃ ┣ Button.tsx
┃ ┃ ┃ ┣ FollowModal.tsx
┃ ┃ ┃ ┣ GalleryCard.tsx
┃ ┃ ┃ ┣ Input.tsx
┃ ┃ ┃ ┣ LoadingSpinner.tsx
┃ ┃ ┃ ┣ Logo.tsx
┃ ┃ ┃ ┣ OptionModal.tsx
┃ ┃ ┃ ┣ ProfileImage.tsx
┃ ┃ ┃ ┗ SearchModal.tsx
┃ ┃ ┣ Gallery
┃ ┃ ┃ ┣ GalleryList.tsx
┃ ┃ ┃ ┗ GalleryTabMenu.tsx
┃ ┃ ┣ GalleryDetail
┃ ┃ ┃ ┣ CommentSection.tsx
┃ ┃ ┃ ┣ DeletePostContent.tsx
┃ ┃ ┃ ┣ DownloadButton.tsx
┃ ┃ ┃ ┣ DownloadMenu.tsx
┃ ┃ ┃ ┣ LikeButton.tsx
┃ ┃ ┃ ┣ LikeListModal.tsx
┃ ┃ ┃ ┣ PhotoSection.tsx
┃ ┃ ┃ ┣ PostEditButton.tsx
┃ ┃ ┃ ┣ PostEditMenu.tsx
┃ ┃ ┃ ┣ PostSection.tsx
┃ ┃ ┃ ┣ ShareButton.tsx
┃ ┃ ┃ ┣ ShareModalContent.tsx
┃ ┃ ┃ ┣ UserInfo.tsx
┃ ┃ ┃ ┣ VisibilityEditContent.tsx
┃ ┃ ┃ ┗ VisibilityIcon.tsx
┃ ┃ ┣ Header
┃ ┃ ┃ ┗ Header.tsx
┃ ┃ ┣ Moment
┃ ┃ ┃ ┣ MomentCut.tsx
┃ ┃ ┃ ┗ MomentLayout.tsx
┃ ┃ ┣ MyProfile
┃ ┃ ┃ ┣ ProfileEdit.tsx
┃ ┃ ┃ ┗ ProfileView.tsx
┃ ┃ ┣ NCut
┃ ┃ ┃ ┣ Create
┃ ┃ ┃ ┃ ┣ Fifth.tsx
┃ ┃ ┃ ┃ ┣ First.tsx
┃ ┃ ┃ ┃ ┣ Fourth.tsx
┃ ┃ ┃ ┃ ┣ Last.tsx
┃ ┃ ┃ ┃ ┣ Second.tsx
┃ ┃ ┃ ┃ ┗ Third.tsx
┃ ┃ ┃ ┣ Edit
┃ ┃ ┃ ┃ ┣ DecorateNCut.tsx
┃ ┃ ┃ ┃ ┣ Saving.tsx
┃ ┃ ┃ ┃ ┣ SelectCuts.tsx
┃ ┃ ┃ ┃ ┗ SelectFrame.tsx
┃ ┃ ┃ ┣ Enter
┃ ┃ ┃ ┃ ┗ EnterConfirmModal.tsx
┃ ┃ ┃ ┣ Chat.tsx
┃ ┃ ┃ ┣ LoadingScreen.tsx
┃ ┃ ┃ ┣ NCutBackground.tsx
┃ ┃ ┃ ┗ SessionPrompt.tsx
┃ ┃ ┗ UserProfile
┃ ┃ ┃ ┗ ProfileHeader.tsx
┃ ┣ hooks
┃ ┃ ┣ useBackgroundRemoval.tsx
┃ ┃ ┣ useDragAndDrop.tsx
┃ ┃ ┣ useRoom.tsx
┃ ┃ ┗ useToast.tsx
┃ ┣ pages
┃ ┃ ┣ Auth
┃ ┃ ┃ ┣ Login.tsx
┃ ┃ ┃ ┣ ResetPassword.tsx
┃ ┃ ┃ ┣ Signup.tsx
┃ ┃ ┃ ┣ SignupMore.tsx
┃ ┃ ┃ ┗ SocialCallback.tsx
┃ ┃ ┣ Gallery
┃ ┃ ┃ ┣ Gallery.tsx
┃ ┃ ┃ ┗ GalleryDetail.tsx
┃ ┃ ┣ Landing
┃ ┃ ┃ ┗ Landing.tsx
┃ ┃ ┣ MyProfile
┃ ┃ ┃ ┣ ChangePassword.tsx
┃ ┃ ┃ ┗ MyProfileInfo.tsx
┃ ┃ ┣ NCut
┃ ┃ ┃ ┣ CreateSession.tsx
┃ ┃ ┃ ┣ EditNCut.tsx
┃ ┃ ┃ ┣ NCutMain.tsx
┃ ┃ ┃ ┣ ParticipationSession.tsx
┃ ┃ ┃ ┗ Session.tsx
┃ ┃ ┣ UserProfile
┃ ┃ ┃ ┗ UserProfile.tsx
┃ ┃ ┗ Moment.tsx
┃ ┣ store
┃ ┃ ┗ authStore.ts
┃ ┣ styles
┃ ┃ ┣ components
┃ ┃ ┃ ┣ Common
┃ ┃ ┃ ┃ ┣ ButtonStyle.ts
┃ ┃ ┃ ┃ ┣ FollowModalStyle.ts
┃ ┃ ┃ ┃ ┣ GalleryCardStyle.ts
┃ ┃ ┃ ┃ ┣ GalleryTabMenu.ts
┃ ┃ ┃ ┃ ┣ InputStyle.ts
┃ ┃ ┃ ┃ ┣ LoadingStyle.ts
┃ ┃ ┃ ┃ ┣ LogoStyle.ts
┃ ┃ ┃ ┃ ┣ OptionModalStyle.ts
┃ ┃ ┃ ┃ ┣ ProfileImageStyle.ts
┃ ┃ ┃ ┃ ┗ SearchModalStyle.ts
┃ ┃ ┃ ┣ Gallery
┃ ┃ ┃ ┃ ┗ GalleryStyle.ts
┃ ┃ ┃ ┣ GalleryDetail
┃ ┃ ┃ ┃ ┣ CommentStyle.ts
┃ ┃ ┃ ┃ ┣ DeletePostContentStyle.ts
┃ ┃ ┃ ┃ ┣ DownloadButtonStyle.ts
┃ ┃ ┃ ┃ ┣ DownloadMenuStyle.ts
┃ ┃ ┃ ┃ ┣ LikeButtonStyle.ts
┃ ┃ ┃ ┃ ┣ LikeListModalStyle.ts
┃ ┃ ┃ ┃ ┣ PhotoSectionStyle.ts
┃ ┃ ┃ ┃ ┣ PostEditButtonStyle.ts
┃ ┃ ┃ ┃ ┣ PostEditMenuStyle.ts
┃ ┃ ┃ ┃ ┣ PostSectionStyle.ts
┃ ┃ ┃ ┃ ┣ ShareButtonStyle.ts
┃ ┃ ┃ ┃ ┣ ShareModalContentStyle.ts
┃ ┃ ┃ ┃ ┣ UserInfoStyle.ts
┃ ┃ ┃ ┃ ┗ VisibilityEditContentStyle.ts
┃ ┃ ┃ ┣ Header
┃ ┃ ┃ ┃ ┗ HeaderStyle.ts
┃ ┃ ┃ ┣ Moment
┃ ┃ ┃ ┃ ┣ MomentCutStyle.ts
┃ ┃ ┃ ┃ ┗ MomentLayoutStyle.ts
┃ ┃ ┃ ┣ MyProfile
┃ ┃ ┃ ┃ ┣ ProfileEditStyle.ts
┃ ┃ ┃ ┃ ┗ ProfileViewStyle.ts
┃ ┃ ┃ ┣ NCut
┃ ┃ ┃ ┃ ┣ Create
┃ ┃ ┃ ┃ ┃ ┣ FifthStyle.ts
┃ ┃ ┃ ┃ ┃ ┣ FirstStyle.ts
┃ ┃ ┃ ┃ ┃ ┣ GlobalStyle.ts
┃ ┃ ┃ ┃ ┃ ┣ LastStyle.ts
┃ ┃ ┃ ┃ ┃ ┣ SecondStyle.ts
┃ ┃ ┃ ┃ ┃ ┗ ThirdStyle.ts
┃ ┃ ┃ ┃ ┣ Edit
┃ ┃ ┃ ┃ ┃ ┣ DecorateNCutStyle.ts
┃ ┃ ┃ ┃ ┃ ┣ SavingStyle.ts
┃ ┃ ┃ ┃ ┃ ┣ SelectCutsStyle.ts
┃ ┃ ┃ ┃ ┃ ┗ SelectFrameStyle.ts
┃ ┃ ┃ ┃ ┣ Enter
┃ ┃ ┃ ┃ ┃ ┗ EnterModalStyle.ts
┃ ┃ ┃ ┃ ┣ BackgroundStyle.ts
┃ ┃ ┃ ┃ ┣ ChatStyle.ts
┃ ┃ ┃ ┃ ┣ LoadingScreenStyle.ts
┃ ┃ ┃ ┃ ┗ SessionPromptStyle.ts
┃ ┃ ┃ ┗ UserProfile
┃ ┃ ┃ ┃ ┗ ProfileHeaderStyle.ts
┃ ┃ ┣ hooks
┃ ┃ ┃ ┗ ToastStyles.ts
┃ ┃ ┣ pages
┃ ┃ ┃ ┣ Auth
┃ ┃ ┃ ┃ ┣ AuthGlobalStyle.ts
┃ ┃ ┃ ┃ ┣ LoginStyle.ts
┃ ┃ ┃ ┃ ┗ SignupMoreStyle.ts
┃ ┃ ┃ ┣ Gallery
┃ ┃ ┃ ┃ ┣ GalleryDetailStyle.ts
┃ ┃ ┃ ┃ ┣ GalleryListStyle.ts
┃ ┃ ┃ ┃ ┗ LoadingSpinnerStyle.ts
┃ ┃ ┃ ┣ Landing
┃ ┃ ┃ ┃ ┗ LandingStyle.ts
┃ ┃ ┃ ┣ Moment
┃ ┃ ┃ ┃ ┗ MomentStyle.ts
┃ ┃ ┃ ┣ MyProfile
┃ ┃ ┃ ┃ ┗ ChangePasswordStyle.ts
┃ ┃ ┃ ┗ NCut
┃ ┃ ┃ ┃ ┣ EditNCutStyle.ts
┃ ┃ ┃ ┃ ┣ NCutMainStyle.ts
┃ ┃ ┃ ┃ ┣ ParticipationSessionStyle.ts
┃ ┃ ┃ ┃ ┗ SessionStyle.ts
┃ ┃ ┗ GlobalStyle.ts
┃ ┣ types
┃ ┃ ┣ auth.ts
┃ ┃ ┣ ButtonType.ts
┃ ┃ ┣ Chat.ts
┃ ┃ ┣ Comment.ts
┃ ┃ ┣ Like.ts
┃ ┃ ┣ moment.ts
┃ ┃ ┣ ncut.ts
┃ ┃ ┣ NCutDetail.ts
┃ ┃ ┣ NCutList.ts
┃ ┃ ┣ Profile.ts
┃ ┃ ┣ s3.ts
┃ ┃ ┣ Session.ts
┃ ┃ ┣ User.ts
┃ ┃ ┣ UserList.ts
┃ ┃ ┗ UserSearchModal.ts
┃ ┣ utils
┃ ┃ ┣ date.ts
┃ ┃ ┗ validators.ts
┃ ┣ App.tsx
┃ ┣ main.tsx
┃ ┗ vite-env.d.ts
┣ .dockerignore
┣ .env.development
┣ .gitignore
┣ .prettierignore
┣ .prettierrc
┣ Dockerfile
┣ eslint.config.js
┣ index.html
┣ Jenkinsfile
┣ nginx.conf
┣ package.json
┣ README.md
┣ tsconfig.app.json
┣ tsconfig.json
┣ tsconfig.node.json
┣ tsconfig.paths.json
┣ vite.config.ts
┗ yarn.lock
- 소셜 로그인(카카오, 구글) 가능
- 이메일 인증 후 가입
- 닉네임 필수 기입
- 원하는 배경 등록, 필터, 컷 수, 촬영 횟수, 영상 촬영 시간 지정 가능
- 방 코드 입력 후 입장 가능
- 크기, 위치, 밝기 개별 조절 가능
- 타이머 제공, 영상 촬영 시 남은 시간 제공
- 채팅 가능
- 실시간 대화 가능
- 실시간 편집 반영
- 프레임, 스티커, 텍스트로 꾸미기 가능
- 팔로잉 한 유저의 N컷만 보여짐
- 좋아요, 댓글로 반응
- N컷 공유 가능
- 나의 N컷 다운로드, 글 수정, 공개범위 수정, 타인 댓글 삭제 가능
- 어제/ 지난주의 N컷을 좋아요가 높은 순으로 볼 수 있음
- 사용자 검색 후 프로필 이동
- 나의 N컷 확인 가능, 내 정보 조회가능
- 팔로워, 팔로잉 확인 가능
- 유저의 공개 범위가 전체공개인 N컷 확인 가능
- 팔로우, 언팔로우 가능
- 팔로워, 팔로잉 확인 가능
- 나의 정보 수정 및 회원 탈퇴























