Skip to content

feat: 추천 결과 페이지 처리 로직 및 실시간 업데이트 기능 구현#105

Merged
RookieAND merged 18 commits intofeature/proceed-recommend-resultfrom
feature/feature/proceed-recommend-page
Feb 24, 2026
Merged

feat: 추천 결과 페이지 처리 로직 및 실시간 업데이트 기능 구현#105
RookieAND merged 18 commits intofeature/proceed-recommend-resultfrom
feature/feature/proceed-recommend-page

Conversation

@RookieAND
Copy link
Collaborator

@RookieAND RookieAND commented Feb 23, 2026

🎯 PR 제목

feat: 추천 결과 페이지 처리 로직 및 실시간 업데이트 기능 구현

📑 작업 상세 내역

  • 기능 추가

    • 각 페이지(Result, Pending, Complete, 의견 수합 패널)에 Server Action 및 Error 처리 로직을 추가합니다
    • CompleteView, PendingView 내 버튼 컴포넌트를 분리하여 작성합니다
    • SubmissionBottomSheet 컴포넌트 내부에서 자체적으로 useSuspenseQuery 훅을 호출하도록 수정합니다
    • RecommendResult 상수 및 에러 코드를 추가합니다
  • 리팩토링

    • SSR 환경에서 중복 Refetch 방지를 위해 QueryProvider 구문을 수정합니다
    • 각 페이지 별 클라이언트 컴포넌트에 대해 조건부 로직을 제거합니다
  • 기타 작업

    • 불필요한 코드 및 import 구문을 정리합니다
    • 불필요한 메인 랜딩 페이지 error.tsx를 제거합니다

🙏 리뷰 요청 사항

  • 각 페이지의 Error 처리 로직이 적절한지 검토해주세요.
  • QueryProvider 수정으로 인한 SSR 환경에서의 동작을 확인해주세요.

@RookieAND RookieAND added the ✨ Feature 기능 개발 label Feb 23, 2026
@RookieAND RookieAND self-assigned this Feb 23, 2026
@RookieAND RookieAND requested a review from youngminss February 23, 2026 15:58
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @RookieAND, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 추천 결과 생성 및 표시 과정을 대폭 개선하고, 실시간 업데이트 기능을 도입하여 사용자 경험을 향상시킵니다. 또한, 각 페이지의 에러 처리와 SSR 환경에서의 데이터 관리 효율성을 높여 애플리케이션의 안정성과 성능을 강화했습니다.

