2026-09-02 PulseUp 작업일지입니다. 오늘은 1건의 작업을 진행했습니다.
회원앱
현상/기능
- 앱에서 서버 연결이 안된다고 뜬다. 같은 와이파이에 있다
- 파일 · 변경
- `src/api/` · 터널/localhost가 아닌 LAN IPv4만 API로 사용
- `scripts/dev-webapp.cjs` · 실행 시 에 `EXPO_PUBLIC_API_URL` 기록
- `src/api/` · 연결 실패 시 방화벽 안내
현상/기능
- 지금 상태에서 화면이 반응형으로 가로/세로 전환시 화면에 꽉 차게 조정
- 파일 · 변경
- `app.json` · `orientation`을 `default`로 (회전 허용)
- `src/layout/` · 가로·넓은 화면 판별
- `src/layout/` · 공통 화면 프레임 (남은 영역 채움)
- `WorkoutRecordsScreen` · 가로 3열, 카드별 내부 스크롤
- `BookingScreen`, `BranchApplyScreen` · 가로 2열
- `HeartRateDetailScreen` · 가로 2열, 그래프 높이 가변
- `ProfileScreen`, `WelcomeScreen`, `BrowseScreen` · 가로 좌우 배치·폭 제한
- `LoginScreen`, `TermsAgreeScreen`, `TermsAgreeModal` · 가로에서 잘리지 않게 스크롤
- `SummaryCards` 외 운동기록 카드 · `fill` 옵션으로 높이 채움
- `(tabs)/` · 가로에서 탭 높이 축소·라벨 옆 배치
현상/기능
- 하단 bottom navigation을 등록해야 한다
- 파일 · 변경
- `src/navigation/` · 탭 등록
- `src/app/(tabs)/*` · Expo Router Tabs
- `src/screens/profile/` · 로그아웃
- `WorkoutRecordsScreen` · 지점/예약 버튼·로그아웃 제거 (탭으로 이동)
현상/기능
- 로그인 후 홈 화면은 /account/workout-records 페이지 내용이 나오게
- 파일 · 변경
- `src/screens/workout-records/*` · 웹 운동기록 화면 이식
- `src/api/` · `/api/member-workout-records/*`
- `WorkoutRecordsScreen` 사용
- `src/app/workout-records/[workoutId].tsx` · 심박 상세
현상/기능
- 명령어 하나로 웹과 앱을 동시에 켤 수 있도록
- 파일 · 변경
- 루트 `package.json` · `dev:webapp`
- `README.md`, · 실행 방법 안내
현상/기능
- npm run dev:webapp 이거 실행하면 qr 이 안나온다
- 파일 · 변경
- `scripts/dev-webapp.cjs` · API/웹 접두어 로그 + Expo inherit
- 루트 `package.json` · `dev:webapp` → 이 스크립트
현상/기능
- 테블릿에서 "something went wrong' 에러 메시지가 나온다
- 파일 · 변경
- `src/app/` · Splash 예외 무시, ErrorBoundary
- `src/components/` · 오류 메시지 표시
- `app.json` · `reactCompiler` 제거
현상/기능
- 테블릿에서 계속 로딩아이콘만 나온다
- 파일 · 변경
- 복원 타임아웃·워치독
- SecureStore 2초 제한
- 스플래시 1.5초 후 강제 종료
현상/기능
- uncaught error: java.io.IOException : Failed to download remote update
- 파일 · 변경
- `app.json` · `updates.enabled: false`
- `package.json` · `expo start --tunnel --go`
- `scripts/dev-webapp.cjs` · LAN IP를 에 기록
- `src/api/` · 터널 호스트는 API 주소로 쓰지 않음
현상/기능
- 터미널 jwt expired / 토큰 만료됨
- 파일 · 변경
- `TOKEN_EXPIRED`는 스택 없이 401
- 토큰 메모리 캐시
- 복원 시 refresh 미리 읽음
현상/기능
- 회원가입을 누르면 약관과 개인정보 수집 및 이용동의 에 대해 체크 하고 다음으로 넘어가면 웹페이지의 회원가입 페이지가 나오게
- 파일 · 변경
- `src/screens/register/` · 이용약관·개인정보 필수 체크, 다음 버튼
- `src/legal/` · 이용약관 원문 (웹에 별도 문서 없음)
- `src/screens/register/` · 제목/본문 받는 전문 창
- `src/app/register/` · `/register` = 약관 화면
- `src/app/register/` · `/register/form?agreed=1` = 가입 폼
- 약관 UI 제거, 동의 후에만 진입