7.6 KB · 수정 2026-08-04 20:04
목차

세션 — 카톡관리 「저장」 일괄 반영 + 게시글 호칭 규칙 (2026-08-04)

지시 (신동승 차장)

"카톡 게시글 관리를 하는데 항목 한개 한개 체크할때마다 바로 반영으로 넘어가서 딜레이로 인한 내용 누락 문제가 있다. 항목 수정사항 반영된 것은 페이지에 행별로 임시 하이라이트를 해주고 최종 반영은 저장 버튼을 추가해서 여러 행에 대한 내용을 한번에 보내서 처리하겠다. 작업 진행해. 운영배포"

작업 중 추가 지시:

"기본 규칙 추가한다. 카톡 게시글에서 나의 지칭을 절대 페페라고 하지마라. '신동승 차장'이라고 해라. 현재 게시된 글들도 확인해서 모두 바로 전량 수정해라."

결과 — 운영 배포 완료

항목 상태 커밋
A 일괄 저장 API /api/kakao-board/op/bulk pfs master 9f9c7f3
B 화면 = 체크는 표시만 + 저장 바
C 수정 편집기 취소 회귀 수정 pfs master 9de058c
D 운영 배포(파일단위 포워드) pfs deploy-live abc5208
E 게시글 호칭 = 신동승 차장 poin-agent c41e6fd + 게시글 v16 실반영

A·B 원인과 설계 — 왜 「표시 → 저장」인가

체크 한 건마다 /op 를 등록하고 곧바로 kbLoad()목록 전체를 다시 그렸다. 그 왕복 사이(수백 ms~수 초)에 누른 체크는 새로 그려진 DOM에 없는 행을 향하거나 렌더 도중 사라져 조용히 날아갔다 — 이게 "딜레이로 인한 내용 누락"의 실체다.

바꾼 구조 = 클릭은 전송이 아니라 표시다. - KB_PEND{행키 → 명령} 하나가 대기분의 단일 출처. 클릭 = 여기에 넣고 그 행만 다시 칠한다 (목록 재렌더 없음 → 그리는 중에 클릭이 사라질 구간 자체가 없다). - 같은 버튼 재클릭 = 표시 해제. 저장 전이라 아무것도 안 나갔으니 되돌리기가 공짜다. - 「저장」이 /op/bulk전 행을 한 번에 넘긴다. - 저장 대기 중엔 30초 자동 새로고침을 멈춘다 — 작성 중인 수정문·표시가 갱신에 쓸려나가면 그게 같은 사고의 재발이다. - 저장 후 실패한 행만 표시로 남긴다(성공분은 사라짐) → 재시도가 자명하다.

서버는 단건 add_op를 그대로 반복 호출한다. 검증·세션·읽기전용 게이트가 단건과 완전히 같고 새 신뢰경계가 생기지 않는다. 실패분은 삼키지 않고 {room_name, id, action, err} 로 회신한다.

🔑 복원 i=0 함정: 실패 회신에서 식별자를 o.get("id") or o.get("i") 로 고르면 숨김이력 첫 줄(i=0)이 falsy라 빈 값이 되어 화면이 그 행을 다시 못 잡는다 → None 판정으로 분리.

C 배포 중 잡은 회귀

완료·취소 표시가 걸려 있는 행에서 ✎ 편집기를 열고 취소하면 kbPaint 가 edit 분기가 아니라 본문 복원을 건너뛰어 textarea HTML 이 그대로 남았다. 수정 표시가 아닌 모든 경우에 원문 복귀하도록 순서를 교정. 실브라우저 검증이 잡았다(자체검사로는 안 잡힌다 — DOM 문제).

E 게시글 호칭 — 「페페」 전량 제거

검증

함정 · 규칙 (신규)

  1. Edit 도구가 LF 템플릿을 CRLF로 바꾼다git diff 가 1,527행 전체 리라이트로 부풀어 배포 경계 판정(파일 diff)이 무의미해진다. 커밋 전 git diff --stat 확인 → --ignore-all-space 와 차이가 크면 LF로 정규화하고 다시 본다.
  2. push 직후 검증은 배포보다 빠르다 — 테스트 자동배포 전 옛 템플릿으로 돌아 FAIL 1건이 났고 코드 문제로 오진할 뻔했다. 검증 전에 서빙되는 HTML에 새 문자열이 있는지 먼저 확인.
  3. 배포 경계 확인 = git diff --stat origin/deploy-live <작업직전커밋> -- <대상파일>비어야 그 파일의 미배포분이 내 변경분뿐이다(AL발주서 QA 15파일 유입 방지).

후속 (같은 날) — 저장 바 위치: 아래 → 방 목록 최상단

지시 = "저장버튼이 아래쪽에 있어서 안보인다. 카톡방 최상단으로 위치 변경."

⏳ 신동승 차장 몫