2026-09-08 PulseUp 작업일지입니다. 오늘은 29건의 작업을 진행했습니다.
`/account/branches` 지점명 열 폭·정렬
현상/기능
- 지점명 폭을 30% 줄이고 데이터는 중앙정렬
작업
- 지점명 `140px` → `98px`, 값 가운데. 운동내용은 줄인 42px만큼 `202px`
- 지점명 `130px` → `91px`, 값 가운데. 운동내용은 줄인 39px만큼 `159px`
앱 심박계 상세정보 표 표시
현상/기능
- 앱 심박계 상세정보: 기기명 예시 라벨 제거. 유형·사용여부·구분과 소유회원·배정순번·제조사·모델은 테이블로 값만 표시. 자체 기기 소유회원은 빈 칸(웹도 같이). 메모 높이는 웹과 동일하게
작업
- 예시 라벨 제거, 항목을 표로 값만 표시, 메모 `h-10`
- 자체 기기 소유회원 placeholder를 빈 문자열로
웹 심박계 수정 폼 라벨·메모 높이
현상/기능
- 웹 admin/heart-rate-devices 심박계 수정에서 라벨의 기기명 예시는 빼고, 메모 높이를 모델 입력칸과 맞춰
작업
- 기기 ID 라벨에서 예시 문구 제거, 메모 Textarea 높이를 `h-10`으로 모델 Input과 동일하게
지점관리자 심박계 관리 — 앱 조회 전용·가로 7:3
현상/기능
- 심박계관리 수정. 앱에서는 심박계 수정은 하지 말자. 삭제, 추가 버튼 없애고, 심박계 수정을 심박계 상세정보로 변경, 취소·저장 버튼 삭제. 세로는 현재 그대로, 가로는 보유 리스트+상세정보를 좌측, 현재 예약배정을 우측 7:3
작업
- 추가/수정/삭제 API 호출 제거. 가로: 좌측 7(목록 6 : 상세 4) / 우측 예약 배정 3
- 삭제·추가 버튼 제거
- 조회 전용 상세정보, 취소·저장 제거
- 폼 모드 `view`, 제목 `심박계 상세정보`
지점관리자 계정관리 — 역할 안내
현상/기능
- 계정관리. 개인정보 수정은 일반사용자와 동일한데 한가지만 추가하자면, 약관동의 보기 버튼 아래에 지점관리자는 "* 지점관리자 입니다." 라고 진한글자로 가운데 정렬해서 추가
작업
- 계정관리(더보기)·내정보 카드에서 `role === 'branch_admin'`이면 약관 보기 아래에 진한 가운데 안내(붉은색 `#dc2626`)
- 개인정보 수정 화면에도 동일 안내
- summary만 갱신
기기 ID 라벨에 예시 추가
현상/기능
- 기기 ID 라벨에 "기기명 예시 - 'ant-10771'" 을 추가한다
작업
- 파일 · 변경
- 기기 ID 라벨에 예시
앱 개인심박 ANT 안내 줄바꿈 ( `/members`)
현상/기능
- 앱에서 "Electron ANT+ 심박은 `ant-숫자` 형식이어야 매칭됩니다." 이 문구가 잘린다
작업
- 파일 · 변경
- 안내 두 줄, `contentContainerStyle` 하단 여백
정지 라벨을 회원정지로 ( `/admin/branch-members`, `/members`)
현상/기능
- 정지를 회원정지로 바꿔
작업
- 파일 · 변경
- 열·버튼 `회원정지`
- 잔여 배지 `회원정지`
- 확인 버튼 `회원정지`
- 확인창 `회원정지`
지점회원목록 500 수정 ( `/api/branch/members`)
현상/기능
- 웹에서 에러난다. (`members.map is not a function`)
작업
- 파일 · 변경
- `await attachSuspendFlags` 후 `excludeStaffMembers`
회원목록 개인심박 버튼·팝업 ( `/admin/branch-members`, `/members`)
현상/기능
- 웹과 앱에서 개인심박의 없음/보유 표시를 버튼으로 바꾸고 클릭하면 개인심박 정보를 추가/수정/삭제 할 수 있도록 수정
작업
- 파일 · 변경
- 신규. 웹 개인 심박계 등록/수정/삭제
- 개인심박 버튼, 행 클릭과 분리
- 팝업 연결
- 신규. 앱 개인 심박계 등록/수정/삭제
- 개인심박 버튼
지점회원목록에서 직원 제외 ( `/api/branch/members`)
현상/기능
- 지점회원목록인데 지점관리자인 본인이 들어가 있다. 이건 빼자. (→ 지점관리자·총관리자 모두 제외)
작업
- 파일 · 변경
- `20260908_exclude_staff_from_branch_members.sql` · 신규. 프로시저 재정의
- `excludeStaffMembers` 로 목록 재필터
앱 지점회원 목록 누적결제 제거 ( `/members`)
현상/기능
- 누적결제도 뺀다
작업
- 파일 · 변경
- `total` 열 제거, 남은 열 비율 재조정
앱 지점회원 목록 열 정리 ( `/members`)
현상/기능
- 지점회원관리로 넘어간다. 일단 앱의 회원관리에서 상단의 회원리스트에 최근 결제는 빼고 컬럼크기를 fit 되게 조절
작업
- 파일 · 변경
- `lastPay` 열 제거, 남은 열 비율 재조정
- 목록을 항상 `fit`
앱 달력 날짜 글자 크기·정렬 ( `/booking`, `/classes`)
현상/기능
- 앱의 달력의 날짜내의 글자들을 2배 크고 진하게 하고 가로세로 중앙정렬
작업
- 파일 · 변경
- 날짜 글자 24/16, 칸 `justifyContent: 'center'`
- 날짜 글자 24/18, 칸 가운데 정렬, spacer 제거
같은 정시 구간 수업 중복 차단 (`/booking`, `/classes`)
현상/기능
- 앱와 웹에서 저장을 동시에 할 수 있으므로 같은 일자와 같은 시간대(예를 들어 1시부터 1시 59분 사이) 에 등록된 운동이 있으면 저장하지 않는다. 물론 같은 지점인 경우이다
작업
- 파일 · 변경
- `assertNoSameHourSlot`·`getSlotHourRange` 추가
- 슬롯 등록/수정에서 정시 구간 검사 호출
- `findSameHourSlot` 추가, 자동 제안 시간을 정시 기준으로 변경
- 정시 구간 검사·자동 제안 테스트 추가
- 정시 구간 중복 경고·저장 차단, 날짜 이동 시 빈 시간대로 자동 이동
- `findSameHourSlot` 추가, 자동 제안에 정시 구간 검사 반영
시간 선택 다이얼로그 버튼 색 ( `/classes`)
현상/기능
- 앱에서 시간스크롤에서 취소/확인 폰트색상을 흰색으로
작업
- 파일 · 변경
- 안드로이드 `positiveButton`/`negativeButton` 흰색 지정, 플랫폼 분기
지점·날짜별 수업명 중복 차단 ( `/booking`, `/classes`)
현상/기능
- 지점-날짜별 수업명이 같으면 확인한다. (→ 웹·앱 모두, 프런트에서 저장 차단)
작업
- 파일 · 변경
- `findDuplicateTitleSlot` 추가
- 중복 수업명 검사 테스트 추가
- 중복 경고 표시, 저장 차단
웹 수업 등록 시간·정원 선택 ( `/booking`)
현상/기능
- 웹도 시작 종료의 날짜는 앱처럼 빼고 시간과 정원만 선택할 수 있도록 한다
작업
- 파일 · 변경
- 신규. 일시 분해·날짜 라벨/이동·날짜/시간 교체·정원 목록
- 상단 날짜 화살표, 시간 입력, 정원 셀렉트, 기존 수업 목록을 표시 날짜 기준으로 계산
수업 등록 기본 시간 정각 ( `/classes`)
현상/기능
- 수업등록시 시작시간은 현재 시간에서 가장 가까운 정각시간. 종료는 그 정각시간 + 1
작업
- 파일 · 변경
- 기본 시작 정각, 겹침 1시간 이동, `createNextSlotTimes` 제거
수업 등록 정원 셀렉트 ( `/classes`)
현상/기능
- 정원 입력하는게 내가 원하는게 아니다. (→ 운동 대분류와 같은 셀렉트 박스 선택)
작업
- 파일 · 변경
- 정원 셀렉트
- summary 갱신
수업 등록 바깥 클릭 닫기 ( `/classes`)
현상/기능
- 수업등록 팝업창도 취소 아니더라도 빈곳 클릭하면 사라지게
작업
- 파일 · 변경
- 배경 클릭 닫기
수업 등록 정원 스테퍼 ( `/classes`)
현상/기능
- 정원 휠은 너무 큰데? 맘에 안든다
작업
- 파일 · 변경
- −/+ 스테퍼
- 정원 목록 제거
- `package.json` · unused picker 제거
수업 등록 정원 휠 ( `/classes`)
현상/기능
- 정원도 무식하게 숫자 30개를 만들지 말고 훨 형태로
작업
- 파일 · 변경
- 네이티브 정원 휠
- `package.json` · picker 추가
수업 등록 대분류 셀렉트 ( `/classes`)
현상/기능
- 운동 대분류도 선택하면 팝업높이가 커지는데 select box 형태로 안되나
작업
- 파일 · 변경
- 대분류 셀렉트 (신규)
- 인라인 목록 제거
수업 등록 시간 DateTimePicker ( `/classes`)
현상/기능
- 바꿔
작업
- 파일 · 변경
- 네이티브 시간 선택
- 정원 목록
- 삭제
- 피커 Date 변환
- 시작/종료·정원 배치
- `package.json` / `app.json` · datetimepicker 추가
수업 등록 하단 버튼 높이 ( `/classes`)
현상/기능
- 버튼 높이도 1.5배 높여줘
작업
- 파일 · 변경
- 하단 버튼 높이 54
수업 등록 날짜 화살표·시간/정원 휠 ( `/classes`)
현상/기능
- 잠시만. 수업등록시 이미 달력에 날짜가 선택되어 있다. 그러니 팝업을
- 1. 상단에 달력에 선택된 날짜가 있고. 좌우 화살표로 날짜를 바꿀 수 있게 한다
- 2. 시작, 종료는 시간만 등록하게 하는데 시간과 종료시간을 선택하는 timepicker 같은 걸로 선택하게
- 3. 정원도 30명까지 스크롤로 숫자를 선택할 수 있게 한다. 기본값은 10
작업
- 파일 · 변경
- 날짜 화살표·시간/정원 휠
- 날짜 좌우 이동 (신규)
- 시·분 휠 (신규)
- 스크롤 선택 (신규)
- 정원 1~30 스크롤
- 날짜 이동·표시
- 삭제
- 저장 후 계속 날짜
수업 등록 하단 버튼 너비 ( `/classes`)
현상/기능
- 하단에 취소 : 저장 후 계속 : 저장 넓이를 1 : 2 : 3
작업
- 파일 · 변경
- 하단 버튼 너비 1:2:3
수업 등록 시작/종료·정원 선택 ( `/classes`)
현상/기능
- 앱에서 수업예약시 시작/종료에 대해 지금은 숫자를 입력하는데 달력과 시간을 선택하는 컴포넌트로 바꿔. 정원입력시에도
작업
- 파일 · 변경
- 시작/종료/정원 선택 UI
- 달력·시·분 선택 (신규)
- 정원 1~30 선택 (신규)
- 일시·정원 선택 값 (신규)