Skip to content

develp branch 작업내용 머지 : develop -> main#144

Merged
heeeeyong merged 9 commits intomainfrom
develop
Aug 17, 2025
Merged

develp branch 작업내용 머지 : develop -> main#144
heeeeyong merged 9 commits intomainfrom
develop

Conversation

@heeeeyong
Copy link
Collaborator

@heeeeyong heeeeyong commented Aug 17, 2025

#️⃣연관된 이슈

#73 [API] Auth API 연동

📝작업 내용

소셜로그인 및 회원가입 배포

스크린샷 (선택)

💬리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

Summary by CodeRabbit

  • 신규 기능
    • 그룹 검색 서버 연동 및 페이지네이션 도입, 카테고리/정렬 필터, 빈 상태/오류 표시, 더 보기 버튼 추가
    • 로그인 토큰 발급 API 연동 및 자동 로그인 상태 시 로그인 페이지에서 피드로 자동 이동
  • 리팩터링
    • 인증을 쿠키 기반에서 localStorage 토큰 + Authorization 헤더 방식으로 전환
    • 소셜 로그인 흐름 단일화 및 토큰 준비 대기(waitForToken) 제공, 피드 로딩을 토큰 준비 후로 게이트
  • 변경 사항
    • 마감 정보(deadLine) 표기 방식을 숫자에서 날짜 문자열/빈 문자열로 일원화
    • 회원가입 성공 시 액세스 토큰 저장 및 성공 필드명(isSuccess) 정규화

@heeeeyong heeeeyong self-assigned this Aug 17, 2025
@heeeeyong heeeeyong added the 🌏 Deploy 배포 관련 label Aug 17, 2025
@vercel
Copy link

vercel bot commented Aug 17, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
thip Ready Ready Preview Comment Aug 17, 2025 9:10am

@heeeeyong heeeeyong merged commit 4e658d5 into main Aug 17, 2025
1 of 2 checks passed
@coderabbitai
Copy link

coderabbitai bot commented Aug 17, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

인증 흐름이 쿠키 기반에서 localStorage 토큰 기반으로 전환되었습니다. 신규 토큰 API(getToken) 추가 및 기존 setCookie/exchangeTempToken 제거, 인터셉터 수정, 소셜 로그인 훅 개편, 피드/로그인/회원가입 페이지 토큰 처리 업데이트, 방 검색 API와 검색 페이지/컴포넌트 도입, 그룹 마감(deadLine) 타입을 문자열로 통일했습니다.

Changes

Cohort / File(s) Summary
Auth API 개편
src/api/auth/getToken.ts, src/api/auth/index.ts, src/api/auth/exchangeTempToken.ts, src/api/auth/setCookie.ts
getToken API 추가 및 재노출; exchangeTempToken/setCookie 모듈 삭제; auth 인덱스에서 제거/추가 반영.
API 클라이언트 인터셉터
src/api/index.ts
요청 시 localStorage의 authToken을 Authorization 헤더로 설정; 401 응답 시 루트로 리다이렉트; 쿠키 조회 제거.
소셜 로그인/토큰 대기 및 페이지 연동
src/hooks/useSocialLoginToken.ts, src/pages/feed/Feed.tsx, src/pages/login/Login.tsx, src/pages/signup/SignupNickname.tsx, src/pages/signup/SignupGenre.tsx, src/api/users/postSignup.ts
소셜 로그인 훅이 getToken 사용 및 토큰을 localStorage에 저장, waitForToken 제공; 피드 로딩이 토큰 대기 후 진행; 로그인 페이지는 토큰 존재 시 /feed로 이동; 회원가입 닉네임은 토큰 대기/검증 추가; 회원가입 응답은 isSuccess로 필드명 변경 및 accessToken 처리.
방 검색 기능 도입
src/api/rooms/getSearchRooms.ts, src/pages/groupSearch/GroupSearch.tsx, src/components/search/GroupSearchResult.tsx
검색 API 추가(키워드/정렬/카테고리/페이지네이션); 검색 페이지에 서버 연동·최근검색·페이지네이션 구현; 결과 컴포넌트가 props 기반 렌더링 및 “더 보기” 지원.
그룹 deadLine 타입 통일(문자열)
src/components/group/CompletedGroupModal.tsx, src/components/group/MyGroupBox.tsx, src/components/group/MyGroupModal.tsx, src/pages/group/Group.tsx, src/pages/groupDetail/GroupDetail.tsx, src/pages/searchBook/SearchBookGroup.tsx
Group/카드 매핑에서 deadLine을 숫자(또는 0)에서 문자열('' 또는 날짜 문자열)로 변경; 그룹 목록 매핑에서 deadlineDate를 그대로 할당.

