WEBBOOK CHAPTER

혼자 일하지만 혼자 하지 않는다: 11장 공개 버튼 앞에 사람을 세운다

11장 공개 버튼 앞에 사람을 세운다

초안 생성과 외부 공개는 다른 권한이다. 미리보기는 자동화할 수 있지만 웹 공개, 구독자 발송, 결제는 승인 영수증이 필요하다. 승인에는 대상, 산출물 해시, 시각, 만료, 승인자를 묶는다.

이 장의 브라우저 fixture는 승인 유무만 보여 주는 축약 모델이다. 실제 영수증의 대상·산출물 해시·시각·만료·승인자 필드는 개념 계약이며 현재 UI가 생성하거나 검증하지 않는다. 이 필드가 필요한 운영 시스템은 서버 측 저장소와 만료 검사를 별도로 구현해야 한다.

책 루트에서 npm run buildnpm start를 실행하고 http://127.0.0.1:4183/을 연다. 행동을 ‘웹에 공개’로 바꾸면 승인 체크 전에는 approve, 체크 후에는 allow가 나와야 한다. 등록되지 않은 transfer는 UI 메뉴에는 없고 자동 테스트가 허용 목록 우회를 검사하기 위해 쓰는 공격 입력이다. 승인 표시가 있어도 npm test에서 거부되는지 확인한다.

실패 복구

승인 뒤 본문이나 수신자가 바뀌면 기존 승인을 폐기한다. 발송 요청 후 응답이 끊기면 무작정 재발송하지 않고 공급자의 처리 기록을 먼저 조회한다.