- Lcode는 블로그 플랫폼 이다.
- 본인의 글을 유료화 할 수 있다.
- Lcode에 가입 이후에 유료 멤버십에 가입하면 유료글을 볼 수 있다.
- 멤버십은 유지비용은 달에 2천원이다.
- Lcode은 한달에 한번 유료글 작성자에게 조회수를 기준으로 멤버십 수익의 일정부분을 캐시로 정산해준다.
- 해당 캐시는 사이트내에서 돈처럼 사용가능하고 원할 때 환전할 수 있다.
- 이번 후반기 미션에서는 멤버십기능, 정산기능을 구현한다.
- 업데이트 예정!!!
[프론트엔드]
📦src
┣ 📂api
┣ 📂app
┃ ┣ 📂ai
┃ ┃ ┗ 📜page.js
┃ ┣ 📂api
┃ ┃ ┗ 📂confirmPayment
┃ ┃ ┃ ┗ 📜route.js
┃ ┣ 📂auth
┃ ┃ ┣ 📂signin
┃ ┃ ┃ ┣ 📂kakao
┃ ┃ ┃ ┃ ┗ 📂callback
┃ ┃ ┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┗ 📂signup
┃ ┃ ┃ ┗ 📜page.js
┃ ┣ 📂board
┃ ┃ ┣ 📂write
┃ ┃ ┃ ┣ 📂[id]
┃ ┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┣ 📂[id]
┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┗ 📜page.js
┃ ┣ 📂membership
┃ ┃ ┣ 📂fail
┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┣ 📂success
┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┗ 📜page.js
┃ ┣ 📂mypage
┃ ┃ ┣ 📂mycomment
┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┣ 📂mypost
┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┣ 📂myrecommend
┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┣ 📂userinfo
┃ ┃ ┃ ┣ 📂delete
┃ ┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┃ ┣ 📂edit
┃ ┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┃ ┗ 📜page.js
┃ ┃ ┣ 📜layout.js
┃ ┃ ┗ 📜page.js
┃ ┣ 📜layout.js
┃ ┗ 📜page.js
┣ 📂components
┃ ┣ 📂auth
┃ ┃ ┣ 📜DeleteUser.js
┃ ┃ ┣ 📜EditUser.js
┃ ┃ ┣ 📜KakaoLogin.js
┃ ┃ ┣ 📜KakaoSignInCallback.js
┃ ┃ ┣ 📜MyPageUserInfo.js
┃ ┃ ┣ 📜SigninForm.js
┃ ┃ ┗ 📜SignupForm.js
┃ ┣ 📂comment
┃ ┃ ┗ 📜Comment.js
┃ ┣ 📂membership
┃ ┃ ┣ 📜Checkout.js
┃ ┃ ┣ 📜MembershipInfo.js
┃ ┃ ┗ 📜SuccessPage.js
┃ ┣ 📂post
┃ ┃ ┣ 📜AllPost.js
┃ ┃ ┣ 📜EditPost.js
┃ ┃ ┣ 📜LikeButton.js
┃ ┃ ┣ 📜MyPost.js
┃ ┃ ┣ 📜Pagination.js
┃ ┃ ┣ 📜Post.js
┃ ┃ ┣ 📜PostDetail.js
┃ ┃ ┣ 📜RecentPost.js
┃ ┃ ┣ 📜SearchPost.js
┃ ┃ ┗ 📜WritePost.js
┃ ┗ 📂ui
┃ ┃ ┣ 📜Chatbot.js
┃ ┃ ┣ 📜CustomToast.js
┃ ┃ ┣ 📜Dropdown.js
┃ ┃ ┣ 📜MyPageSidebar.js
┃ ┃ ┣ 📜Navbar.js
┃ ┃ ┗ 📜ProfilePicture.js
┣ 📂config
┃ ┗ 📜axios-config.js
┣ 📂constants
┃ ┗ 📜auth.js
┣ 📂context
┃ ┗ 📜TanStackProvider.js
┣ 📂hooks
┃ ┗ 📜useUser.js
┣ 📂styles
┃ ┣ 📜globals.css
┃ ┗ 📜toss.css
┗ 📂utils
┃ ┣ 📜comment.js
┃ ┣ 📜openai.js
┃ ┣ 📜post.js
┃ ┗ 📜regex.js
[백엔드]
📦src
┣ 📂main
┃ ┣ 📂generated
┃ ┃ ┗ 📂com
┃ ┃ ┃ ┗ 📂ll
┃ ┃ ┃ ┃ ┗ 📂medium
┃ ┃ ┃ ┃ ┃ ┣ 📂comment
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜QComment.java
┃ ┃ ┃ ┃ ┃ ┣ 📂common
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜QDateEntity.java
┃ ┃ ┃ ┃ ┃ ┣ 📂like
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜QLike.java
┃ ┃ ┃ ┃ ┃ ┣ 📂post
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜QPost.java
┃ ┃ ┃ ┃ ┃ ┣ 📂revenue
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜QRevenue.java
┃ ┃ ┃ ┃ ┃ ┗ 📂user
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜QRefreshToken.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜QUser.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜QVerificationToken.java
┃ ┣ 📂java
┃ ┃ ┗ 📂com
┃ ┃ ┃ ┗ 📂ll
┃ ┃ ┃ ┃ ┗ 📂medium
┃ ┃ ┃ ┃ ┃ ┣ 📂comment
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CommentController.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CommentDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CommentSaveDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CommentUpdateDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Comment.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CommentRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CommentService.java
┃ ┃ ┃ ┃ ┃ ┣ 📂common
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MonthlyEarningScheduler.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜NotProd.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SecurityConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WebConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CorsCheckController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜HomeController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SearchController.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ErrorResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜DateEntity.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂exception
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜DataNotFoundException.java
┃ ┃ ┃ ┃ ┃ ┣ 📂like
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LikeController.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LikeRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LikeStatus.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LikeStatusDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Like.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LikeRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LikeService.java
┃ ┃ ┃ ┃ ┃ ┣ 📂post
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PostController.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PostDetailDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PostDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PostPageDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PostRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PostUpdateDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Post.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PostRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PostRepositoryCustom.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PostRepositoryImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PostService.java
┃ ┃ ┃ ┃ ┃ ┣ 📂revenue
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Revenue.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RevenueRepository.java
┃ ┃ ┃ ┃ ┃ ┣ 📂user
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜EmailConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MailProperties.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WebClientConfig.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AuthController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜EmailController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OAuthController.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserController.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CheckUserExistDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoCodeDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoPropertiesDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoTokenResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoUserInfoDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginRequestDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginResponseDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserInfoDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserRegisterDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserUpdateDto.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RefreshToken.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SocialProvider.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜User.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserRole.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜VerificationToken.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂exception
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserNotFoundException.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RefreshTokenRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜VerificationTokenRepository.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂security
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtAuthenticationFilter.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenUtil.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserDetailsServiceImpl.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserPrinciple.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AuthService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DevAuthService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜EmailService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoOAuth2Service.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ProdAuthService.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserService.java
┃ ┃ ┃ ┃ ┃ ┗ 📜MediumApplication.java
┃ ┗ 📂resources
┃ ┃ ┣ 📂templates
┃ ┃ ┣ 📜application-db.yml
┃ ┃ ┣ 📜application-devdb.yml
┃ ┃ ┣ 📜application-mail.yml
┃ ┃ ┣ 📜application-security.yml
┃ ┃ ┗ 📜application.yml
┗ 📂test
┃ ┗ 📂java
┃ ┃ ┗ 📂com
┃ ┃ ┃ ┗ 📂ll
┃ ┃ ┃ ┃ ┗ 📂medium
┃ ┃ ┃ ┃ ┃ ┗ 📂common
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂config
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MonthlyEarningSchedulerTest.java
- 회원 CRUD
- 게시글 CRUD
- 댓글 CRUD
- 결제 기능
- 유료 멤버십 적용
- 유료 글 적용
- 카카오 소셜로그인
- 마크다운 문법으로 보이게(상세, 리스트)
- 조회수 기능
- 추천 기능
- 검색 기능
- 멤버쉽 정산 기능
- GPT 질문 기능
- 이메일 인증 기능
- 주소 검색 기능
- 프론트엔드 : Vercel, 백엔드: NCP
- 미디엄 클론 배포 링크
- 테스트용 아이디 :
아이디, 비밀번호 동일!! test1 ~ test50 : 일반 유저 / test51 ~ test100 : 프리미엄 유저
ex) 아이디 : test1 / 비밀번호 : test1