Skip to content

Conversation

@youngseo22
Copy link
Contributor

@youngseo22 youngseo22 commented May 31, 2025

배포 하기 위해 머지

Summary by CodeRabbit

  • 신규 기능

    • 회원가입, 로그인, JWT 기반 인증 및 보안 기능 추가
    • 게시글 작성, 조회, 좋아요, 북마크, 폴더 관리, 태그, 팔로우/언팔로우 등 REST API 제공
    • 마이페이지에서 내 게시글 및 좋아요한 게시글, 북마크 폴더별 게시글, 메인 페이지 인기/최신 게시글 조회 기능 추가
  • 버그 수정

    • 없음
  • 문서화

    • API 응답 및 예외 메시지 표준화, 한글 메시지 적용
  • 환경설정

    • H2 DB, JWT, Spring Security 등 환경설정 및 테스트 데이터 자동 삽입
  • 테스트/모킹

    • 초기 데이터 자동 생성 기능 추가(회원, 게시글, 태그 등)

sungchaewon and others added 30 commits May 11, 2025 19:23
[FEAT] 기본 폴더 및 파일 생성
FixLog -> fixlog 로 통일
…java

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
- 좋아요 삭제 구현
- 좋아요 누를 때 이미 좋아요 눌려있는지 확인하기
youngseo22 and others added 27 commits May 27, 2025 02:10
…SER_NICKNAME_NOT_FOUND로 변경 후 로그인시 회원정보 없을 때 USER_NICKNAME_NOT_FOUND로 변경
[FEAT] 내가 작성한 글 보기
@youngseo22 youngseo22 self-assigned this May 31, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented May 31, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

이 변경 사항은 FixLog 서버 애플리케이션의 전체 백엔드 구조를 도입합니다. 새로운 도메인 엔티티, DTO, 컨트롤러, 서비스, 리포지토리, JWT 기반 인증 및 Spring Security 설정, 예외 처리, 테스트 데이터 초기화 컴포넌트, 그리고 환경설정 파일이 추가되었습니다.

Changes