Highlights

  • 추천 결과 처리 로직 개선: 과반수 의견 제출 시 추천 결과를 생성하는 API 함수와 Mutation Option이 추가되었으며, 추천 결과 생성 대기를 위한 훅(usePostProcessRecommendResult)이 구현되었습니다.
  • 실시간 업데이트 기능 구현: SSE(Server-Sent Events) 기반의 실시간 모임 현황 업데이트 기능이 추가되어, 참여자 수 변경 및 모임 완료 상태를 즉시 반영합니다.
  • 페이지별 에러 처리 및 리다이렉트 로직 강화: Result, Pending, Complete 페이지 및 의견 수합 패널에 Server Action 및 상세 에러 처리 로직이 추가되어, 특정 에러 상황(예: 추천 결과 완료, 과반수 미달, 모임 없음)에 따라 적절한 페이지로 리다이렉트됩니다.
  • 컴포넌트 분리 및 리팩토링: CompleteView와 PendingView 내 버튼 컴포넌트가 분리되었고, SubmissionBottomSheet 컴포넌트가 내부적으로 useSuspenseQuery 훅을 호출하도록 수정되었습니다. 또한, 불필요한 코드 및 import 구문이 정리되었습니다.
  • SSR 환경 QueryProvider 개선: SSR 환경에서 클라이언트 측 중복 Refetch를 방지하기 위해 QueryProvider의 staleTime 설정 및 초기화 로직이 개선되었습니다.
  • 추천 결과 관련 상수 및 에러 코드 추가: 추천 결과 상태(RecommendationResultStatus) 및 거리 범위별 도보 시간(DISTANCE_RANGE_WALKING_MINUTES) 등 새로운 상수와 API 에러 코드가 추가되었습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • CHANGELOG.md
    • 새로운 베타 버전(1.6.0-beta.2) 및 이전 버전의 기능/버그 수정 내역이 추가되었습니다.
  • app/gathering/[accessKey]/landing/error.tsx
    • 불필요한 랜딩 페이지의 error.tsx 파일이 제거되었습니다.
  • app/gathering/[accessKey]/landing/page.tsx
    • 페이지 주석과 서버 prefetch 로직이 제거되었습니다.
  • app/gathering/[accessKey]/opinion/complete/CompleteViewContainer.tsx
    • 조건부 리다이렉트 로직이 제거되었고, '추천 결과 보기' 버튼 로직이 별도 컴포넌트로 분리되었습니다.
  • app/gathering/[accessKey]/opinion/complete/error.tsx
    • 완료 페이지에 대한 에러 처리 로직이 추가되었습니다.
  • app/gathering/[accessKey]/opinion/complete/page.tsx
    • QueryClient의 retry 옵션이 설정되었고, 모임 수용량 및 추천 결과 상태에 따른 리다이렉트 로직이 추가되었습니다.
  • app/gathering/[accessKey]/opinion/error.tsx
    • 의견 수합 페이지의 에러 처리 로직이 업데이트되었습니다.
  • app/gathering/[accessKey]/opinion/page.tsx
    • QueryClient의 retry 옵션이 설정되었고, 모임 정보를 찾을 수 없는 경우에 대한 에러 처리가 추가되었습니다.
  • app/gathering/[accessKey]/opinion/pending/PendingViewContainer.tsx
    • SSE를 이용한 실시간 업데이트 기능이 구현되었고, 조건부 리다이렉트 로직이 제거되었으며, 버튼 컴포넌트가 분리되었습니다.
  • app/gathering/[accessKey]/opinion/pending/error.tsx
    • 대기 페이지에 대한 에러 처리 로직이 추가되었습니다.
  • app/gathering/[accessKey]/opinion/pending/page.tsx
    • QueryClient의 retry 옵션이 설정되었고, 추천 결과 옵션에 대한 prefetch 로직이 추가되었습니다.
  • app/gathering/[accessKey]/opinion/result/ResultViewContainer.tsx
    • 조건부 리다이렉트 로직과 useGetGatheringCapacity 훅 사용이 제거되었습니다.
  • app/gathering/[accessKey]/opinion/result/error.tsx
    • 결과 페이지에 대한 에러 처리 로직이 추가되었습니다.
  • app/gathering/[accessKey]/opinion/result/page.tsx
    • QueryClient의 retry 옵션이 설정되었고, 추천 결과 상태 및 모임 수용량에 따른 리다이렉트 로직이 구현되었습니다.
  • package.json
    • 프로젝트 버전이 1.5.0에서 1.6.0-beta.2로 업데이트되었습니다.
  • src/apis/recommendResult/api.ts
    • 추천 결과 처리(postProcessRecommendResult)를 위한 API 함수가 추가되었습니다.
  • src/apis/recommendResult/index.ts
    • 새로운 추천 결과 뮤테이션 키와 옵션이 내보내졌습니다.
  • src/apis/recommendResult/mutationKey.ts
    • 추천 결과 뮤테이션을 위한 키 팩토리가 추가되었습니다.
  • src/apis/recommendResult/mutationOptions.ts
    • 추천 결과 처리 뮤테이션 옵션이 추가되었습니다.
  • src/apis/recommendResult/type.ts
    • 추천 결과 처리 요청 및 응답 타입이 추가되었습니다.
  • src/components/tag/Tag.tsx
    • Tag 컴포넌트에 'theme' prop이 추가되어 다양한 스타일을 지원합니다.
  • src/constants/gathering/opinion/distance.ts
    • 거리 범위별 도보 시간을 나타내는 DISTANCE_RANGE_WALKING_MINUTES 상수가 추가되었습니다.
  • src/constants/gathering/opinion/index.ts
    • 새롭게 추가된 상수들이 내보내졌습니다.
  • src/constants/gathering/opinion/mockResults.ts
    • 목업 추천 결과 데이터에 새로운 필드들이 추가되었습니다.
  • src/constants/gathering/opinion/recommendationResultStatus.ts
    • 추천 결과 상태를 정의하는 RecommendationResultStatus 상수가 추가되었습니다.
  • src/constants/gathering/opinion/timeSlot.ts
    • 시간대 레이블을 정의하는 TIME_SLOT_LABEL 상수가 추가되었습니다.
  • src/hooks/apis/gathering/useGetGatheringCapacity.ts
    • 모임 참여자 현황 조회 훅에서 자동 refetchInterval이 제거되었습니다.
  • src/hooks/apis/recommendResult/index.ts
    • 새로운 추천 결과 관련 훅들이 내보내졌습니다.
  • src/hooks/apis/recommendResult/usePostProceedRecommendResult.ts
    • 추천 결과 처리를 위한 뮤테이션 훅이 추가되었습니다.
  • src/hooks/apis/recommendResult/useWaitForRecommendResult.ts
    • 추천 결과 상태를 폴링하여 기다리는 훅이 추가되었습니다.
  • src/hooks/sse/index.ts
    • useServerSentEvent 훅이 내보내졌습니다.
  • src/hooks/sse/useServerSentEvent.ts
    • Server-Sent Events(SSE)를 처리하기 위한 훅이 추가되었습니다.
  • src/pageComponents/gathering/create/DateStep.tsx
    • TIME_SLOT_LABEL 상수가 constants에서 임포트되도록 수정되었습니다.
  • src/pageComponents/gathering/opinion/CompleteViewShowResultButton.tsx
    • 완료 페이지에서 추천 결과를 보여주는 버튼 컴포넌트가 추가되었습니다.
  • src/pageComponents/gathering/opinion/PendingViewShareButton.tsx
    • 대기 페이지에서 링크 공유를 위한 버튼 컴포넌트가 추가되었습니다.
  • src/pageComponents/gathering/opinion/PendingViewShowResultButton.tsx
    • 대기 페이지에서 추천 결과를 보여주는 버튼 컴포넌트가 추가되었습니다.
  • src/pageComponents/gathering/opinion/ResultView.tsx
    • 추천 결과 표시 방식이 리팩토링되어, TopRecommendCard가 제거되고 모든 후보가 OtherCandidateCard를 통해 통합적으로 표시됩니다.
  • src/pageComponents/gathering/opinion/SubmissionBottomSheet.tsx
    • SubmissionBottomSheet 컴포넌트가 useGetGatheringCapacity 훅을 내부적으로 호출하도록 수정되었습니다.
  • src/pageComponents/gathering/opinion/index.ts
    • 새로운 버튼 컴포넌트들이 내보내졌습니다.
  • src/pageComponents/gathering/restaurantCard/OtherCandidateCard.tsx
    • 카드 스타일이 업데이트되었고, 리뷰 수 표시 및 거리 범위별 도보 시간 정보가 추가되었습니다.
  • src/pageComponents/gathering/restaurantCard/TopRecommendCard.tsx
    • TopRecommendCard 컴포넌트가 제거되었습니다.
  • src/pageComponents/gathering/restaurantCard/index.ts
    • TopRecommendCard의 내보내기가 제거되었습니다.
  • src/providers/QueryProvider.tsx
    • SSR 환경에서 클라이언트 측 중복 Refetch를 방지하기 위한 QueryProvider 로직이 수정되었습니다.
  • src/schemas/sse/gatheringFull.schema.ts
    • 모임 전체 상태를 위한 SSE 스키마가 추가되었습니다.
  • src/schemas/sse/index.ts
    • 새로운 SSE 스키마들이 내보내졌습니다.
  • src/schemas/sse/participantCount.schema.ts
    • 참여자 수 카운트를 위한 SSE 스키마가 추가되었습니다.
  • src/types/api/error.ts
    • 새로운 API 에러 코드와 isApiError 타입 가드가 추가되었습니다.
  • src/types/gathering/index.ts
    • 새로운 모임 관련 타입들이 내보내졌습니다.
  • src/types/gathering/recommendationResult.ts
    • RecommendationResult 인터페이스에 status, gathering, distances 필드가 추가되었습니다.
  • src/types/gathering/restaurant.ts
    • Restaurant 인터페이스에 리뷰 수, 메뉴 정보, 가격대, AI 요약 등 새로운 필드들이 추가되었습니다.
  • src/utils/api/errorCodes.ts
    • API 에러 코드 목록이 업데이트되었습니다.
Ignored Files
  • Ignored by pattern: .gemini/** (1)
    • .gemini/styleguide.md
  • Ignored by pattern: .github/workflows/** (2)
    • .github/workflows/development-deploy.yml
    • .github/workflows/pr-auto-labeler.yml
Activity
  • PR 생성 이후 현재까지 별도의 리뷰 코멘트나 활동은 기록되지 않았습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

추천 결과 처리 로직과 SSE를 통한 실시간 업데이트 기능이 잘 구현되었습니다. 다만, 프로젝트 스타일 가이드에 따라 Props 정의 시 interface 대신 type을 사용해야 하며, 클라이언트 컴포넌트의 이벤트 핸들러에서는 redirect 대신 router.push를 사용하는 것이 권장됩니다. 또한 SSE 훅에서 핸들러의 stale closure 문제를 방지하기 위한 구조적 개선이 필요합니다.

@RookieAND RookieAND changed the base branch from main to feature/proceed-recommend-result February 23, 2026 16:03
@github-actions github-actions bot added ✨ Feature 기능 개발 and removed ✨ Feature 기능 개발 labels Feb 23, 2026
@RookieAND RookieAND added the ☑️ Need Review 작업이 완료되어 리뷰를 기다리고 있는 PR 입니다 label Feb 23, 2026
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

불필요한 주석도 전부 제거해서 변경 사항이 잡혔는데 무시해도 됨!

RookieAND and others added 6 commits February 24, 2026 16:01
- useProceedRecommendResult Hook 생성하여 proceed API 호출 및 polling 로직 통합
- useWaitForRecommendResult를 useProceedRecommendResult에 통합하여 중복 제거
- 모든 페이지에서 fetchQuery 사용으로 통일하여 SSR 에러 처리 개선
- 페이지별 redirect 로직 추가 (capacity 및 추천 상태 기반)
- 일관된 ErrorCode 처리 (GATHERING_NOT_FOUND, GATHERING_DELETED, RECOMMEND_ALREADY_PROCEEDED 등)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@RookieAND RookieAND merged commit ee20643 into feature/proceed-recommend-result Feb 24, 2026
3 checks passed
RookieAND added a commit that referenced this pull request Feb 24, 2026
* feat: 과반수 이상 의견 제출 시 결과를 생성하도록 하는 API 함수 추가

* feat: 과반수 이상 의견 제출 시 결과를 생성하는 Mutation Option 추가

* feat: usePostProceesRecommendResult Hook 제작

* feat: RecommendResult 상수 추가 및 Result 타입 반영

* feat: 추천 결과 관련 에러 코드 추가 및 상수 파일 수정

- Restaurant, Participant, Recommend 관련 에러 코드 추가
- RecommendationResultStatus import 경로 수정 (대소문자 일치)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: 추천 결과 생성 대기를 위한 Hook 추가

- useWaitForRecommendResult Hook 추가하여 추천 결과 생성 대기 기능 구현
- 폴링 방식으로 추천 결과 상태를 주기적으로 확인

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat: error 및 recommendationResult 상수 정의 추가

* fix: toast 를 sonner 패키지가 아닌 util 내 함수로 사용하도록 수정

* fix: 잘못 정의된 ApiError 코드 관련 로직 제거

* feat: 추천 결과 페이지 처리 로직 및 실시간 업데이트 기능 구현 (#105)

* feat: 불필요한 메인 랜딩 페이지 error.tsx 제거

* feat: PendingView 내 버튼 컴포넌트를 분리하여 작성하도록 수정

* feat: CompleteView 내 버튼 컴포넌트를 분리하여 작성하도록 수정

* feat: 의견 수합 패널 페이지 내 Server Action 및 Error 처리 로직 추가

* feat: Complete 페이지 내 Server Action 및 Error 처리 로직 추가

* feat: Pending 페이지 내 Server Action 및 Error 처리 로직 추가

* feat: Result 페이지 내 Server Action 및 Error 처리 로직 추가

* feat: SubmissionBottomSheet 컴포넌트 내부에서 자체적으로 useSuspenseQuery 훅을 호출하도록 수정

* feat: 새롭게 분리한 Button 컴포넌트에 대한 index.ts 파일 추가

* feat: 각 페이지 별 클라이언트 컴포넌트에 대해 조건부 로직 제거

* chore: 불필요한 코드 및 import 구문 수정

* refactor: SSR 환경에서 중복 Refetch 방지를 위해 QueryProvider 구문 수정

* fix: toast 를 sonner 패키지가 아닌 util 내 함수로 사용하도록 수정

* fix: 잘못 정의된 ApiError 코드 관련 로직 제거

* refactor: 추천 결과 proceed 로직 통합 및 페이지별 에러 처리 개선

- useProceedRecommendResult Hook 생성하여 proceed API 호출 및 polling 로직 통합
- useWaitForRecommendResult를 useProceedRecommendResult에 통합하여 중복 제거
- 모든 페이지에서 fetchQuery 사용으로 통일하여 SSR 에러 처리 개선
- 페이지별 redirect 로직 추가 (capacity 및 추천 상태 기반)
- 일관된 ErrorCode 처리 (GATHERING_NOT_FOUND, GATHERING_DELETED, RECOMMEND_ALREADY_PROCEEDED 등)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix: sonner 에서 toast 를 가져왔던 문제를 utils 로 수정

* chore: prettier 포맷에 맞지 않았던 코드를 수정

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix: polling 완료 후 result 페이지 이동 전 캐시 무효화 추가

polling에서 직접 API 호출 시 React Query 캐시가 업데이트되지 않아
result 페이지에서 이전 캐시 데이터(topRecommendation: null)를 사용하는 문제 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
github-actions bot pushed a commit that referenced this pull request Feb 24, 2026
## [1.6.0-beta.4](v1.6.0-beta.3...v1.6.0-beta.4) (2026-02-24)

### Features

* 과반수 이상 의견 제출 시 추천 결과 생성 관련 API, Hook 추가 ([#103](#103)) ([5b31eec](5b31eec)), closes [#105](#105)
github-actions bot pushed a commit that referenced this pull request Feb 27, 2026
## [2.0.0](v1.5.1...v2.0.0) (2026-02-27)

### ⚠ BREAKING CHANGES

* OpinionForm field names changed

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* refactor: update schema field names and exports

- foodCategorySchema → categorySchema
- dislikedFoodSchema → dislikedCategoriesSchema
- preferredMenusSchema → preferredCategoriesSchema
- Update opinionFormSchema with new field names
- Replace hardcoded "ANY" with CATEGORY.ANY
* Schema field names changed

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* refactor: rename component files to use Category naming

- FoodCard → CategoryCard
- FoodCategoryCarousel → CategoryCarousel
- DislikedFoodButton → DislikedCategoryButton

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* refactor: update component export names

- FoodCard → CategoryCard
- FoodCategoryCarousel → CategoryCarousel
- DislikedFoodButton → DislikedCategoryButton
- Update component function names to match new file names
- Internal logic unchanged (will be updated in next PR)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* refactor: update import references to use new constant names

- Update all components to use new constant names:
  * RANKS → RANK_LIST
  * RANK_LABELS → RANK_LABEL
  * FOOD_CATEGORIES → CATEGORY_LIST
  * FOOD_CATEGORY_LABEL → CATEGORY_LABEL
  * FOOD_CATEGORY_VALUES → CATEGORY_VALUES
  * dislikedFoodSchema → dislikedCategoriesSchema
  * preferredMenusSchema → preferredCategoriesSchema

- Update type imports:
  * FoodCategory → Category

- Update form field references:
  * dislikedFoods → dislikedCategories
  * preferredMenus → preferredCategories

- Fix component imports after file renames:
  * FoodCategoryCarousel → CategoryCarousel
  * DislikedFoodButton → DislikedCategoryButton

This ensures the build succeeds after type system changes.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* style: run prettier format

- Format code according to project prettier rules
- No logic changes, only formatting

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

### Features

* 404, 500 에러 페이지 추가 ([#107](#107)) ([e9e5772](e9e5772))
* opinion 랜딩 페이지 UI 업데이트 (로고·lottie·footer) ([#120](#120)) ([2817c50](2817c50))
* SSE Event Registry 시스템 구현 및 마이그레이션 ([#119](#119)) ([178c79c](178c79c))
* SSE 기반 실시간 모임 현황 업데이트 구현 ([#87](#87)) ([0d220e0](0d220e0))
* 결과 페이지 - 투표 결과 섹션 구현 ([#106](#106)) ([c633225](c633225))
* 과반수 이상 의견 제출 시 추천 결과 생성 관련 API, Hook 추가 ([#103](#103)) ([5b31eec](5b31eec)), closes [#105](#105)
* 인원 수 선택 시 시각적 피드백 추가 ([e9f6de6](e9f6de6))
* 추천 결과 API response 타입 업데이트 ([#100](#100)) ([1d046ab](1d046ab)), closes [#101](#101) [#102](#102)
* 추천 결과 생성 대기 페이지 및 애니메이션 구현 ([#118](#118)) ([a720a76](a720a76))
* 취향 요약 카드 추가 ([#104](#104)) ([816fa96](816fa96))

### Bug Fixes

* 1, 3순위를 선택했으나 2순위를 선택하지 않았을 경우 Validation 을 막지 않았던 문제 수정 ([#113](#113)) ([22e58e8](22e58e8))
* GitHub Actions 워크플로우 개선 및 스타일 가이드 업데이트 ([#91](#91)) ([e6c009e](e6c009e))
* 결과 대기 페이지 내 공유 버튼 스타일을 Tertiary 로 수정 ([#115](#115)) ([a63ddd1](a63ddd1))
* 결과 페이지 - 상단 취향 요약 섹션, 하단 투표 결과 선호 카테고리 노출 순서 로직 수정 ([#117](#117)) ([f5c4a1c](f5c4a1c))
* 모임 인원 초과 및 결과 생성 완료 시 Toast 커스텀 기능 추가 ([#116](#116)) ([6088935](6088935))
* 음식 카테고리 일러스트레이터를 Figma 내 최신 시안으로 수정 ([#114](#114)) ([18f9cc3](18f9cc3))

### Code Refactoring

* opinion 페이지 컴포넌트 구조 개선 및 로직 통합 ([#109](#109)) ([a76f75f](a76f75f))
* PeopleIllustration 캐릭터 배치 및 구조 개선 ([#112](#112)) ([ae95b72](ae95b72))
* ProgressBar 컴포넌트 UI 개선 및 코드 최적화 ([#122](#122)) ([c73de1d](c73de1d))
* SSE 이벤트를 recommend-result-created로 변경 ([#121](#121)) ([222e613](222e613))
* 타입 시스템 리팩토링 - enum을 as const 패턴으로 전환 ([#110](#110)) ([d427378](d427378)), closes [#111](#111)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 기능 개발 ☑️ Need Review 작업이 완료되어 리뷰를 기다리고 있는 PR 입니다

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant