Skip to content

[MERGE] develop → main 배포 병합 - #672

Merged
zana0422-creator merged 21 commits into
mainfrom
develop
Aug 19, 2026
Merged

zana0422-creator merged 21 commits into
mainfrom
develop

Conversation

@hyun030514

Copy link
Copy Markdown
Contributor

📋 PR 타입

해당하는 타입을 선택해 주세요 (복수 선택 가능)

  • feature — 새로운 기능 추가
  • fix — 버그 수정
  • style — 코드 스타일 수정 (로직 변경 없음)
  • refactor — 리팩토링
  • docs — 문서 수정
  • test — 테스트 코드
  • design — UI/UX 변경
  • chore — 설정/빌드 작업
  • merge

🗂 작업 영역

  • 워크벤치 — 회의 · 캡처 · AI검토 · 회의실
  • 업무 — 보드 · 액션 · 프로젝트 · 인수인계
  • 조직 — 역할별 대시보드 · 사원/회의실 관리 · 구독
  • 공유 셸 · 디자인 시스템 ⚠️ (셸 담당자만, 별도 PR)
  • 공통 · 인프라

🙋 관련 역할

  • OWNER (대표)
  • ADMIN (관리자)
  • LEADER (팀장)
  • MEMBER (사원)
  • SYSTEM (서비스 운영자 — 확장, 데모 제외)
  • 공통

📝 작업 내용

무엇을 · 왜 바꿨는지 작성해 주세요


✅ 작업 체크리스트

