2026-06-16 PulseUp 작업일지입니다. 오늘은 2건의 작업을 진행했습니다.
AMRAP·EMOM 좌/우 모니터 배치 좌 A·C / 우 B·D 적용 (서킷별 분기)
현상/기능
- loop/stress 는 좌 A/B·우 C/D 유지하되, AMRAP·EMOM(및 그 외, combo 제외)은 좌 A/C·우 B/D 로 표시 + 양쪽표시
- AMRAP·EMOM 저장 블록을 전반 A·B / 후반 C·D 로 묶기
- NEW 엔진(좌 A/B) 유지하면서 AMRAP·EMOM만 OLD(좌 A/C) 물리배치
- EMOM·Main-Training·AMRAP 모두 5분할은 좌→우 A,B,C,D
작업
- AMRAP 블록은 round 로 동시재생 묶음, 모니터 배치는 position(set) 기반임을 확인. 전반/후반(A,C↔A,B)이 B↔C 스왑 관계라는 점을 이용해 서킷별 배치를 분기
- `AMRAP_EMOM_LAP_ORDER`(OLD, 좌 A/C용)와 `lapOrderForCircuit` 추가. `sortExercisesForExecution(exercises, circuitType)` 서킷 인지로 변경(loop/stress=STRESS_LAP_ORDER, 그 외=OLD)
- `swapGridHalfPosition`/`applyCircuitHalfSwap`(B↔C, 자기역함수) 추가. `handleWorkoutPlay` 정규화에서 amrap/emom 메인 position 만 B↔C 스왑→NEW 큐/렌더 엔진이 OLD 배치로 출력. 화면 라벨은 `updatePositionLabel`에서 역스왑해 작성 코드(B/C) 표시. 양쪽표시는 올바른 슬롯 정렬로 자동 노출
- B↔C 스왑은 3분할 전용이므로 `getScreenMode==='five'` 이면 스왑 생략. `WorkoutGridDisplay.isFiveScreenLayout` 플래그 추가, 큐/인트로 셋업에서 설정해 5분할에서는 라벨 역스왑도 끔. 5분할은 `fillFiveScreenSlotQueues`가 패널 L1=A·L2=B·R1=C·R2=D 로 직배치
- **분석** · `runAmrapMainRound`, `queue-builder-base`
- **Web**
- **Electron(5분할 보정)**
메인 운동 좌/우 모니터 배치 L/R 기준 복원 (좌 A·B / 우 C·D)
현상/기능
- A,B,C,D 수정 전 L/R일 때가 정상. 그 기준으로 재적용. 영상 진행 순서는 정상이나 좌우 배치가 `좌 A/C·우 B/D`로 나옴 → `좌 A/B·우 C/D`로 변경 필요
- 위치 코드의 좌/우·전반/후반 정의를 L/R 기준으로 재정의
- 재생/인트로 그리드도 좌 A/B·우 C/D로 표시
- 변경된 매핑 검증
작업
- L/R 시절 좌측=L1~L6(→A·B), 우측=R1~R6(→C·D), 전반=번호1~3(A·C)/후반=4~6(B·D)였음. 현재 A/B/C/D가 B↔C 역할이 뒤바뀐 회귀임을 git 이력으로 확인
- `parseGridPosition` side(A,B=좌·C,D=우)·set(A,C=set1·B,D=set2) 변경, `STRESS_LAP_ORDER`를 `A1→A2→A3→C3→C2→C1 / B1→B2→B3→D3→D2→D1`로 변경, `gridSetFromPrefix`·`gridSidePrefix` 동기화. 저장 정렬(`sortExercisesForExecution`)·loop lap(`LOOP_LAP_ORDER`)·EMOM/AMRAP half-group이 모두 이 상수에서 파생되어 자동 정합
- `circuits/shared/`, , `renderer/workout-renderers/`, `renderer/`, `common/`, `renderer/circuits/`
- 3분할 슬롯 큐 prefix(좌 A·B / 우 C·D), 5분할 mainSet 판정, 메인 렌더러 set별 prefix, seek 라벨 변환, half-group set(0=A/C·1=B/D), 인트로 monitorSides·기본 라벨을 일괄 정합. EMOM 타이머/DS/reps 로직은 미변경
- side/set·STRESS_LAP_ORDER·half-group·seek 라벨 기대값 갱신. 관련 28개 테스트 통과(그 외 실패는 DB/jsdom 의존 기존 실패)
- **분석** · `git 이력(eb6aa15)` 대조
- **공통** · `electron/common/`, `web-app/utils/`
- **Test** · (electron·web)