ì¸í…Œë¦¬ì–´ 추천 커뮤니티
개발기간 : 2023.8.24 ~ 2023.9.22
윤 예빈 | 최 ìœ ë¦¬ | ì´ ì›í˜¸ | ì‹ ì„ í˜¸ | ë°• ë‘ì‚° | ìž„ 한준 | 안 í˜•ì„ |
---|---|---|---|---|---|---|
FE_팀장 |
FE_íŒ€ì› |
FE_íŒ€ì› |
BE_부팀장 |
BE_íŒ€ì› |
BE_íŒ€ì› |
BE_íŒ€ì› |
@YebinYun | @greatjobcat | @WONHO22 | @seonhoshin | @2DNDN | @Ernest45 | @PeterAhnn |
- ì¸í…Œë¦¬ì–´ 추천 커뮤니티 웹사ì´íŠ¸ëŠ” ì¸í…Œë¦¬ì–´ì— 관심있는 사용ìžë“¤ì„ 위한 다기능 온ë¼ì¸ 플랫í¼ìž…니다. 커뮤니티 ê¸°ë°˜ì˜ ì •ë³´ ê³µìœ ì™€ 함께, 해시태그 ê¸°ëŠ¥ì„ í†µí•´ íŠ¹ì • ì£¼ì œë‚˜ ì œí’ˆì— ëŒ€í•œ ì •ë³´ë¥¼ 쉽게 ê²€ìƒ‰í•˜ê³ ëª¨ì•„ë³¼ 수 있습니다. 추가ì 으로 GPS를 활용한 ì§€ì— ê¸°ë°˜ ì¸í…Œë¦¬ì–´ 가게 추천, ë¶ë§ˆí¬ì™€ 기능, ê·¸ë¦¬ê³ íŒ”ë¡œìš°ì™€ 팔로워 ê¸°ëŠ¥ì„ ì œê³µí•˜ì—¬ ì‚¬ìš©ìž ê°„ì˜ ì†Œí†µê³¼ ì •ë³´ ê³µìœ ë¥¼ 촉진합니다.
-
본 서비스는 사용ìžë“¤ì˜ 편리한 ì‚¬ìš©ì„ ìœ„í•´ ì´ ë©”ë‰´ì–¼ì„ ìž‘ì„±í•˜ì˜€ìŠµë‹ˆë‹¤. ì¸í…Œë¦¬ì–´ì— ê´€ì‹¬ì´ ë§Žê³ ì»¤ë®¤ë‹ˆì¼€ì´ì…˜ì„ 중요시하는 사용ìžë¥¼ 주요 대ìƒìœ¼ë¡œ í•˜ê³ ìžˆìŠµë‹ˆë‹¤. 블로그나 카페와 ê°™ì´ ì •ë³´ ê³µìœ ì™€ ì†Œí†µì´ í™œë°œí•œ 온ë¼ì¸ ê³µê°„ì„ ì°¾ê³ ìžˆëŠ” 사용ìžì—게 ì´ ì›¹ì‚¬ì´íŠ¸ëŠ” 다ìŒê³¼ ê°™ì€ ê¸°ëŠ¥ê³¼ 가치를 ì œê³µí•©ë‹ˆë‹¤.
1. 해시태그 ê¸°ëŠ¥ì„ í†µí•œ íŠ¹ì • ì£¼ì œë‚˜ ì œí’ˆì— ëŒ€í•œ ë¹ ë¥¸ ì •ë³´ 검색과 ê³µìœ 2. 맞춤화 ëœ ì¸í…Œë¦¬ì–´ 추천과 ë¼ì´í”„ ìŠ¤íƒ€ì¼ ê³µìœ ê¸°ëŠ¥ 3. ì§€ì— ê¸°ë°˜ ì¸í…Œë¦¬ì–´ ìŠ¤í† ì–´ ì¶”ì²œì„ í†µí•œ 현실ì ì¸ ì´ìš© 가능성 4. 팔로우와 팔로워 ê¸°ëŠ¥ì„ í†µí•œ 커뮤니케ì´ì…˜ ê°•í™” 5. 좋아요와 ë¶ë§ˆí¬ ê¸°ëŠ¥ì„ í†µí•´ 마ìŒì— 드는 ë‚´ìš©ì„ ì‰½ê²Œ ì €ìž¥í•˜ê³ ê²€ìƒ‰
-
ì´ëŸ¬í•œ ê¸°ëŠ¥ë“¤ì„ í†µí•´ 사용ìžëŠ” ìžì‹ ì˜ ì·¨í–¥ê³¼ í•„ìš”ì— ë§žëŠ” ì¸í…Œë¦¬ì–´ ì •ë³´ë¥¼ 쉽게 ì°¾ê³ , ê°™ì€ ê´€ì‹¬ì‚¬ë¥¼ 가진 다른 사용ìžë“¤ê³¼ ì†Œí†µí• ìˆ˜ 있습니다.
기능별 | 화면 |
---|---|
ë©”ì¸ íŽ˜ì´ì§€ |
|
회ì›ê°€ìž… |
|
ë¡œê·¸ì¸ |
|
ë² ìŠ¤íŠ¸ ì¸í…Œë¦¬ì–´ |
|
ì¸í…Œë¦¬ì–´ 작성창 |
|
ì¸í…Œë¦¬ì–´ ìƒì„¸ë³´ê¸° |
|
íŒ |
|
íŒ ìž‘ì„±ì°½ |
|
íŒ ìƒì„¸ë³´ê¸° |
|
ë§µ |
|
ë‚˜ì˜ í”„ë¡œí•„ |
|
다른사람 프로필 |
화면 | |
---|---|
ëª¨ë°”ì¼ |
|
테블릿 |
|
피씨 |
-
ì „ì²´ê¸€ 조회
- ì¸í…Œë¦¬ì–´ ê²Œì‹œê¸€ì€ ë¬´í•œìŠ¤í¬ë¡¤ì„ ì 용해, 실시간으로 ì •ë³´ë¥¼ 받아 ë³¼ 수 있습니다.
-
검색어로 검색
- 검색어가 ì œëª©, ë³¸ë¬¸ì´ í¬í•¨ë˜ì–´ìžˆë‹¤ë©´ 조회 가능합니다.
-
필터별 조회
- 필터별로 ì¡°íšŒí• ìˆ˜ 있습니다.
-
ì´ë¯¸ì§€ 태그
- 게시글 작성시 작성ìžê°€ ì´ë¯¸ì§€ì— 태그를 붙여 ì € ì§ê´€ì 으로 ì •ë³´ë¥¼ ê³µìœ í• ìˆ˜ 있습니다.
-
해시태그 등ë¡
- 작성한 ê¸€ì˜ ì£¼ì œì™€ ê´€ë ¨ëœ í•´ì‹œíƒœê·¸ë¥¼ 등ë¡í• 수 있습니다.
-
해시태그 í´ë¦/검색
- 해시 태그 í´ë¦ì‹œ 해당 태그가 í¬í•¨ëœ ê¸€ì„ ëª¨ì•„ë³¼ 수 있습니다.
-
GPS
- 현재 위치 기반 ì •ë³´ë¥¼ ì´ìš© 주변 ì¸í…Œë¦¬ì–´ ìŠ¤í† ì–´ 검색 기능
-
검색기능
- ì›í•˜ëŠ” ê°€ê²Œì— ì´ë¦„ì„ ê²€ìƒ‰í•˜ë©´ 조회하는 기능
-
회ì›ê°€ìž… 기능
- 커뮤니티 ê´€ë ¨ ê¸°ëŠ¥ì„ ì¶”ê°€ì 으로 ì´ìš©í•˜ê¸° 위해 회ì›ê°€ìž…ì„ ì œê³µí•´ 회ì›ì˜ ë°ì´í„°ë“¤ì„ 바탕으로 ê° íšŒì›ì´ ì›í•˜ëŠ” ì •ë³´ë“¤ë§Œ 모아 편리하게 사용 가능하게 í•´ì¤ë‹ˆë‹¤.
-
ë¡œê·¸ì¸ ê¸°ëŠ¥
- ë¡œê·¸ì¸ íšŒì›ë§Œ 커뮤니티 í™œë™ ê°€ëŠ¥
-
ë‚´ ì •ë³´ 관리
- 프로필 ê°œì„±ì— ë§žê²Œ 꾸며 ê²Œì‹œê¸€ë§Œì´ ì•„ë‹ˆë¼ ë‚´ 소개글ì´ë‚˜ ìžì‹ ì˜ ì´ë¯¸ì§€ë¥¼ ë“±ì„ í™œìš©í•´ ìžì‹ ë§Œì˜ íŠ¹ìƒ‰ì„ ë“œëŸ¬ë‚¼ 수 있습니다.
-
회ì›íƒˆí‡´ê¸°ëŠ¥
- 본 서비스를 ë” ì´ìƒ ì‚¬ìš©í•˜ê³ ì‹¶ì§€ 않거나, ìžì‹ ì˜ ì •ë³´ë“¤ì„ ë” ì´ìƒ ì œê³µí•˜ê³ ì‹¶ì§€ ì•Šì„ ê²½ìš°ì—는 보다 쉽게 회ì›íƒˆí‡´ì˜ ê¸°ëŠ¥ì„ ì§€ì›
-
비밀번호 관리
- 비밀번호 초기화
- 비밀번호변경
-
좋아요 / ë¶ë§ˆí¬
-
좋아요
다른 사용ìžê°€ 작성한 게시글ì´ë‚˜ ëŒ“ê¸€ì— ê¸ì •ì ì¸ í”¼ë“œë°±ì„ ì£¼ëŠ” 기능입니다. ì´ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ë©´ 작성ìžëŠ” 작성ìžì˜ 게시글ì´ë‚˜ 댓글 ê³µê°ê³¼ ë°˜ì‘ì„ íŒŒì•…í• ìˆ˜ 있습니다. -
ë¶ë§ˆí¬
íŠ¹ì •í•œ ê²Œì‹œê¸€ë“¤ì„ ë‚˜ì¤‘ì— ë‹· 찾아보기 쉽게 ì €ìž¥í•˜ëŠ” 기능합니다. -
해당 좋아요 / ë¶ë§ˆí¬ ê¸°ëŠ¥ì€ ë§ˆì´ íŽ˜ì´ì§€ì—서 모아 ë³¼ 수 있습니다.
-
-
팔로우 / 팔로워
- 마ìŒì— 드는 사용ìžë“¤ì„ 팔로우/언팔로우 í• ìˆ˜ 있ì´ë©°, 마ì´íŽ˜ì´ì§€ì—서 모아서 ë³¼ 수 있습니다.
-
댓글 / 답글
- ê²Œì‹œê¸€ì— ê³µê°í•˜ê±°ë‚˜ ì •ë³´ë¥¼ 얻었다면 댓글과 ë‹µê¸€ì„ í†µí•´ ìž‘ì„±ìž ë° ë‹¤ë¥¸ ì´ìš©ìžë“¤ê³¼ ìžìœ ë¡ê²Œ ì†Œí†µí• ìˆ˜ 있습니다.
모바ì¼
,테블릿
,피씨
ëª¨ë‘ ë³¼ 수 있ë„ë¡ ë§žì¶¤ 화면 구현하였습니다.
ì‚¬ìš©ìž ìš”êµ¬ì‚¬í• ì •ì˜ì„œ
User Flow
í…Œì´ë¸” 설계ë„
seb45_main_027
├─ README.md
├─ client
│ ├─ .env
│ ├─ src
│ │ ├─ App.css
│ │ ├─ App.js
│ │ ├─ components
│ │ │ ├─ accountSetting
│ │ │ │ ├─ ChangePassword.jsx
│ │ │ │ ├─ DeleteAccount.jsx
│ │ │ │ ├─ EditProfile.jsx
│ │ │ │ └─ UserAccount.jsx
│ │ │ ├─ common
│ │ │ │ ├─ Background.jsx
│ │ │ │ ├─ Ex_button.jsx
│ │ │ │ ├─ scrollToTop.js
│ │ │ │ └─ tokens.js
│ │ │ ├─ feed
│ │ │ │ ├─ comment
│ │ │ │ │ ├─ showroom
│ │ │ │ │ │ ├─ CommentDelete.jsx
│ │ │ │ │ │ ├─ CommentInput.jsx
│ │ │ │ │ │ ├─ CommentLike.jsx
│ │ │ │ │ │ ├─ CommentOutput.jsx
│ │ │ │ │ │ ├─ CommentPagination.jsx
│ │ │ │ │ │ ├─ CommentPatch.jsx
│ │ │ │ │ │ ├─ CommentWrap.jsx
│ │ │ │ │ │ ├─ ReplyDelete.jsx
│ │ │ │ │ │ ├─ ReplyInput.jsx
│ │ │ │ │ │ ├─ ReplyOutput.jsx
│ │ │ │ │ │ └─ ReplyPatch.jsx
│ │ │ │ │ └─ tips
│ │ │ │ │ ├─ CommentDeleteTips.jsx
│ │ │ │ │ ├─ CommentInputTips.jsx
│ │ │ │ │ ├─ CommentLikeTips.jsx
│ │ │ │ │ ├─ CommentOutputTips.jsx
│ │ │ │ │ ├─ CommentPaginationTips.jsx
│ │ │ │ │ ├─ CommentPatchTips.jsx
│ │ │ │ │ ├─ CommentWrapTips.jsx
│ │ │ │ │ ├─ ReplyDeleteTips.jsx
│ │ │ │ │ ├─ ReplyInputTips.jsx
│ │ │ │ │ ├─ ReplyOutputTips.jsx
│ │ │ │ │ └─ ReplyPatchTips.jsx
│ │ │ │ ├─ view
│ │ │ │ │ ├─ Edit.jsx
│ │ │ │ │ ├─ ShowroomContents.jsx
│ │ │ │ │ ├─ ShowroomUserTop.jsx
│ │ │ │ │ ├─ Sidebar.jsx
│ │ │ │ │ ├─ TagForm.jsx
│ │ │ │ │ ├─ TipsContents.jsx
│ │ │ │ │ ├─ TipsUserTop.jsx
│ │ │ │ │ ├─ UserBottom.jsx
│ │ │ │ │ ├─ ViewCoverImg.jsx
│ │ │ │ │ ├─ ViewForm.jsx
│ │ │ │ │ ├─ ViewPoint.jsx
│ │ │ │ │ └─ ViewTitle.jsx
│ │ │ │ └─ write
│ │ │ │ ├─ ImageEditGuide.jsx
│ │ │ │ ├─ PhotoTagging.jsx
│ │ │ │ ├─ Tag.jsx
│ │ │ │ ├─ WriteBtn.jsx
│ │ │ │ ├─ WriteCoverImg.jsx
│ │ │ │ ├─ WriteFormShowroom.jsx
│ │ │ │ ├─ WriteFormTips.jsx
│ │ │ │ ├─ WriteGuide.jsx
│ │ │ │ ├─ WriteInformation.jsx
│ │ │ │ ├─ WriteTag.jsx
│ │ │ │ └─ WriteTitle.jsx
│ │ │ ├─ footer
│ │ │ │ ├─ FooterMobile.jsx
│ │ │ │ ├─ FooterMobileWrite.jsx
│ │ │ │ ├─ FooterPc.jsx
│ │ │ │ └─ HiddenFooter.jsx
│ │ │ ├─ header
│ │ │ │ ├─ HeaderMobile.jsx
│ │ │ │ ├─ HeaderNav.jsx
│ │ │ │ ├─ HeaderOff.jsx
│ │ │ │ ├─ HeaderOn.jsx
│ │ │ │ └─ HeaderPc.jsx
│ │ │ ├─ main
│ │ │ │ ├─ MainSection.jsx
│ │ │ │ ├─ MainSlogan.jsx
│ │ │ │ └─ MainWrap.jsx
│ │ │ ├─ map
│ │ │ │ ├─ KaKaoMap.css
│ │ │ │ ├─ KakaoMap.jsx
│ │ │ │ └─ SearchBar.jsx
│ │ │ ├─ myinfo
│ │ │ │ ├─ MyInfoBookmark.jsx
│ │ │ │ ├─ MyInfoContentList.jsx
│ │ │ │ ├─ MyInfoDummy.js
│ │ │ │ ├─ MyInfoLayout.jsx
│ │ │ │ ├─ MyInfoLike.jsx
│ │ │ │ ├─ MyInfoPost.jsx
│ │ │ │ ├─ MyInfoShowroom.jsx
│ │ │ │ ├─ Pagination.jsx
│ │ │ │ ├─ UserInfoFollow.jsx
│ │ │ │ ├─ UserInfoFollowList.jsx
│ │ │ │ ├─ UserProfile.jsx
│ │ │ │ └─ UserProfileDetails.jsx
│ │ │ ├─ showroom
│ │ │ │ ├─ all
│ │ │ │ │ ├─ All.jsx
│ │ │ │ │ ├─ AllContent.jsx
│ │ │ │ │ ├─ AllHeader.jsx
│ │ │ │ │ └─ HeaderFilter
│ │ │ │ │ ├─ AllHeaderFilter.jsx
│ │ │ │ │ ├─ RoomInfoFilter.jsx
│ │ │ │ │ ├─ RoomSizeFilter.jsx
│ │ │ │ │ └─ RoomTypeFilter.jsx
│ │ │ │ └─ bestinterior
│ │ │ │ ├─ BestInterior.jsx
│ │ │ │ ├─ BestInteriorCarousel.css
│ │ │ │ ├─ BestInteriorCarousel.jsx
│ │ │ │ └─ BestInteriorHeader.jsx
│ │ │ ├─ signup
│ │ │ │ ├─ AuthNavigation.jsx
│ │ │ │ ├─ FormLayout.jsx
│ │ │ │ ├─ FormValidation.jsx
│ │ │ │ ├─ OauthLayout.jsx
│ │ │ │ ├─ ResetPassword.jsx
│ │ │ │ ├─ SignupAuth.jsx
│ │ │ │ └─ SignupLoginLayout.jsx
│ │ │ └─ tips
│ │ │ ├─ TipsContent.jsx
│ │ │ ├─ TipsHeader.jsx
│ │ │ └─ TipsInfo.jsx
│ │ ├─ context
│ │ │ └─ AuthContext.jsx
│ │ ├─ index.css
│ │ ├─ index.js
│ │ └─ pages
│ │ ├─ EditShowRoom.jsx
│ │ ├─ EditTips.jsx
│ │ ├─ Login.jsx
│ │ ├─ Main.jsx
│ │ ├─ Map.jsx
│ │ ├─ MyInfo.jsx
│ │ ├─ ProtectedRoute.jsx
│ │ ├─ ShowRoom.jsx
│ │ ├─ Signup.jsx
│ │ ├─ Tips.jsx
│ │ ├─ Verify.jsx
│ │ ├─ ViewShowRoom.jsx
│ │ ├─ ViewTips.jsx
│ │ ├─ WriteShowRoom.jsx
│ │ └─ WriteTips.jsx
│ └─ tailwind.config.js
└─ server
│ .gitignore
│ build.gradle
│ gradlew
│ gradlew.bat
│ settings.gradle
│
├─gradle
│ └─wrapper
│ gradle-wrapper.jar
│ gradle-wrapper.properties
│
└─src
├─main
│ ├─java
│ │ └─com
│ │ └─project
│ │ └─bbibbi
│ │ │ BbibbiApplication.java
│ │ │
│ │ ├─auth
│ │ │ ├─config
│ │ │ │ SecurityConfig.java
│ │ │ │
│ │ │ ├─controller
│ │ │ │ │ AuthController.java
│ │ │ │ │ TestController.java
│ │ │ │ │
│ │ │ │ └─dto
│ │ │ │ AuthEmailCheckApiRequest.java
│ │ │ │ AuthEmailSendApiRequest.java
│ │ │ │ AuthEmailSendPasswordApiRequest.java
│ │ │ │ OauthJoinApiRequest.java
│ │ │ │
│ │ │ ├─jwt
│ │ │ │ ├─dto
│ │ │ │ │ LoginDto.java
│ │ │ │ │ Token.java
│ │ │ │ │
│ │ │ │ ├─filter
│ │ │ │ │ CustomJsonUsernamePasswordAuthenticationFilter.java
│ │ │ │ │ JwtAuthenticationProcessingFilter.java
│ │ │ │ │
│ │ │ │ ├─handler
│ │ │ │ │ CustomAccessDeniedHandler.java
│ │ │ │ │ LoginFailureHandler.java
│ │ │ │ │ LoginSuccessHandler.java
│ │ │ │ │ MemberAuthenticationEntryPoint.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ CustomJwtUserDetails.java
│ │ │ │ CustomJwtUserDetailsService.java
│ │ │ │ JwtService.java
│ │ │ │
│ │ │ ├─oauth
│ │ │ │ │ MemberProfile.java
│ │ │ │ │ Provider.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ OAuthAttributes.java
│ │ │ │ │
│ │ │ │ ├─handler
│ │ │ │ │ OAuthLoginFailureHandler.java
│ │ │ │ │ OAuthLoginSuccessHandler.java
│ │ │ │ │
│ │ │ │ ├─oauthUserInfo
│ │ │ │ │ CustomOAuth2User.java
│ │ │ │ │ KakaoOAuth2UserInfo.java
│ │ │ │ │ NaverOAuth2UserInfo.java
│ │ │ │ │ OAuth2UserInfo.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ CustomOAuthUserService.java
│ │ │ │
│ │ │ ├─oauth2
│ │ │ │ ├─domain
│ │ │ │ │ │ AuthCodeRequestUrlProvider.java
│ │ │ │ │ │ OauthServerType.java
│ │ │ │ │ │
│ │ │ │ │ └─authcode
│ │ │ │ │ AuthCodeRequestUrlProviderComposite.java
│ │ │ │ │
│ │ │ │ ├─infra
│ │ │ │ │ KakaoAuthCodeRequestUrlProvider.java
│ │ │ │ │
│ │ │ │ ├─presentation
│ │ │ │ │ OauthServerTypeConverter.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ OauthService.java
│ │ │ │
│ │ │ └─utils
│ │ │ ErrorResponder.java
│ │ │ loginUtils.java
│ │ │ NicknameUtil.java
│ │ │ PasswordUtil.java
│ │ │
│ │ ├─domain
│ │ │ ├─feed
│ │ │ │ ├─controller
│ │ │ │ │ FeedController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ FeedImageDto.java
│ │ │ │ │ FeedImageTagDto.java
│ │ │ │ │ FeedPatchDto.java
│ │ │ │ │ FeedPostDto.java
│ │ │ │ │ FeedResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ Feed.java
│ │ │ │ │ FeedImage.java
│ │ │ │ │ FeedImageTag.java
│ │ │ │ │
│ │ │ │ ├─mapper
│ │ │ │ │ FeedMapper.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ FeedImageRepository.java
│ │ │ │ │ FeedImageTagRepository.java
│ │ │ │ │ FeedRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ FeedService.java
│ │ │ │
│ │ │ ├─feedBookmark
│ │ │ │ ├─controller
│ │ │ │ │ FeedBookMarkController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ FeedBookMarkRequestDto.java
│ │ │ │ │ FeedBookMarkResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ FeedBookMark.java
│ │ │ │ │
│ │ │ │ ├─mapper
│ │ │ │ │ FeedBookMarkMapper.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ FeedBookMarkRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ FeedBookMarkService.java
│ │ │ │
│ │ │ ├─feedComment
│ │ │ │ ├─controller
│ │ │ │ │ FeedCommentController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ FeedCommentDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ FeedComment.java
│ │ │ │ │
│ │ │ │ ├─exception
│ │ │ │ │ FeedCommentNotFoundException.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ FeedCommentRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ FeedCommentService.java
│ │ │ │
│ │ │ ├─feedlike
│ │ │ │ ├─controller
│ │ │ │ │ FeedLikeController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ FeedLikeRequestDto.java
│ │ │ │ │ FeedLikeResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ FeedLike.java
│ │ │ │ │
│ │ │ │ ├─mapper
│ │ │ │ │ FeedLikeMapper.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ FeedLikeRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ FeedLikeService.java
│ │ │ │
│ │ │ ├─feedReply
│ │ │ │ ├─controller
│ │ │ │ │ FeedReplyController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ FeedReplyRequestDto.java
│ │ │ │ │ FeedReplyResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ FeedReply.java
│ │ │ │ │
│ │ │ │ ├─FeedReplyNotFoundException
│ │ │ │ │ FeedReplyNotFoundException.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ FeedReplyRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ FeedReplyService.java
│ │ │ │
│ │ │ ├─feedReplyLike
│ │ │ │ ├─controller
│ │ │ │ │ FeedReplyLikeController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ FeedReplyLikeRequestDto.java
│ │
A3E2
│ │ │ FeedReplyLikeResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ FeedReplyLike.java
│ │ │ │ │
│ │ │ │ ├─mapper
│ │ │ │ │ FeedReplyLikeMapper.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ FeedReplyLikeRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ FeedReplyLikeService.java
│ │ │ │
│ │ │ ├─follow
│ │ │ │ ├─controller
│ │ │ │ │ FollowController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ FollowListResponseDto.java
│ │ │ │ │ FollowResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ Follow.java
│ │ │ │ │ FollowPK.java
│ │ │ │ │
│ │ │ │ ├─mapper
│ │ │ │ │ FollowMapper.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ FollowRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ FollowService.java
│ │ │ │
│ │ │ ├─member
│ │ │ │ ├─controller
│ │ │ │ │ │ MemberController.java
│ │ │ │ │ │
│ │ │ │ │ └─dto
│ │ │ │ │ MemberCreateApiRequest.java
│ │ │ │ │ MemberFindPasswordApiRequest.java
│ │ │ │ │ MemberProfile.java
│ │ │ │ │ MemberUpdateApiRequest.java
│ │ │ │ │ MemberUpdatePasswordApiRequest.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ Member.java
│ │ │ │ │ MyInfo.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ MemberRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ │ MemberService.java
│ │ │ │ │
│ │ │ │ └─dto
│ │ │ │ ├─request
│ │ │ │ │ MemberCreateServiceRequest.java
│ │ │ │ │ MemberFindPasswordServiceRequest.java
│ │ │ │ │ MemberUpdatePasswordApiServiceRequest.java
│ │ │ │ │ MemberUpdateServiceRequest.java
│ │ │ │ │
│ │ │ │ └─response
│ │ │ │ MemberResponse.java
│ │ │ │
│ │ │ ├─myContent
│ │ │ │ ├─controller
│ │ │ │ │ MyContentController.java
│ │ │ │ │
│ │ │ │ └─dto
│ │ │ │ MyContentResponseDto.java
│ │ │ │ ShowRoomDto.java
│ │ │ │ TipContentDto.java
│ │ │ │
│ │ │ ├─tip
│ │ │ │ ├─controller
│ │ │ │ │ TipController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ TipPatchDto.java
│ │ │ │ │ TipPostDto.java
│ │ │ │ │ TipResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ Tip.java
│ │ │ │ │
│ │ │ │ ├─mapper
│ │ │ │ │ TipMapper.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ TipRepository.java
│ │ │ │ │ TipRepositoryCustom.java
│ │ │ │ │ TipRepositoryImpl.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ TipService.java
│ │ │ │
│ │ │ ├─tipBookmark
│ │ │ │ ├─controller
│ │ │ │ │ TipBookmarkController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ TipBookmarkRequestDto.java
│ │ │ │ │ TipBookmarkResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ TipBookmark.java
│ │ │ │ │
│ │ │ │ ├─mapper
│ │ │ │ │ TipBookmarkMapper.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ TipBookmarkRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ TipBookmarkService.java
│ │ │ │
│ │ │ ├─tipComment
│ │ │ │ ├─controller
│ │ │ │ │ TipCommentController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ TipCommentDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ TipComment.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ TipCommentRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ TipCommentService.java
│ │ │ │
│ │ │ ├─tipImage
│ │ │ │ ├─dto
│ │ │ │ │ TipImageDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ TipImage.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ TipImageRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ TipImageService.java
│ │ │ │
│ │ │ ├─tipLike
│ │ │ │ ├─controller
│ │ │ │ │ TipLikeController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ TipLikeRequestDto.java
│ │ │ │ │ TipLikeResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ TipLike.java
│ │ │ │ │
│ │ │ │ ├─mapper
│ │ │ │ │ TipLikeMapper.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ TipLikeRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ TipLikeService.java
│ │ │ │
│ │ │ ├─tipReply
│ │ │ │ ├─controller
│ │ │ │ │ TipReplyController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ TipReplyRequestDto.java
│ │ │ │ │ TipReplyResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ TipReply.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ TipReplyRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ TipReplyService.java
│ │ │ │
│ │ │ ├─tipReplyLike
│ │ │ │ ├─controller
│ │ │ │ │ TipReplyLikeController.java
│ │ │ │ │
│ │ │ │ ├─dto
│ │ │ │ │ TipReplyLikeRequestDto.java
│ │ │ │ │ TipReplyLikeResponseDto.java
│ │ │ │ │
│ │ │ │ ├─entity
│ │ │ │ │ TipReplyLike.java
│ │ │ │ │
│ │ │ │ ├─mapper
│ │ │ │ │ TipReplyLikeMapper.java
│ │ │ │ │
│ │ │ │ ├─repository
│ │ │ │ │ TipReplyLikeRepository.java
│ │ │ │ │
│ │ │ │ └─service
│ │ │ │ TipReplyLikeService.java
│ │ │ │
│ │ │ └─tipTag
│ │ │ ├─dto
│ │ │ │ TagDto.java
│ │ │ │
│ │ │ ├─entity
│ │ │ │ Tag.java
│ │ │ │ TipTag.java
│ │ │ │
│ │ │ ├─repository
│ │ │ │ TagRepository.java
│ │ │ │ TipTagRepository.java
│ │ │ │
│ │ │ └─service
│ │ │ TagService.java
│ │ │ TipTagService.java
│ │ │
│ │ └─global
│ │ │ ErrorResponse.java
│ │ │
│ │ ├─entity
│ │ │ BaseEntity.java
│ │ │ BaseEnum.java
│ │ │ Location.java
│ │ │ Role.java
│ │ │ RoomCount.java
│ │ │ RoomInfo.java
│ │ │ RoomSize.java
│ │ │ RoomType.java
│ │ │ SocialType.java
│ │ │
│ │ ├─exception
│ │ │ ├─businessexception
│ │ │ │ │ BusinessException.java
│ │ │ │ │
│ │ │ │ ├─emailexception
│ │ │ │ │ EmailException.java
│ │ │ │ │ EmailSendException.java
│ │ │ │ │
│ │ │ │ ├─memberexception
│ │ │ │ │ MemberAccessDeniedException.java
│ │ │ │ │ MemberDuplicateException.java
│ │ │ │ │ MemberException.java
│ │ │ │ │ MemberExistNicknameException.java
│ │ │ │ │ MemberlExistEmailException.java
│ │ │ │ │ MemberNotFoundException.java
│ │ │ │ │ MemberNotLoginException.java
│ │ │ │ │ MemberPasswordException.java
│ │ │ │ │ NicknameDuplicateException.java
│ │ │ │ │
│ │ │ │ ├─passwordException
│ │ │ │ │ PasswordException.java
│ │ │ │ │ PasswordSendException.java
│ │ │ │ │
│ │ │ │ └─requestexception
│ │ │ │ RequestContentTypeException.java
│ │ │ │ RequestException.java
│ │ │ │ RequestTypeException.java
│ │ │ │
│ │ │ ├─exceptionhandler
│ │ │ │ RestControllerAdvice.java
│ │ │ │
│ │ │ └─tipexception
│ │ │ TipCommentNotFoundException.java
│ │ │ TipException.java
│ │ │ TipNotFoundException.java
│ │ │ TipReplyNotFoundException.java
│ │ │
│ │ ├─imageupload
│ │ │ ImageUploadController.java
│ │ │ S3Config.java
│ │ │ S3Uploader.java
│ │ │
│ │ ├─mail
│ │ │ ├─config
│ │ │ │ MailConfig.java
│ │ │ │
│ │ │ └─service
│ │ │ MailService.java
│ │ │
│ │ ├─querydsl
│ │ │ QuerydslConfiguration.java
│ │ │
│ │ ├─response
│ │ │ ApiPageResponse.java
│ │ │ ApiSingleResponse.java
│ │ │ MultiResponseDto.java
│ │ │ PageAbleResponseDto.java
│ │ │ SingleResponseDto.java
│ │ │
│ │ └─utils
│ │ CustomBeanUtils.java
│ │
│ └─resources
│ application.yml
│ application_h2.yml
│ application_rds.yml
│ application_server.yml
│
└─test
└─java
└─com
└─project
└─bbibbi
BbibbiApplicationTests.java