2026-07-20 PulseUp 작업일지입니다. 오늘은 4건의 작업을 진행했습니다.
단일 트레이닝 Electron 가로·세로 재생
현상/기능
- 월간프로그램 SINGLE 가로·세로 Play를 Electron 전용 화면으로 전달하고 리모컨 인트로·분할 변경을 제한
- 모니터 1대는 단일 운동 영상, 2대 이상은 운동 영상+기존 타이머/심박 화면만 사용
- 세로 3영상 캐러셀과 가로 전체영상·우하단 다음 영상 프리뷰 구현
- 세로 SINGLE 영상 미표시를 수정하고 3단 영상·상하 정보 영역 및 보조 모니터 심박 전체 화면 구성
- SINGLE 모니터 수별 창 배치 회귀 검증
작업
- SINGLE payload에 presentation·방향·scope·인트로 사용 여부를 추가하고 직접/릴레이 경로를 통일했으며, 리모컨 세션 상태에 따라 인트로와 3/5분할 변경을 비활성화
- `main/`, `main/`, `main/`, `main/`
- SINGLE 전용 창 배치와 presentation 전환 readiness 대기를 추가하고, 단일 재생에서는 멀티 그리드 큐·프리로드를 생략하며 인트로 명령을 차단
- `renderer/components/`
- 세로는 이전/현재/다음 중 중앙만, 가로는 본 영상만 재생하고 휴식·물보충에는 다음 영상을 선재생하도록 구성. 방향별 헤더·푸터·로고·시간 표시와 pause/resume/stop을 기존 세션 이벤트에 연동
- `renderer/components/`, , `circuits/shared/`
- 다양한 Vimeo 필드와 숫자 ID를 정규화해 영상을 로드하고, 동일 높이 3단 영상 위에 Main/Rest/Water Break·SET/RND·MOVE와 현재/운동시간 정보를 오버레이. SINGLE 타이머 모니터에서는 좌측 카운터와 준비 카운트다운을 제거하고 심박 패널만 전체 화면으로 표시
- 모니터별 창 배치와 운동→휴식·물보충 다음 영상 1회 이동, 다음 운동 재진입, 마지막 빈 화면을 단위 테스트로 확인
- **Web** · `MonthProgram/components/`, , , `services/`
- **Test** · `main/`, `renderer/components/`
1Monitor EMOM Stress 저장 (Singleexercises)
현상/기능
- 1모니터(Singleexercises) EMOM-Stress 저장을 `workout_exercises_logic.md` §10(MOVE 고정·SET 순환·6MOVE 물보충) 규칙에 맞춤
- Single scope EMOM-STRESS 기본값을 §10(3/2/1분·Set3 물보충 5분·reps 10)에 맞춤
작업
- linear EMOM-Stress 생성 시 grid와 동일하게 6MOVE마다 물보충·SET 간 휴식 없음을 적용하고, stress 전용 시간 합산·화면 표시에 `circuitType`을 전달. 단위 테스트 추가
- `SINGLE_EMOM_STRESS_DEFAULT_ROWS` 추가 및 Single 트레이닝 설정 초기값·`getDefaultRowsForMethod` 분기 연동
- **Web** · `shared/save-workout/`
- **Web** · `WorkoutSettings/components/`
1Monitor EMOM Loop 저장 (Singleexercises)
현상/기능
- 1모니터(Singleexercises) EMOM-Loop 저장을 `workout_exercises_logic.md` §11(6MOVE·RND 순환·lap 1,2,3,6,5,4·RND3 물보충) 규칙에 맞춤
- Single scope EMOM-LOOP 기본값을 §11(3/2/1분·RND3 물보충 5분·reps 10)에 맞춤
작업
- linear EMOM-Loop 생성 시 6MOVE 블록마다 RND1→3·블록 내 lap 역순(B/D) 정렬·전반 RND3 끝 물보충을 적용하고 loop 시간 합산을 6MOVE 블록 물보충 기준으로 수정. 단위 테스트 추가
- `SINGLE_EMOM_LOOP_DEFAULT_ROWS` 추가 및 Single 트레이닝 설정 초기값·`getDefaultRowsForMethod` 분기 연동
- **Web** · `shared/save-workout/`
- **Web** · `WorkoutSettings/components/`
Singleexercises EMOM 저장 연동
현상/기능
- Singleexercises에서 EMOM-Stress(§10)·EMOM-Loop(§11) 저장 API 연동 및 검증
작업
- handleSave EMOM 분기에 패널·메인 운동 검증 추가, `saveEMOM`에 linear sequenceMode·circuitType(stress|loop) 전달, 시간 합산에 method_type 반영. 저장 후 originalCircuitType 추적 보강
- **Web** · `Singleexercises/`, `shared/save-workout/`