Sequence Diagram(s)

sequenceDiagram
  participant U as User
  participant B as Browser(App)
  participant H as useSocialLoginToken
  participant A as getToken API
  participant X as apiClient
  participant S as Server

  U->>B: 소셜 로그인 리다이렉트로 진입 (URL에 loginTokenKey)
  B->>H: 훅 초기화 (waitForToken 제공)
  H->>A: getToken({ loginTokenKey })
  A->>X: POST /auth/token
  X->>S: Authorization 미포함 요청
  S-->>X: { token }
  X-->>A: response.data
  A-->>H: token 전달
  H->>B: localStorage.authToken 저장, URL 정리
  B->>X: 이후 요청에 Authorization: Bearer <token> 자동 포함
Loading
sequenceDiagram
  participant U as User
  participant P as GroupSearch Page
  participant C as GroupSearchResult
  participant R as getSearchRooms
  participant X as apiClient
  participant S as Server

  U->>P: 키워드 입력/필터 선택
  P->>R: getSearchRooms(keyword, sort, cursor?, isFinalized, category)
  R->>X: GET /rooms/search?params
  X->>S: 요청 전송
  S-->>X: { roomList, nextCursor, isLast }
  X-->>R: 응답 데이터
  R-->>P: 결과 반환
  P->>C: rooms, isLoading, isLast 전달
  U->>C: "더 보기" 클릭
  C->>P: onLoadMore 호출
  P->>R: getSearchRooms(..., cursor=nextCursor)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

  • [API] auth API 연동 #73 — 인증 API 연동과 토큰 처리 전환(쿠키→localStorage, getToken 도입)으로 범위가 일치합니다.

Possibly related PRs

Suggested labels

✨ Feature, 📬 API

Suggested reviewers

  • ljh130334
  • ho0010

Poem

(\__/)
( •_•) 토큰을 품에 넣고 뛰어가요,
/ >🍪 쿠키는 이젠 추억 속에 놔요.
방을 찾고, 피드를 열고,
"더 보기" 눌러 별도 줍고—
깡총! 깡총! 로컬에 빛나는 열쇠로.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between b21167d and 4c51cca.

📒 Files selected for processing (20)
  • src/api/auth/exchangeTempToken.ts (0 hunks)
  • src/api/auth/getToken.ts (1 hunks)
  • src/api/auth/index.ts (1 hunks)
  • src/api/auth/setCookie.ts (0 hunks)
  • src/api/index.ts (2 hunks)
  • src/api/rooms/getSearchRooms.ts (1 hunks)
  • src/api/users/postSignup.ts (1 hunks)
  • src/components/group/CompletedGroupModal.tsx (1 hunks)
  • src/components/group/MyGroupBox.tsx (1 hunks)
  • src/components/group/MyGroupModal.tsx (1 hunks)
  • src/components/search/GroupSearchResult.tsx (4 hunks)
  • src/hooks/useSocialLoginToken.ts (3 hunks)
  • src/pages/feed/Feed.tsx (5 hunks)
  • src/pages/group/Group.tsx (1 hunks)
  • src/pages/groupDetail/GroupDetail.tsx (1 hunks)
  • src/pages/groupSearch/GroupSearch.tsx (2 hunks)
  • src/pages/login/Login.tsx (1 hunks)
  • src/pages/searchBook/SearchBookGroup.tsx (1 hunks)
  • src/pages/signup/SignupGenre.tsx (1 hunks)
  • src/pages/signup/SignupNickname.tsx (3 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

🪧 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.
    • 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.
  • 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 the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

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

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

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.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🌏 Deploy 배포 관련

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants