2026-07-27 세션 — 미반영 커밋 선별 운영배포(C·D·E) + devplan 배포관리 페이지
지시
페페: "pfs 테스트 서버에서 아직 운영서버 반영 안 된 커밋 리스트 핵심 내용 추출" → 리스트 확인 후 "C·D·E만 안전한 순서대로 운영배포" + "devplan pfs 카드 상세페이지 만들어 내가 관리하게".
1. 미반영 커밋 산출 — 89건이 아니라 20건
- 원시 차이
git log origin/deploy-live..origin/master= 89건. 그러나 운영은 merge가 아니라 cherry-pick 이력이 많아 해시가 전부 다르다 → 그대로 세면 과대계상. - patch-id 비교로 걸러야 실제가 나온다:
git log --no-merges --cherry-pick --right-only origin/deploy-live...origin/master→ 22건. - 그중
72fc04e(OMC 시트관리)·f39980d(untrack 346) 2건은 파일 diff 0(내용상 이미 반영, 해시만 다름) → 실제 20건. - 최종 확인은 항상
git diff --stat origin/deploy-live origin/master(=32파일 +1,760줄)와 대조. 커밋별 변경파일이 이 diff 목록에 남아 있는지로 판정했다.
2. 그룹 분류 (페페 보고 형식)
- A 화물앱 배차 연동 3건(07-26):
f39bdd8접수 연동(차량 15톤수·차종·상하차·큐 API·배지) /1fa41bedispatch_no 0 반환 수정(execute_id) /3fa0175상태 PATCH 500→400. DB는ensure_freight_cols런타임 멱등 ALTER 8컬럼이라 별도 마이그 불요. - B 월마감 5건(07-22~23):
dae788e신규 페이지+API+엑셀 /26c49cd합계 수동보존 /c684883jQuery{{ super() }}/ce9b34eDecimal 500 픽스 /34ab1c3검증배지 가족합. 🔴patch41_monthly_close.sql운영 RDS 선행 실행 + 메뉴 시드 46 필요. - C orderpaper 파싱·동기화 6건 / D 자재관리 3건 / E 인프라 스크립트 3건 → 이번에 배포.
3. 선별 배포 방법 (playbook §2의 merge가 못 쓰이는 경우)
git merge master는 A·B까지 끌고 온다 → 파일 단위 포워드 반영을 썼다(§2-3 "포워드 복원"과 동일 패턴).
1. git checkout deploy-live
2. 그룹별로 git checkout origin/master -- <files> → 그룹 커밋 (위험 낮은 순 E → C → D)
3. 1회 push (배포·재시작 1회로 끝냄. 그룹마다 push하면 운영 재시작 3회)
- 전제 확인 = 대상 파일이 A·B 커밋에 걸치지 않을 것. 이번 9개 파일은 전부 무관함을 git log ... -- <file>로 확인 후 진행.
4. 배포 커밋 (deploy-live)
| 커밋 | 그룹 | 내용 |
|---|---|---|
6fe4e38 |
E | ssm_run aws 호출 복구(fa94629·0d4d7db: venv python -m awscli + 출력 UTF-8 errors=replace) + 택배 운영RDS 마이그 스크립트(b388449) |
7b916e8 |
C | 품명 0 무효행 제외(7a760fc) + 파일명 '복사본' 노이즈·업체 화이트리스트(d3a22c0) + stock 발주량 숫자부만 시드(44fd77d, sync/upload 양쪽) |
8ca0389 |
D | 자재관리 숫자 컬럼 헤더 가운데정렬 .mm-hc + 컬럼폭 절약(8107a89), 캐시버스터 v20260715c→d |
내용상 이미 반영돼 코드 차이 0이던 6건: f4eed35·d35976f(본체) · a0f9e84·2c90288·d95e4b8 · 72fc04e+f39980d.
5. 검증
- 배포 전 자체검증:
_is_zero_name6케이스 +parse_site_from_filename4케이스(복사본/일반/괄호마커/선행'추가') +num_only4케이스 PASS. D는 colgroup<col>17개 불변 확인(변경은 폭·헤더명·캐시버스터뿐). - 배포 후 SSM 실측: 운영
/home/ubuntu/pfsHEAD=8ca0389,mm-hc1,_is_zero_name2,v=20260715d, 신규 2파일 존재,pfs-live.uwsgi.serviceactive,/login200, css?v=20260715d200 + mm-hc 서빙. - 남은 diff = A·B +
migrations/create_dispatch_tables.sql(revert 이력 탓 운영 브랜치에만 없음, 무해)뿐임을 재확인.
6. devplan 배포관리 페이지 신설
C:\dev\devplan\pfs.html— 그동안 pfs 카드는url: null(상세 없음)이었다.projects.jsonurl=/pfs.html+ desc 갱신 →build_hub.py재빌드.- 구성 = ①미반영 8건 관리표(커밋·날짜·그룹·내용·영향파일·DB배지 + 상태 셀렉트(보류/배포예정/배포완료)·메모, localStorage
pfs-deploy-state) ②배포 전 체크리스트 6항목(patch41 선행 등, 체크 저장) ③2026-07-27 배포완료 3커밋 ④배포 규칙(playbook §2 + 선별배포) ⑤미반영 확인 명령 복붙. - 코디용 지시문 복사 버튼 = '배포예정'으로 표시한 커밋만 모아 지시문 텍스트로 클립보드 복사(페페가 그대로 붙여넣으면 다음 배포 지시가 됨).
- 검증 = 헤드리스 E2E: 8행·완료3행·체크6 렌더, 상태/메모/체크 저장→새로고침 유지, KPI 연동(미반영 8→7·예정 1), 초기화 후 원복, 가로 스크롤 없음, 콘솔 에러 favicon 404뿐. 허브 카드 pfs → ↗ 표시 + 모달 "계획 페이지 열기" 링크 정상.
- 데이터 갱신 방식 = 코디가
pfs.html의PENDING/DONE배열을 수정(파일 1개, 서버 불요).