기본

  • 브랜치 명명 규칙 준수 (feature/meeting-capture#12 꼴, base develop)
  • 커밋 컨벤션 준수 (type: 제목 #{이슈번호})
  • 아래 Closes # 에 이슈 번호 기입
  • 불필요한 console · 주석 처리된 코드 제거
  • 민감 정보 없음 (토큰 · 키 · .env)

Z 필수

  • 🔐 권한 2축 검사 — 역할 가드 + 리소스 소유권(회의 담당자 등), 그리고 서버(Server Action/BFF)에서 재검사
  • 🧬 zod — 타입이 스키마에서 파생(z.infer) · 매퍼에 safeParse
  • 🕵️ 정직성 — 목 · 미구현 · 폴백이면 주석과 화면에 명시 (조용히 "되는 척" 금지)
  • 🎨 디자인 토큰 사용 (생 hex 하드코딩 없음) · 다크 값도 정의됨

품질

  • ⚡ 최적화 (이미지 next/image · 폰트 next/font · 무거운 것 next/dynamic · 시맨틱 태그)
  • ♿ a11y (label · role · alt · 키보드) · DnD면 키보드 대체 경로
  • ♻️ 재사용 확인 (components/ui → common → 도메인 순으로 먼저 확인)
  • 🧪 loading / error / empty 3상태
  • 브라우저 전용 API(STT · 녹음) 사용 시 미지원 · 권한거부 안내 있음

🔗 연관 이슈

Closes #


📸 스크린샷 (선택)

Before After

💬 리뷰 포인트

리뷰어가 중점적으로 봐야 할 부분


📝 추가 메모

hyun030514 and others added 21 commits August 19, 2026 14:47
팀장 현황 카드는 표 머리띠가 구분선 역할을 해서 제목 줄에 border-b가 없는데,
최근 프로젝트 회의 카드는 그대로 있어 같은 화면에서 제목 줄 규칙이 서로 달랐다.
후자도 border-b를 빼서 '제목 줄엔 선을 안 긋고 여백으로 가른다'는 철학으로 통일.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
member.position이 빈 문자열이면(Owner는 직급이 없어 실제로 이렇게 옴 —
manage-server.ts의 position: member.positionName ?? "") 가운뎃점을
그대로 이어 붙여 '· 없음'처럼 점이 맨 앞에 떴다. 직급이 있을 때만
가운뎃점을 붙이도록 정정하고 회귀 테스트 2개로 고정.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
BE가 Owner 직급을 안 주면 카드에 아무 표시가 안 남는다 — 이 서비스에서
Owner는 늘 대표이므로 그 값으로 채운다. BE가 실제 값을 주면 그대로 쓴다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
직급도 역할도 없는 카드에 '없음'이 반복돼 거슬린다는 지적 — 값은 매퍼가
여전히 채워 주고(검색은 그대로 동작), 화면에서만 숨긴다. 가를 게 없으면
둘째 줄 자체를 그리지 않는다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
읽기 나쁘던 임시 비밀번호 문구를 줄이고, 아이콘을 원(아바타 전용 모양)이
아닌 둥근 사각형 배지로, 시각 표시는 빼고 안 읽음은 아이콘 배지 점 하나로
정리했다. 지우기 버튼은 평소엔 숨고 줄에 호버해야 뜬다. 목에서도 눈으로
확인할 수 있게 임시 비밀번호 안내를 항상 띄운다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
브라우저 기본 알림처럼 읽히던 맨몸 느낌표 아이콘을 EmptyState와 같은
둥근 사각형 배지에 담고, 재시도 버튼을 본문과 한 줄로 붙여 세로로 길던
카드를 옆으로 늘렸다. 버튼이 없는 상태는 폭을 좁혀 오른쪽이 비지 않게 한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
이 표는 지울 프로젝트를 고르는 자리이지 프로젝트로 이동하는 자리가 아니다 —
클릭 대상을 삭제 버튼 하나로 남긴다. 태그 색 띠는 그대로 유지한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
이 헤더에서 유일한 실행 동작이라 outline(곁다리용)이 아니라 ink(주 버튼) 스타일이
맞다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`계정 발급과 초대 메일 발송에 최대 1분 정도 걸립니다`(사실)와 `창을 닫지 말고
기다려 주세요`(지시)를 한 덩어리로 두면 어절 중간에서 접혀 읽기 나쁘다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@dnd-kit/utilities의 useUniqueId가 카운터를 모듈 전역으로 두는 탓에 요청마다
서버 카운터는 올라가고 클라이언트는 늘 0에서 시작해 aria-describedby가 어긋났다.
보드 화면은 어차피 드래그 상호작용 위젯이라 SSR 이점이 없으므로, 이 화면만
next/dynamic({ssr:false})로 감싸 클라이언트에서만 그린다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`py-6`으로 헐렁하던 카드 세로 여백을 `py-4`로 줄이고, 왼쪽(제목·태그)·오른쪽
(날짜·이동 버튼) 두 세로줄로 재배치했다. 버튼 워딩은 `옮기기` 대신 출발 칸에
맞춘 다음-단계 동사(`시작하기`·`완료하기`·`이어가기`)로 바꾸고, 저장 전
미리보기를 취소하는 경로는 `되돌리기`로 갈랐다 — 다음-단계와 취소는 뜻이 완전히
달라 같은 워딩으로 못 덮는다. 이동 로직 자체는 그대로다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
로그아웃 버튼과 모양이 다르던 [비밀번호 변경]을 "⋮" 메뉴로 합치고, 맨몸 Dialog
대신 공용 ConfirmDialog(Z 표식)를 쓴다. 안내 문구를 새 비밀번호 확인 아래 한
줄로 옮기고, 두 비밀번호 칸은 타이핑 즉시 형식·일치 여부를 보여준다. 에러
줄은 항상 자리를 갖고 있어 떴다 사라져도 모달 높이가 흔들리지 않는다.

startTransition 누락(에러가 안 뜨던 문제)과 noValidate 누락(브라우저 기본
말풍선이 뜨던 문제)도 같이 고친다.
회의 제목·안건이 길면 줄임표가 안 먹히고 오른쪽 참석자(260px) 칸이 밀렸다.

flex/grid 자식은 기본 `min-width: auto`(내용 폭)라 안쪽 값 칸에 `truncate`를
걸어도 바깥 칸이 안 줄어들면 무력화된다 — 그리드 칸과 `ReadOnlyField` 래퍼
둘 다에 `min-w-0`을 준다. 잘린 글은 `title`로 마우스를 올려 전체를 볼 수 있다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
캘린더 막대를 누르면 상세 모달이 늘 "회의를 찾을 수 없습니다"만 띄웠다.

목 슬롯을 만들 때 예약 id를 `meetingId` 자리에 그대로 넘긴 탓이다 — 예약
스토어와 회의 스토어는 시퀀스가 따로 증가해서 `reservation-N`과 `meeting-N`이
서로 다른 값이다. `roomReservationId`로 역참조해 회의 쪽 id를 넘긴다.

⚠️ 짝지어진 회의가 없는 시드 예약은 예약 id로 되돌아가 기존대로 notFound다
   (두 도메인 시드가 서로 안 이어져 있다 — 별개 사안).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
답변이 낱말째로 툭툭 튀어 "띠디딕"거렸다. 두 가지가 겹쳤다.

- 조각이 낱말 단위였다 — 한글 낱말은 2~4자라 글이 덩어리로 나타났다.
  평문을 한 글자 단위로 쪼갠다(문단 나눔 `\n\n`은 붙여 둔다 — `\n` 하나만
  먼저 오면 한 문단이 두 문단으로 갈리며 아래 글이 통째로 밀린다).
- `setInterval(45ms)`이 프레임 주기(16.7ms)의 배수가 아니라 조각이 프레임에
  고르게 안 떨어졌다. rAF로 바꾸고 간격 대신 속도(초당 55자)로 잡는다.
  위치는 누적이 아니라 `흐른 시간 × 속도`의 절대값이라 프레임을 건너뛰어도
  제자리를 찾는다. 총 시간은 기존과 같다 — 바뀐 건 매끄러움이다.

커서로 쓰던 `▌`(U+258C, 반칸 블록)는 폰트가 크기를 정해 슬래브처럼 컸고,
스크린리더가 글자로 읽었고, 마크다운 본문에 섞여 파서를 거쳤다.
`.streaming-caret`이 `::after`로 그리는 2px 캐럿으로 바꾼다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- globals.css: Stylelint value-keyword-case 오류 — currentColor → currentcolor
- room-meeting-detail-dialog.test.tsx: 회귀 테스트가 안건 필드를 안 거치고
  그리드 왼쪽 칸의 min-w-0도 안 봐서, 그 클래스를 지워도 테스트가 통과했다.
  긴 안건을 함께 채우고 그리드 칸까지 올라가 min-w-0을 직접 확인한다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
[FIX] 오너 대시보드 두 카드 제목 줄 밑줄 통일 #666
[FIX] 조직도·알림·보드 여러 화면 디자인 재조정 #668
[FEAT] SYSTEM 관리자 로그인 게이트 추가 #670
@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

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.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ff948578-cf8a-4ae0-b042-f18deb098c9e

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

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.

@zana0422-creator
zana0422-creator merged commit 8b76d8e into main Aug 19, 2026
2 checks passed
@hyun030514 hyun030514 changed the title 머즤 [MERGE] develop → main 배포 병합 Aug 19, 2026
@hyun030514 hyun030514 added this to Z Aug 19, 2026
@github-project-automation github-project-automation Bot moved this to Todo in Z Aug 19, 2026
@github-project-automation github-project-automation Bot moved this from Todo to Done in Z Aug 19, 2026
@zana0422-creator zana0422-creator self-assigned this Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants