Skip to content

develop 브랜치의 작업 내용 main으로 병합#89

Merged
mgYang53 merged 19 commits intomainfrom
develop
Feb 22, 2026
Merged

develop 브랜치의 작업 내용 main으로 병합#89
mgYang53 merged 19 commits intomainfrom
develop

Conversation

@mgYang53
Copy link
Contributor

@mgYang53 mgYang53 commented Feb 19, 2026

🚀 풀 리퀘스트 제안

📋 작업 내용

현재까지 develop 브랜치에서의 작업을 운영서버에 반영 및 배포하기 위해 main 브랜치로 병합합니다.

mgYang53 and others added 19 commits February 3, 2026 23:09
- CI: main, develop 브랜치 PR 시 실행
- CD: main 브랜치 머지 시에만 배포
* feat: 모임 목록 페이지 구현 (#39)

- 전체/즐겨찾기 탭 UI 및 카운트 배지 구현
- 커서 기반 무한 스크롤 (첫 페이지 12개, 이후 9개)
- 즐겨찾기 토글 (optimistic update, 최대 4개 제한)
- GatheringCard, EmptyState 컴포넌트 추가
- useInfiniteScroll 재사용 가능 훅 추출
- CursorPaginatedResponse 제네릭 타입 추가

* style: prettier 포맷 적용 (#39)

* fix: 코드 리뷰 지적사항 수정 (#39)

- GatheringCard 키보드 접근성 개선 (role, tabIndex, onKeyDown)
- TypeScript 타입 에러 수정 (MouseEvent import)
- 즐겨찾기 탭 로딩 상태 처리 추가
- useInfiniteScroll SSR/테스트 환경 가드 추가

* style: eslint에서 언더스코어 변수명 허용 설정 추가 (#39)
* feat: 주제 목록 UI 및 기능 구현 (#46)

- 확정된 주제와 제안된 주제를 분리하여 표시하는 목록 컴포넌트 추가
- 무한 스크롤 및 가상화(@tanstack/react-virtual)를 통한 성능 최적화
- 주제 좋아요, 삭제 기능 구현
- 빈 상태 및 로딩 스켈레톤 UI 추가
- TanStack Query를 활용한 서버 상태 관리

* style: 이중언더스코어 제거(#46)

* design: EmptyTopickList 디자인수정 (#46)

* style: 린트, 프리티어 적용 (#46)

* refactor: 주제 목록 가상화 제거 및 낙관적 업데이트 개선 (#46)

TanStack Virtual을 사용한 가상화 기능을 제거하고 일반 리스트 렌더링으로 변경.
무한 스크롤 훅은 shared/hooks로 이동하여 재사용성 향상.
좋아요 낙관적 업데이트 로직을 개선하여 모든 관련 쿼리에 일관되게 적용.
Query Key 관리를 topicQueryKeys로 통일하여 유지보수성 향상.

* chore: 카카오지도 환경변수 추가(#46)
* feat: 내 책장 조회 구현 (#53)

* feat: 내 책장 편집 구현 (#53)

* feat: 책 추가 기능 구현 (#53)

* refactor: BookList 및 BookListPage 코드 포맷팅 정리 (#53)

* refactor: 책 목록 탭 필터링 및 에러 처리 개선 (#53)

* fix: 필터링된 책 목록 기준으로 전체 선택 동작 수정 (#53)

* fix: 필터 변경 시 전체 선택 오동작 수정 (#53)

* style: handleFilteredBooksChange 콜백 포맷팅 정리 (#53)

* refactor: 카운트 조회 로직 및 편집 모드 종료 조건 단순화 (#53)

* refactor: 커서기반 페이지네이션 공통 타입 적용 (#53)

* refactor: 책 검색  모달 확장성 반영 (#53)

* refactor: 코드 포맷팅 (#53)

* fix: 불필요한 effect 재실행 방지 및 createBook 에러 처리 추가 (#53)

* fix: 비활성 탭 filteredBookIds 덮어쓰기 및 createBook 에러 처리 수정 (#53)
* feat: 공유 UI 및 유틸 확장 (#50)

* feat: 모임 상세 데이터 레이어 구현 (#50)

* feat: 모임 상세 컴포넌트 구현 (#50)

* feat: 전체 너비 레이아웃 및 라우팅 추가 (#50)

* feat: 모임 상세 페이지 구현 (#50)

* fix: coderabbit 리뷰 피드백 반영 (#50)
* feat: 사전의견 조회 구현 (#63)

* feat: 내 사전의견 삭제하기 구현 (#63)

* fix: 사전의견 페이지 레이아웃 및 스타일 수정 (#63)

* refactor: useGlobalModalStore selector로 참조 안정성 개선 (#63)

* fix: 사전의견 페이지 모든 에러에 대해 에러 모달 처리 (#63)

* fix: preOpinion 타입에서 keywordInfo 필드명 API 스펙과 정합성 맞춤 (#59)
* feat: 주제 제안 페이지 구현 (#66)

주제 제안 기능을 위한 페이지, API, 훅, 타입, 상수를 추가.
- TopicCreatePage 컴포넌트 구현 (타입 선택, 제목, 설명 입력)
- useCreateTopic mutation 훅 추가
- createTopic API 함수 및 엔드포인트 추가
- TopicType 메타 정보 상수화 (TOPIC_TYPE_META, TOPIC_TYPE_OPTIONS)
- 관련 타입 정의 추가 (CreateTopicParams, CreateTopicRequest, CreateTopicResponse)
- 라우트 및 경로 상수 추가

* fix: 주제 생성 시 ID 유효성 검사 로직 개선 (#66)
* feat: 모임 설정 페이지 구현 (#57)

모임장 전용 설정 페이지 추가 (정보 수정, 멤버 관리, 모임 삭제).
- 모임 이름/설명 수정 및 저장 기능
- 멤버 관리 탭 (승인 대기/승인 완료) 및 승인·거절·강퇴 기능
- 모임 삭제 확인 모달 연동
- 멤버 목록 커서 기반 페이지네이션 지원
- 관련 API, 타입, 엔드포인트, 쿼리 훅 추가

* style: prettier 포매팅 수정 (#57)

* refactor: pr 리뷰 반영 (#57)

- gatheringId NaN 가드 추가 (GatheringDetailPage 패턴 통일)
- LEADER 역할 검증 추가 (비리더 접근 시 null 반환)
- useGatheringMembers에 enabled 조건 추가
- useUpdateGathering에서 lists 캐시도 invalidate
- isValid에서 name.trim().length 기준 통일
- MemberCardAction 타입 export 및 페이지에서 재사용
- nextCursor 불필요한 타입 단언(as) 제거
* feat: 주제 확정 기능 구현 (#47)

주제 확정 모달 및 관련 로직을 추가.
사용자가 제안된 주제를 순서대로 선택해 확정할 수 있도록 구현.
- ConfirmTopicModal, ConfirmModalTopicCard 컴포넌트 추가
- useConfirmTopics mutation 훅 및 confirmTopics API 추가
- ConfirmTopicsParams, ConfirmTopicsResponse 타입 정의
- TopicHeader에 확정 버튼 활성화 조건 및 클릭 핸들러 연결

* style: 프리티어 수정(#47)

* refactor: 주제 확정 모달 상호작용 로직 개선 (#47)

- NumberedCheckbox에 forwardRef 적용하여 외부 ref 접근 가능하도록 수정
- ConfirmModalTopicCard에서 onClick prop 제거 후 ref 클릭 방식으로 변경
- ConfirmTopicModal 닫기 시 선택 초기화 통합(handleClose), 외부 클릭 방지 추가
- ConfirmTopicModal 조건부 렌더링 적용하여 상태 초기화 보장

* style: 주석수정 (#47)
* feat: 약속 생성 도서검색, 최대인원 기능구현(#67)

* feat: 약속 생성/수정 페이지 및 UI 컴포넌트 개선 (#67)

- Tooltip 컴포넌트를 추가하여 사용자에게 UI 설명 기능 제공.
- 약속 승인 목록에 스켈레톤 로딩 UI를 추가하여 UX 개선.
- useUpdateMeeting hook을 추가하여 약속 수정 로직을 분리하고, MeetingCreatePage와 MeetingSettingPage의 폼 검증 및 사용자 경험 개선.
- 약속 관련 API 엔드포인트 및 타입 정의를 확장하여 기능 지원 강화.

* style: 프리티어 수정(#67)

* fix: 목데이터 상수 수정(#67)

* feat: 약속 생성/수정 confirm 모달 및 캐시 무효화 개선 (#67)

- 약속 생성/수정 전 confirm 모달을 노출하도록 처리 추가.
- useDeleteMeeting, useRejectMeeting에 gatheringId를 전달하여
  약속 거부/삭제 후 모임 약속 목록 캐시를 함께 무효화.
- openAlert에 onClose 콜백을 추가하여 모달 닫힘 후 동작 지원.
- MeetingCreatePage 에러 처리 useEffect 통합 및 핸들러 분리 리팩토링.
- MeetingSettingPage gatheringId 파싱 안전성 개선.

* feat: 카카오 SDK 동적 로드 및 에러 처리 개선 (#67)

index.html의 정적 스크립트 태그를 제거하고 loadKakaoSdk.ts 싱글톤
로더를 추가하여 지도 사용 시점에만 SDK를 동적으로 로드.

- SDK 로드 실패 시 HTTP 상태 코드별 에러 메시지 표시
- useKakaoMap, useKakaoPlaceSearch에 error 상태 추가
- PlaceSearchModal에 SDK 로드 오류 및 검색 오류 UI 오버레이 추가
- MeetingDetailButton의 isEnabled 조건 반전 버그 수정
- MeetingCreatePage 약속명 24자 제한(slice) 적용

* style: 사용안하는 변수 제거(#67)

* fix: 카카오 SDK 에러 처리 및 약속 생성 페이지 오류 수정 (#67)

* fix: 지도 생성 성공 시 에러 초기화 (#67)
* feat: 랜딩페이지 개발 (#72)

* style: 문구 띄어쓰기 수정(#72)

* design: 랜딩페이지 버튼 컴포넌트 및 레이아웃 개선 (#72)

- 기본 button 태그를 Button 컴포넌트(variant="cta")로 교체
- 랜딩 레이아웃 고정 너비(w-lending-max) 및 최소 너비(min-w-lending-max) 적용
- tailwind-merge에 커스텀 typo 클래스 그룹 추가
- body에서 overflow-x-hidden 제거
- lending-max spacing 토큰(1340px) 추가
- 랜딩 이미지 업데이트

* refactor: 랜딩페이지 이미지 최적화, 로그인버튼 분기처리(#72)

* style: 프리티어수정 (#72)

* style: 오타수정(#72)
* feat: 로딩컴포넌트 생성 및 로딩UI 적용(#74)

* style: clipPath 제거 (#74)
* fix: 약속/주제 확정 관련 버그 수정 및 기능 연결 (#78)

- confirmedTopicExpand 필드명을 confirmedTopic으로 수정
- 약속 승인 후 모임 약속 리스트 캐시 무효화 추가
- 주제 확정 후 약속 상세 쿼리 캐시 무효화 추가
- 약속 수정 완료 후 약속 상세 페이지로 이동하도록 수정
- 약속 수정 버튼(CAN_EDIT) 클릭 시 수정 페이지로 이동 연결
- 수정 모드에서 도서 선택 유효성 검사 예외 처리
- 주제 확정 시 좋아요/삭제 버튼 비활성화 처리
- 주제 확정 API 메서드 POST → PATCH로 수정

* fix: confirmedTopic필드명 변경(#78)

* style: 디버깅코드 제거(#78)
* feat: 카카오맵 feature 모듈 분리 및 장소 검색 기능 개선 (#76)

- meetings feature에 산재된 카카오맵 관련 코드를 kakaomap feature로 분리.
- Map, MapMarker, Marker, ZoomControl 컴포넌트와 useKakaoLoader,
useKakaoMap, useKakaoPlaceSearch 훅을 독립 모듈로 구성.
- PlaceListSkeleton 컴포넌트와 usePlaceSearch 훅을 추가하여 장소 검색 UX 개선.
- 장소 검색 모달 디자인 수정

* refactor: 카카오맵 모듈 구조 개선 및 컨텍스트 타입 안전성 강화 (#76)

- useKakaoMapContext가 null 대신 Error를 throw하도록 변경하여 Map 컴포넌트 외부 사용 시 명확한 에러 발생.
- Marker 인스턴스 관리를 useRef에서 useMemo로 전환하여 타이밍 문제 해결.
- components/context/hooks/lib 각 디렉토리에 barrel export index 추가.
- useKakaoMap, MapModal 불필요 파일 삭제.
- useKakaoLoader 환경변수 사전 체크 로직 개선.
- usePlaceSearch 모달 닫기 시 mapInstance null 초기화.

* refactor :  SDK 에러와 검색 에러 분리(#76)

* style:프리티어 수정(#76)

* refactor: Loader 클래스를 KakaoMapApiLoader로 이름 변경 (#76)
* feat: 약속 회고 AI 요약 플로우 UI 구현 (#84)

약속 회고 생성 페이지에서 AI 요약 시작 시 결과 페이지로 이동하여
로딩 오버레이 → 스켈레톤 → 완료 토스트 플로우를 표시하는 UI 구현.
실제 API 연동은 백엔드 확정 후 교체 예정 (현재 setTimeout mock).

- 약속 회고 생성/결과 페이지 및 라우트 추가
- AI 로딩 오버레이(AiLoadingOverlay) + 완료 토스트(AiSummaryToast)
- 피그마 디자인 기반 그래디언트 AI 아이콘 및 펄스 애니메이션
- 회고 스켈레톤(RetrospectiveSummarySkeleton) 컴포넌트
- sonner 토스트 라이브러리 및 Sonner 컴포넌트 연동
- 약속 상세 → 회고 네비게이션 연결

* style: prettier 포맷 수정 (#84)

* fix: 코드 리뷰 반영 - import 경로 및 타이머 정리 (#84)

- AiLoadingOverlay: 상대 경로 → @/ 별칭 import 수정
- AiSummaryToast: 내부 setTimeout 미정리 수정 (useRef로 cleanup)
- AiSummaryToast: onDismiss stale closure 수정 (useRef 패턴)

* fix: 코드 리뷰 nitpick 반영 (#84)

- AiGradientIcon: useId()로 gradient id 유니크 생성
- CreatePage/Page: useParams guard, non-null assertion 제거
- Page: location.state 타입 정의, onCancel 핸들러 연결
- Sonner: error icon 빈 문자열을 빈 Fragment로 교체

---------

Co-authored-by: ymg <ymg@intosoft.kr>
* feat: 메인페이지 대시보드 UI 구현 (#70)

읽고 있는 책, 내 약속 리스트, 즐겨찾는 모임 3개 섹션 구현.
- BookCarousel: 호버 시 좌우 화살표, 스크롤 감지 캐러셀
- MyMeetingsSection: 커서 기반 페이지네이션, 펼치기/접기
- FavoriteGatheringsSection: 3열 그리드 즐겨찾기 모임 카드
- 각 섹션 스켈레톤 UI 적용 (Figma 디자인 규칙 기반)
- useDeferredLoading 훅: 지연 표시 + 최소 표시 시간으로 깜빡임 방지

* style: prettier 포맷팅 수정 (#70)

* feat: 모임 생성 직후 약속 만들기 툴팁 표시 (#70)

* style: prettier 포맷팅 수정 (#70)

* fix: 주제 확정 API의 mock 변수명 오타 수정 (#70)

* fix: CI lint 오류 수정 및 메인페이지 코드 리뷰 반영 (#70)

- hooks/index.ts: simple-import-sort 위반 수정 (useMyMeetings, useMyMeetingTabCounts 순서)
- HomeMeetingCard: date-fns로 날짜 포맷 변경, getDDay 캘린더 기준 계산으로 수정
- pagination.ts: MY_MEETINGS 페이지 사이즈 상수 추가
- useMyMeetings: 로컬 상수 제거 후 PAGE_SIZES.MY_MEETINGS 사용
- HomeSectionHeader: ReactNode import type 추가
- BookCarousel: ReactNode import type 추가, 중복 scroll-smooth 제거
- HomePage: 로딩 중 닉네임 빈 문자열 노출 방지
- FavoriteGatheringsSection: data 미로드 시 null 반환, toggleFavorite 불필요한 래퍼 제거
- MyMeetingsSection: 하드코딩된 숫자를 PAGE_SIZES.MY_MEETINGS로 교체

* fix: Prettier 포맷 수정 및 isDone 버튼 비활성화 (#70)

- BookCarousel.tsx: Prettier 포맷 수정 (CI format:check 실패 원인)
- HomeMeetingCard: 개인 회고 페이지 미연결 상태에서 isDone 버튼 disabled 처리
  (클릭 시 stopPropagation만 호출되어 카드 네비게이션을 막는 문제 수정)

---------

Co-authored-by: ymg <ymg@intosoft.kr>
* feat: 책 평가 조회 구현 (#62)

* feat: 사전의견 주제 내역 조회 구현 (#62)

* fix: 사전의견 작성 페이지 레이아웃 및 안내 메시지 수정 (#62)

* refactor: 사전의견 작성 경로를 ROUTES 상수로 통합 (#62)

* feat: 변경된 사전 의견 조회 API 반영 (#62)

* feat: 책 평가 별점 초기화 기능 추가 (#62)

* feat: 사전 의견 저장 및 공유 기능 구현 (#62)

* refactor: format 맞춤 (#62)

* fix: 사전 의견 및 책 평가 폼 상태 관리 버그 수정 (#62)

* fix: 책 평가 폼 상태 초기화 및 에러 처리 개선 (#62)

* fix: 사전 의견 폼 유효성 검증 및 에러 처리 개선 (#62)

* refactor: 사전 의견 컴포넌트 분리 및 타입 의존성 정리 (#62)

* refactor: 사전 의견 작성 페이지 라우팅 정리 및 제출 로직 개선 (#62)
* refactor: 레이아웃 리팩토링 및 CSS 핵 제거 (#83)

FullWidthLayout으로 9개 페이지 전환하여 뷰포트 핵 제거.
SubPageHeader/FormPageHeader 공유 컴포넌트로 뒤로가기 헤더 통일.
useScrollShadow 훅 추출로 스크롤 shadow 로직 DRY 개선.
shadow 값을 shadow-drop-bottom으로 전체 통일.
회고 페이지 CSS 변수 버그(--gnb-height) 수정 및 콘텐츠 래퍼 추가.
라우트 중복 경로 제거.

* fix: pr 리뷰 반영 - 하드코딩 제거 및 안전성 개선 (#83)
@mgYang53 mgYang53 self-assigned this Feb 19, 2026
@mgYang53 mgYang53 added the chore 설정과 기타 작업들을 포함한 추가 및 수정 label Feb 19, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 19, 2026

Important

Review skipped

Too many files!

This PR contains 235 files, which is 85 over the limit of 150.

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch develop

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

Comment @coderabbitai help to get the list of available commands and usage tips.

@mgYang53 mgYang53 merged commit d08fea1 into main Feb 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore 설정과 기타 작업들을 포함한 추가 및 수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants