2026-09-05 PulseUp 작업일지입니다. 오늘은 23건의 작업을 진행했습니다.

회원가입 필수값 검증

현상/기능

  • 회원가입시 저장시 valadation check 해서 어떤 정보가 빠졌는지 명확하게 알려서 입력하게 한다
  • 파일 · 변경
  • `getRegisterValidationIssues` — 모든 오류 수집
  • / · 가입 버튼 항상 활성, 항목별 안내
  • / · 앱도 동일

약관 동의 버전 보기

현상/기능

  • 약관동의에서 해당 버전을 볼 수 있도록 보기 버튼을 추가한다
  • 파일 · 변경
  • 약관 보기 버튼 + 보기 전용 창
  • / · 약관 보기 버튼
  • / · `mode=view`, 버전 표시

부가 정보 라벨·2열

현상/기능

  • 부가정보의 항목이 뭔지 모르겠다. 앱에서 부가정보가 한줄에 2개씩 들어가게 수정하고
  • 파일 · 변경
  • / · 키·몸무게·나이·성별·운동목표·부상·주소 라벨
  • / · 부가정보 2열 배치

헤더 인사말

현상/기능

  • 1. header 에 "안녕하세요, ~~님" 부분에서 ~~를 닉네임으로 변경해. 닉네임이 없으면 이름, 이름이 없으면 id 로. 닉네임이 없으면 그 옆에 작은 글씨로 "닉네임을 등록." 라고 보이게
  • 2. 앱에 header 에 "안녕하세요~" 앞에 로고를 붙여줘
  • 파일 · 변경
  • 닉네임 우선 인사 + 등록 안내
  • 로고 + 동일 인사 규칙
  • header 크기
  • / · 로그인 응답에 nickname

회원가입 / 개인정보 수정

현상/기능

  • 회원가입과 개인정보 수정시에 닉네임 중복체크 하게
  • 파일 · 변경
  • / · `GET /auth/check-nickname`, 가입·프로필 저장 시 중복 차단
  • `Register*` / `AccountSettings*` · 웹 닉네임 중복 버튼
  • `RegisterScreen` / `ProfileEditScreen` · 앱 닉네임 중복 버튼

개인정보 수정

현상/기능

  • 웹에서 계정 설정, 앱에서는 가입정보 수정 이라 되어 있는데 "개인정보 수정" 으로 통일한다
  • 파일 · 변경
  • 메뉴 문구
  • 페이지 제목
  • / · 메뉴·화면 제목

계정 설정

현상/기능

  • 웹에서 역할: 일반 사용자 는 빼줘
  • 파일 · 변경
  • `역할: 일반 사용자` 문구 제거
  • role 전달 제거

계정 설정 / 내정보

현상/기능

  • 1. 웹과 앱 모두 회원가입시 입력하는 내용을 수정할 수 있도록 한다
  • 2. 약관동의를 언제 했는지 명시한다
  • 파일 · 변경
  • 조회·부분수정 `getByUserId`/`applyPatch`
  • / · `/me`에 프로필·동의일시, 프로필 수정 확장
  • `AccountSettings*` · 웹 가입정보 수정 + 약관 동의일시
  • `ProfileScreen` / `ProfileEditScreen` · 앱 가입정보 수정 + 약관 동의일시

회원앱 공지사항

현상/기능

  • 공지사항을 열면 하단의 메뉴가 안보인다
  • 파일 · 변경
  • `app/(tabs)/` · 탭 그룹으로 이동
  • `app/(tabs)/` · `href: null`로 탭 바에서 숨김
  • `app/` · 루트 `announcements` 스택 제거
  • 뒤로 시 `/home`으로 이동

API 공지사항

현상/기능

  • 웹의 공지사항이 이거잖아. 이거랑 같이 하면 된다
  • (로그: announcement_targets doesn't exist)
  • 파일 · 변경
  • 회원 조회를 user-dashboard와 같은 `announcements`+`announcement_reads` SQL로 변경
  • 웹과 같은 `important` 유형 라벨

API 공지사항

현상/기능

  • 터미널 로그: Bind parameters must not contain undefined (`sp_get_unread_announcement_count`, `sp_get_announcements_for_user`)
  • 파일 · 변경
  • `branchId`/`branch_id` 읽고 없으면 `null`
  • 프로시저 인자의 `undefined`를 `null`로 변환

회원앱 공지사항

현상/기능

  • 추천대로 진행
  • 파일 · 변경
  • 목록/미읽음/읽음 API
  • 미읽음·중요 공지 상태
  • `/announcements` 목록
  • 상세 팝업
  • 세션당 중요 공지 팝업
  • 종 아이콘 + 배지
  • 공지사항 메뉴
  • megaphone/bell/chevronRight
  • / · 라우트·Provider

회원앱 지점신청

현상/기능

  • 지점신청 메뉴도 웹페이지처럼 상단에 전체 목록, 하단에 신청 지점목록 나옥게 한다
  • 가로 모드 일때는 좌측에 전체 목록, 우측에 신청 지점 목록이 나온다
  • (지금처럼 카드 형태 아니다.)
  • 파일 · 변경
  • 세로 상하 / 가로 좌우 테이블 배치
  • 테이블 프레임
  • 전체 지점 테이블
  • 신청·가입 테이블
  • 배지 색, 빈 텍스트 표시

회원앱 운동기록

현상/기능

  • 운동기록도 가로모드 일때
  • 상단 기록요약을 그대로 두고
  • 2x2 형태로 해서
  • 좌상 수업 예약 및 출석
  • 좌하 운동일 기록
  • 우상 수업일별 심박그래프
  • 우하 인바디 현황
  • 을 배치한다
  • 또한 좌 : 우 를 4.5 : 5.5 로 한다
  • 파일 · 변경
  • 가로 2x2 그리드, 좌:우 4.5:5.5

회원앱 하단 탭

현상/기능

  • 전체 레이아웃에서 가로 모드로 하면 하단 아이콘이 테블릿자체 하단 메뉴에 겹쳐 진다
  • 파일 · 변경
  • `(tabs)/` · 가로 탭 바 `height`/`paddingBottom`에 `insets.bottom` 반영

회원앱 수업예약

현상/기능

  • 1. 지점은 select box 형태로 한다
  • 2. 세로 모드 일때는 지점-달력-예약목록 이렇게 세로로 1열로 표시 하고
  • 3. 가로 모드 일때는 지점 - (달력-예약 목록 가로로) 이렇게 세로로 표시한다
  • 파일 · 변경
  • 지점 셀렉트 박스
  • 세로 1열 / 가로 지점+2열 레이아웃
  • 달력 안 지점 툴바 제거

회원앱 수업예약

현상/기능

  • 다음은 수업예약
  • 1. 앱도 웹처럼 상단에 지점을 선택할 수 있게 하고
  • 2. 달력을 추가한다
  • 3. 하단에 예약목록을 넣는다
  • 4. 예약시에는 별도의 팝업이 떠서 예약 할 수 있게 한다
  • 그러니까 기본적으로 웹가 비슷한 UX 를 추구 한다
  • 파일 · 변경
  • `branch_id`/`category`, `fetchBookingSettings`
  • 월/날짜/차단 사유 유틸
  • 월간 달력 + 월/지점 툴바
  • 당일 예약 목록, 예약/취소
  • 수업예약 확인 팝업
  • 웹과 같은 지점·달력·목록·팝업 흐름
  • 주간 슬롯 유틸 삭제

회원앱/웹 운동기록

현상/기능

  • 앱 상단 달력과 새로고침 사이에 지점등록 기능을 추가
  • 웹도 달력 지점등록 새로고침 이순서로 변경
  • 파일 · 변경
  • 달력과 새로고침 사이에 지점등록 → `/branches`
  • 헤더 순서를 달력 → 지점 등록 → 새로고침

회원앱/웹 운동기록

현상/기능

  • 수업 예약 및 출석에 수업예약으로 바로 가기 버튼으로 "예약" 을 만들어
  • 파일 · 변경
  • (웹) · 헤더 `예약` → `/booking/calendar`
  • (앱) · 헤더 `예약` → `/booking`

회원앱/웹 운동기록

현상/기능

  • 1. 수업예약 및 출석은 종료된 운동예약은 나오지 않는다. 그리고 "예약" 만 나오고 그 옆에는 다른건 없앤다
  • 2. 시간이 지난 모든 예약은 운동일 기록에 나오고 운동 현황(완료, 취소, 노쇼)을 보이게 한다
  • 3. 운동일 기록과 수업일별 심박 그래프의 위치를 변경한다
  • 4-1. 웹 1:1:1, 심박/인바디 1:1
  • 4-2. 앱 1.5:1.5:1:1
  • 파일 · 변경
  • 취소 예약도 overview bookings에 포함
  • / · 예정/지난 예약 분리, 운동현황 아이템 생성
  • `BookingAttendanceList` · 예정 예약 + `예약` 배지만
  • `WorkoutDayList` · 지난 예약과 완료/취소/노쇼
  • `MemberWorkoutRecords` / `WorkoutRecordsScreen` · 레이아웃 비율·순서

회원앱 헤더·아이콘

현상/기능

  • 앱역시 웹의 header 처럼 앱 상단에 "안녕하세요, ~~님" 을 추가하고 화면내 아이콘도 추가
  • 파일 · 변경
  • `안녕하세요, {이름}님` 상단 바
  • 웹과 같은 역할의 화면 아이콘
  • `greeting` 옵션. 스크롤과 분리해 상단 고정
  • 운동기록/예약/지점/내정보 화면 · 인사 헤더 + 제목·섹션 아이콘

회원앱 운동기록 / 웹 운동기록

현상/기능

  • 앱과 웹의 운동기록 페이지 수정
  • 1. 수업예약 및 출석 영역 — 지난 예약은 종료, 예약 옆에 참석여부, 예약은 대기, 클릭하면 수업예약으로 이동
  • 2. 앱에서 수업예약 및 출석 : 수업일별 심박 그래프 : 운동일 기록 : 인바디 현황의 높이를 2:2:1:1 fit
  • 파일 · 변경
  • / · 대기·종료·참석 라벨 유틸 추가. 기존 `getBookingStatusLabel`은 유지
  • (웹/앱) · 배지 2개, 클릭 시 `/booking/calendar` · `/booking`
  • 스크롤 제거, 4영역 flex 2:2:1:1
  • / / · fill 높이·요약 한 줄 맞춤

회원앱

현상/기능

  • 내 운동기록 화면 되돌리기 진행. 그전에 실행 명령은
  • 파일 · 변경
  • 세로/가로 모두 한 줄 스크롤. `useSplit` 제거

현상/기능

  • 현재까지의 개발 내역을 간단하게 정리하고, 다음 개발내용을 확인