Skip to content

Conversation

@sungchaewon
Copy link
Member

@sungchaewon sungchaewon commented Jun 15, 2025

이슈 번호

42

작업 내용

  • 충돌 해결
  • 키워드 & 태그 기반 검색(비회원도 가능하도록, querydsl 사용하여 구현)
  • 검색 결과시에 게시물 5개씩 페이징
  • 검색 결과 확인용 태그, 게시물 목업 데이터 생성
  • 에러 발생 상황 200자 이상시에 자르고 ... 표시 구현

Summary by CodeRabbit

  • 신규 기능

    • 게시글 검색 기능이 추가되어 키워드, 태그, 페이지네이션을 통한 검색이 가능합니다.
    • 마이페이지에서 닉네임, 비밀번호, 프로필 이미지, 소개글 수정 및 프로필 이미지 S3 업로드(프리사인 URL) 기능이 추가되었습니다.
    • 회원 프로필 미리보기, 회원 탈퇴 시 비밀번호 확인 기능이 추가되었습니다.
    • AWS S3 연동 및 파일 업로드 서비스가 도입되었습니다.
  • 버그 수정

    • 회원 정보 수정 및 탈퇴 시 검증 로직이 강화되었습니다.
  • 개선 및 리팩터링

    • 회원 도메인 및 서비스 로직이 리팩터링되어 유지보수성이 향상되었습니다.
    • 게시글 검색을 위한 커스텀 리포지토리 및 QueryDSL 환경이 구축되었습니다.
  • 환경 및 설정

    • MySQL, AWS S3, JWT 등 환경설정이 추가 및 정리되었습니다.
    • .env 파일이 git에서 무시되도록 설정되었습니다.
  • 문서화

    • DTO 및 응답 객체가 추가되어 API 명세가 명확해졌습니다.
  • 테스트/목데이터

    • 게시글 및 태그 목데이터 자동 생성 기능이 추가되었습니다.

@sungchaewon sungchaewon linked an issue Jun 15, 2025 that may be closed by this pull request
4 tasks
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jun 15, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

이 변경 사항은 회원 마이페이지, 프로필 이미지, AWS S3 연동, QueryDSL 기반 검색, 회원 정보 수정 및 탈퇴, 목데이터 초기화, 환경설정 등 다양한 신규 기능과 리팩토링을 포함합니다. 다수의 DTO, 서비스, 컨트롤러, 설정, 유틸리티, 저장소 인터페이스가 추가 및 수정되었습니다.

Changes

파일/경로 그룹 변경 요약
.gitignore, build.gradle, src/main/resources/application.properties 환경 변수 무시 규칙 추가, S3/QueryDSL/Validation 의존성 및 소스셋 설정, MySQL 및 S3 환경설정 추가
src/main/java/com/example/FixLog/FixLogApplication.java JPA Auditing 활성화 어노테이션 추가
src/main/java/com/example/FixLog/config/AwsS3Config.java, QuerydslConfig.java AWS S3, QueryDSL 설정 클래스 추가
src/main/java/com/example/FixLog/config/SecurityConfig.java 인증 없이 허용되는 HTTP 경로 확장 (main, posts, test 등)
src/main/java/com/example/FixLog/controller/MemberController.java 프로필 프리뷰 조회 API 추가, 회원 탈퇴 API에 비밀번호 검증 추가
src/main/java/com/example/FixLog/controller/MypageMemberController.java 마이페이지 회원 정보 수정, 프로필 이미지 presign, bio 수정 등 엔드포인트 신설
src/main/java/com/example/FixLog/controller/MypagePostController.java 좋아요한 게시글 조회 API 주석 처리(비활성화)
src/main/java/com/example/FixLog/controller/SearchController.java 검색 API 신규 컨트롤러 및 엔드포인트 추가
src/main/java/com/example/FixLog/domain/member/Member.java isDeleted setter 제거, 도메인 메서드 추가, 프로필 이미지 기본값 null 처리 등 리팩토링
src/main/java/com/example/FixLog/dto/PresignResponseDto.java, WithdrawRequestDto.java, member/edit/*.java, member/ProfilePreviewResponseDto.java, search/*.java 프로필/검색/회원정보/탈퇴 등 다양한 신규 DTO 추가
src/main/java/com/example/FixLog/dto/member/LoginResponseDto.java Member, token 기반 정적 팩토리 메서드 추가
src/main/java/com/example/FixLog/dto/member/MemberInfoResponseDto.java 서비스 계층 처리 권장 주석 추가
src/main/java/com/example/FixLog/exception/ErrorCode.java 비밀번호 동일, 권한 없음, 잘못된 요청, S3 업로드 실패 등 신규 에러코드 추가
src/main/java/com/example/FixLog/mock/PostMockDataInitializer.java, TagMockDataInitializer.java 게시글/태그 목데이터 초기화 컴포넌트 추가
src/main/java/com/example/FixLog/repository/post/PostRepository.java, PostRepositoryCustom.java, PostRepositoryImpl.java QueryDSL 기반 검색을 위한 커스텀 저장소 인터페이스 및 구현체 추가
src/main/java/com/example/FixLog/service/AuthService.java 로그인 응답 생성 방식 리팩토링 (정적 메서드 활용)
src/main/java/com/example/FixLog/service/MemberService.java 회원정보 수정/탈퇴/조회 등 신규 도메인 서비스 메서드 다수 추가 및 리팩토링
src/main/java/com/example/FixLog/service/MypagePostService.java 불필요한 공백 제거 (포매팅)
src/main/java/com/example/FixLog/service/S3Service.java S3 파일 업로드, presigned URL 발급 등 기능성 서비스 추가
src/main/java/com/example/FixLog/service/SearchService.java, impl/SearchServiceImpl.java 검색 서비스 인터페이스 및 구현체 신설
src/main/java/com/example/FixLog/util/DefaultImage.java, DefaultText.java 기본 프로필 이미지, 소개글 텍스트 상수 유틸리티 클래스 추가

Sequence Diagram(s)

sequenceDiagram
actor User
participant MypageMemberController
participant MemberService
participant S3Service

User->>MypageMemberController: PATCH /mypage/members/nickname (nickname)
MypageMemberController->>MemberService: editNickname(member, nickname)
MemberService-->>MypageMemberController: 변경 완료

User->>MypageMemberController: GET /mypage/members/profile-image/presign (filename)
MypageMemberController->>S3Service: generatePresignedUrl(dir, filename, 15)
S3Service-->>MypageMemberController: presignedUrl, fileUrl
MypageMemberController-->>User: 응답 반환

User->>MypageMemberController: PATCH /mypage/members/profile-image (imageUrl)
MypageMemberController->>MemberService: editProfileImage(member, imageUrl)
MemberService-->>MypageMemberController: 변경 완료
Loading
sequenceDiagram
actor User
participant SearchController
participant SearchService
participant PostRepository

User->>SearchController: GET /main/search?keyword=&tags=
SearchController->>SearchService: searchPosts(keyword, tags, pageable)
SearchService->>PostRepository: searchByKeywordAndTags(keyword, tags, pageable)
PostRepository-->>SearchService: Page<SearchPostDto>
SearchService-->>SearchController: 결과 반환
SearchController-->>User: 검색 결과 반환
Loading

Possibly related PRs

  • FixLog/FixLog_Server#63: MemberController의 withdraw 메서드에 WithdrawRequestDto(비밀번호) 적용 및 @EnableJpaAuditing 추가 등 직접적으로 동일한 코드 변경 포함
  • FixLog/FixLog_Server#48: 비밀번호 검증 기반 회원 탈퇴 API 및 관련 DTO/서비스 메서드 구현 등 회원 탈퇴 기능 중심으로 직접 연관

Suggested labels

chaewon

Suggested reviewers

  • semsemin
  • youngseo22

Poem

🐰
새싹처럼 늘어나는 기능들,
마이페이지, 프로필, 검색까지 번쩍!
S3에 이미지를 척척 올리고
QueryDSL로 게시글을 쏙쏙 찾네.
회원 탈퇴도 안전하게,
토끼는 오늘도 코드를 정리하며
"에러 없는 하루 보내세요!"
🥕


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.

@sungchaewon sungchaewon changed the title Feature/#42 search clean cw [FEAT] 검색 Jun 15, 2025
@sungchaewon sungchaewon changed the base branch from main to develop June 15, 2025 10:02
@sungchaewon sungchaewon self-assigned this Jun 15, 2025
@sungchaewon sungchaewon added the del 쓸모없는 코드나 파일 삭제 label Jun 15, 2025
@sungchaewon sungchaewon changed the title [FEAT] 검색 [FEAT] 검색 및 검색 결과 페이지 Jun 15, 2025
@sungchaewon sungchaewon merged commit ec1d36f into develop Jun 18, 2025
1 check passed
@sungchaewon sungchaewon deleted the feature/#42-search-clean-cw branch June 18, 2025 10:23
@coderabbitai coderabbitai bot mentioned this pull request Jun 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

del 쓸모없는 코드나 파일 삭제

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] 검색 및 검색 결과 페이지

4 participants