파일/경로 요약 변경 요약
.coderabbit.yaml, application.properties, build.gradle 코드리뷰 및 환경설정 파일, JWT/H2 DB/Spring 보안 의존성 및 설정 추가
.../config/JwtAuthenticationFilter.java, .../config/SecurityConfig.java JWT 인증 필터 및 Spring Security 설정 클래스 추가
.../controller/*.java 인증, 회원, 메인페이지, 게시글, 북마크폴더, 팔로우, 태그 등 REST 컨트롤러 다수 추가
.../domain/bookmark/, .../domain/follow/Follow.java, .../domain/fork/Fork.java, .../domain/like/PostLike.java, .../domain/member/, .../domain/post/, .../domain/tag/ 게시글, 회원, 북마크, 팔로우, 포크, 좋아요, 태그 등 주요 도메인 JPA 엔티티 및 Enum 추가
.../dto/**/*.java 페이지네이션, 공통 응답, 회원/게시글/북마크/팔로우/태그 관련 DTO 및 요청/응답 클래스 추가
.../exception/*.java 커스텀 예외, 에러코드 Enum, 글로벌 예외 핸들러 추가
.../mock/*.java 멤버, 북마크폴더, 태그, 게시글 등 테스트 데이터 초기화 컴포넌트 다수 추가
.../repository/**/*.java 회원, 게시글, 북마크, 팔로우, 포크, 좋아요, 태그 등 JPA 리포지토리 인터페이스 다수 추가
.../service/*.java 인증, 회원, 게시글, 북마크, 팔로우, 태그, 마이페이지, 메인페이지 등 서비스 클래스 다수 추가
.../util/JwtUtil.java JWT 생성/파싱/검증 유틸리티 클래스 추가

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant AuthController
    participant AuthService
    participant MemberRepository
    participant PasswordEncoder
    participant JwtUtil

    Client->>AuthController: POST /auth/login (이메일, 비밀번호)
    AuthController->>AuthService: login(requestDto)
    AuthService->>MemberRepository: findByEmail(email)
    MemberRepository-->>AuthService: Member or not found
    AuthService->>PasswordEncoder: matches(입력PW, 저장PW)
    PasswordEncoder-->>AuthService: true/false
    AuthService->>JwtUtil: createToken(userId, email)
    JwtUtil-->>AuthService: accessToken
    AuthService-->>AuthController: LoginResponseDto
    AuthController-->>Client: 로그인 성공 응답
Loading
sequenceDiagram
    participant Client
    participant JwtAuthenticationFilter
    participant JwtUtil
    participant MemberRepository
    participant SecurityContextHolder

    Client->>JwtAuthenticationFilter: HTTP 요청 (Authorization: Bearer ...)
    JwtAuthenticationFilter->>JwtUtil: isTokenValid(token)
    JwtUtil-->>JwtAuthenticationFilter: true/false
    JwtAuthenticationFilter->>JwtUtil: getEmailFromToken(token)
    JwtUtil-->>JwtAuthenticationFilter: email
    JwtAuthenticationFilter->>MemberRepository: findByEmail(email)
    MemberRepository-->>JwtAuthenticationFilter: Member
    JwtAuthenticationFilter->>SecurityContextHolder: setAuthentication(...)
    JwtAuthenticationFilter-->>Client: 다음 필터로 진행
Loading

Possibly related PRs

Suggested labels

youngseo

Suggested reviewers

  • sungchaewon
  • semsemin

Poem

🐇
새로운 코드가 싹트는 봄,
컨트롤러부터 서비스까지 모두 한 몸!
JWT와 보안도 단단히 채우고,
DTO, 예외, 도메인도 알차게 꾸미고.
토끼는 기뻐 깡총깡총,
FixLog 서버의 시작을 노래해요!
🌱✨


📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 81272de and 2b57c18.

📒 Files selected for processing (75)
  • .coderabbit.yaml (1 hunks)
  • build.gradle (1 hunks)
  • src/main/java/com/example/FixLog/config/JwtAuthenticationFilter.java (1 hunks)
  • src/main/java/com/example/FixLog/config/SecurityConfig.java (1 hunks)
  • src/main/java/com/example/FixLog/controller/AuthController.java (1 hunks)
  • src/main/java/com/example/FixLog/controller/BookmarkFolderController.java (1 hunks)
  • src/main/java/com/example/FixLog/controller/FollowController.java (1 hunks)
  • src/main/java/com/example/FixLog/controller/MainPageController.java (1 hunks)
  • src/main/java/com/example/FixLog/controller/MemberController.java (1 hunks)
  • src/main/java/com/example/FixLog/controller/MypagePostController.java (1 hunks)
  • src/main/java/com/example/FixLog/controller/PostController.java (1 hunks)
  • src/main/java/com/example/FixLog/controller/TagController.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/bookmark/Bookmark.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/bookmark/BookmarkFolder.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/follow/Follow.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/fork/Fork.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/like/PostLike.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/member/Member.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/member/SocialType.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/post/Post.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/post/PostTag.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/tag/Tag.java (1 hunks)
  • src/main/java/com/example/FixLog/domain/tag/TagCategory.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/PageResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/Response.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/bookmark/request/BookmarkFolderCreateRequest.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/bookmark/request/BookmarkFolderUpdateRequest.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/bookmark/request/BookmarkMoveRequest.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/bookmark/response/BookmarkFolderCreateResponse.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/bookmark/response/BookmarkFolderReadResponse.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/follow/request/FollowRequestDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/follow/request/UnfollowRequestDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/follow/response/FollowResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/follow/response/FollowerListResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/follow/response/FollowingListResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/main/MainPagePostResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/main/MainPageResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/member/DuplicateCheckResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/member/LoginRequestDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/member/LoginResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/member/MemberInfoResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/member/SignupRequestDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/post/MyPostPageResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/post/PostDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/post/PostRequestDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/post/PostResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/tag/TagDto.java (1 hunks)
  • src/main/java/com/example/FixLog/dto/tag/TagResponseDto.java (1 hunks)
  • src/main/java/com/example/FixLog/exception/CustomException.java (1 hunks)
  • src/main/java/com/example/FixLog/exception/ErrorCode.java (1 hunks)
  • src/main/java/com/example/FixLog/exception/GlobalExceptionHandler.java (1 hunks)
  • src/main/java/com/example/FixLog/mock/BookmarkFolderTestDataInitializer.java (1 hunks)
  • src/main/java/com/example/FixLog/mock/MemberTestDataInitializer.java (1 hunks)
  • src/main/java/com/example/FixLog/mock/PostTestDataInitializer.java (1 hunks)
  • src/main/java/com/example/FixLog/mock/TagTestDataInitializer.java (1 hunks)
  • src/main/java/com/example/FixLog/repository/MemberRepository.java (1 hunks)
  • src/main/java/com/example/FixLog/repository/bookmark/BookmarkFolderRepository.java (1 hunks)
  • src/main/java/com/example/FixLog/repository/bookmark/BookmarkRepository.java (1 hunks)
  • src/main/java/com/example/FixLog/repository/follow/FollowRepository.java (1 hunks)
  • src/main/java/com/example/FixLog/repository/fork/ForkRepository.java (1 hunks)
  • src/main/java/com/example/FixLog/repository/like/PostLikeRepository.java (1 hunks)
  • src/main/java/com/example/FixLog/repository/post/PostRepository.java (1 hunks)
  • src/main/java/com/example/FixLog/repository/post/PostTagRepository.java (1 hunks)
  • src/main/java/com/example/FixLog/repository/tag/TagRepository.java (1 hunks)
  • src/main/java/com/example/FixLog/service/AuthService.java (1 hunks)
  • src/main/java/com/example/FixLog/service/BookmarkFolderService.java (1 hunks)
  • src/main/java/com/example/FixLog/service/BookmarkService.java (1 hunks)
  • src/main/java/com/example/FixLog/service/FollowService.java (1 hunks)
  • src/main/java/com/example/FixLog/service/MainPageService.java (1 hunks)
  • src/main/java/com/example/FixLog/service/MemberService.java (1 hunks)
  • src/main/java/com/example/FixLog/service/MypagePostService.java (1 hunks)
  • src/main/java/com/example/FixLog/service/PostService.java (1 hunks)
  • src/main/java/com/example/FixLog/service/TagService.java (1 hunks)
  • src/main/java/com/example/FixLog/util/JwtUtil.java (1 hunks)
  • src/main/resources/application.properties (1 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@youngseo22 youngseo22 merged commit ca918f2 into main May 31, 2025
1 check was pending
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants