Backend
[backend]
│
├─ Dockerfile
├─ build.gradle
├─ gradlew
├─ gradlew.bat
├─ settings.gradle
├─ gradle
└─ src
└─ main
├─ resources
│ ├─ application.properites
│ ├─ application-dev.properties
│ └─ application-prod.properties
└─ java
└─ com
└─ showing
└─ backend
├─ BackendApplication.java
├─ **api**
│ ├─ **controller**
│ │ ├─ UserController.java
│ │ ├─ PerformanceController.java
│ │ ├─ RatingController.java
│ │ ├─ RecommendController.java
│ │ ├─ ReviewController.java
│ │ └─ SearchController.java
│ ├─ **request**
│ │ ├─ UserReq.java
│ │ ├─ AddRatingReq.java
│ │ ├─ ModifyRatingReq.java
│ │ └─ ModifyUserInfoReq.java
│ ├─ **response**
│ │ ├─ ActorRes.java
│ │ ├─ FavActorRes.java
│ │ ├─ FavTagRes.java
│ │ ├─ LoginRes.java
│ │ ├─ MainPerformanceListRes.java
│ │ ├─ MyPageRes.java
│ │ ├─ PerformanceDetailRes.java
│ │ ├─ PerformanceRes.java
│ │ ├─ PreviewReviewByPerformanceRes.java
│ │ ├─ PreviewReviewByUserRes.java
│ │ ├─ RankingRes.java
│ │ ├─ RatingRes.java
│ │ ├─ RecommendByActorRes.java
│ │ ├─ RecommendRes.java
│ │ ├─ ReviewBySeasonRes.java
│ │ ├─ ReviewByUserRes.java
│ │ ├─ ReviewDetailRes.java
│ │ ├─ SearchRes.java
│ │ ├─ SeasonDateRes.java
│ │ ├─ SeasonRes.java
│ │ ├─ TokenRes.java
│ │ └─ WordCloudRes.java
│ └─ **service**
│ │ ├─ ActorService.java
│ │ ├─ ActorServieImpl.java
│ │ ├─ AuthService.java
│ │ ├─ AuthServiceImpl.java
│ │ ├─ PerformanceService.java
│ │ ├─ PerformanceServiceImpl.java
│ │ ├─ RankingService.java
│ │ ├─ RankingServiceImpl.java
│ │ ├─ RatingService.java
│ │ ├─ RatingServiceImpl.java
│ │ ├─ RecommendService.java
│ │ ├─ RecommendServiceImpl.java
│ │ ├─ ReviewService.java
│ │ ├─ ReviewServiceImpl.java
│ │ ├─ SearchService.java
│ │ ├─ SearchServiceImpl.java
│ │ ├─ SeasonService.java
│ │ ├─ SeasonServiceImpl.java
│ │ ├─ TagService.java
│ │ ├─ TagServiceImpl.java
│ │ ├─ UserService.java
│ │ └─ UserServiceImpl.java
├─ **common**
│ ├─ **auth**
│ ****│ ├─ JwtAccessDeniedHandler.java
****│ ****│ ├─ JwtAuthenticationEntryPoint.java
****│ ****│ ├─ JwtAuthenticationFilter.java
****│ ****│ ├─ JwtToken.java
│ ****│ ├─ JwtTokenProvider.java
**** │ │ └─ JwtUtil.java
│ ├─ **exception**
│ │ └─ handler
│ │ │ ├─ ErrorCode.java
│ │ │ ├─ ErrorResponse.java
│ │ │ └─ GlobalExceptionHandler.java
│ │ ├─ BusinessException.java
│ │ ├─ DuplicateException.java
│ │ ├─ InvalidException.java
│ │ └─ NotFoundException.java
│ ├─ model
│ ****│ ├─ BaseResponseBody.java
│ ****│ ├─ KakaoProfile.java
│ ****│ ├─ NaverProfile.java
│ ****│ ├─ ResponseMessage.java
│ ****│ └─ RoleType.java
│ └─ util
├─ **config**
│ ├─ JwtSecurityConfig.java
│ ├─ SecurityConfig.java
│ ├─ SwaggerConfig.java
│ └─ WebMvcConfig.java
└─ **db**
├─ **entity**
└─ **repository**
Frontend
[frontend]
│
├─ .browserslistrc
├─ .eslintrc.js
├─ .postcssrc.js
├─ babel.config.js
├─ package-lock.json
├─ package.json
├─ vue.config.js
├─ yarn.lock
├─ public
│ ├─ _redirects
│ ├─ showing_logo.png
│ └─ index.html
└─ src
├─ **api**
│ ├─ index.js // axios 객체 생성
│ ├─ user.js // 회원 관련 api
│ ├─ search.js // 검색 관련 api
│ ├─ show.js // 공연 관련 api
│ ├─ rating.js // 평점 관련 api
│ ├─ recommend.js // 순위,추천 관련 api
│ └─ review.js // 리뷰 관련 api
├─ **components**
│ ├─ recommend
│ │ ├─ RecommendList.vue
│ │ └─ SimilarShow.vue // 공연 한 줄로 보여주는 컴포넌트(메인페이지, 비슷한 공연, 내 리뷰)
│ ├─ show
│ │ ├─ ShowHeader.vue // 공연 포스터, 공연 이름, 별점
│ │ ├─ MyReview.vue // 특정 공연에 대한 내 리뷰
│ │ ├─ ShowInfo.vue // 공연 정보(일정, 장소 등)
│ │ ├─ ActorList.vue // 배우 리스트(캐스팅, 선호 배우)
| | ├─ Story.vue // 공연 줄거리
| | ├─ WordCloud.vue // 공연 상세 워드클라우드, 마이페이지 선호 태그
| | └─ Comment.vue // 다른 사람의 리뷰
│ ├─ search
│ │ ├─ SearchList.vue
│ │ └─ Search.vue // 검색바
│ ├─ review
│ │ ├─ assets
│ │ | └─ pngwing.png
│ │ ├─ MyReviewListModal.vue
│ │ ├─ ReviewDetail.vue
│ │ ├─ ReviewModifyModal.vue
│ │ ├─ ReviewModal.vue // 리뷰 상세 및 리뷰 작성 모달
| | ├─ ReviewWriteModal.vue
│ │ └─ ReviewListModal.vue // 리뷰 목록 모달
│ └─ user
| ├─ LoginModal.vue // 로그인 모달
| ├─ Profile.vue
| ├─ BarChart.vue
| ├─ UserRating.vue
| ├─ UesrReview.vue
│ └─ UserFavorite.vue
****├─ **layout**
│ ├─ Header.vue
│ └─ AppFooter.vue
├─ **config**
│ └─ index.js
├─ **store**
│ ├─ modules
| | ├─ reviewStore.js
| | ├─ ratingStore.js
│ │ └─ userStore.js // 회원 관련 Vuex
│ └─ index.js
├─ **views**
│ ├─ SearchPage.vue
**** │ ├─ Callback.vue
│ ├─ MainPage.vue
│ ├─ ShowDetail.vue
│ └─ MyPage.vue
├─ **App.vue**
├─ **router.js**
└─ **main.js**