전체 글 31

브라우저 자동화에서 값을 넣어도 버튼이 안 켜지는 이유

브라우저 자동화로 입력창에 값을 채우는 건 쉬워 보입니다. 요소의 value에 문자열을 넣고 input 이벤트를 발생시키면 끝일 것 같습니다. 그런데 저장 버튼이 비활성 상태 그대로거나, 저장은 됐는데 값이 빈 채로 남는 경우가 있습니다. 이 글은 왜 그런지, 어떻게 우회하는지에 대한 기록입니다.증상: 값은 보이는데 상태는 비어 있다입력창에 분명히 글자가 들어가 있습니다. 화면으로 보면 완벽합니다. 그런데 저장 버튼이 여전히 비활성입니다. 억지로 저장을 눌러도 빈 값으로 저장됩니다. 값이 화면에는 있는데 실제로는 없는, 이상한 상태입니다.el.value = 'text';el.dispatchEvent(new Event('input', {bubbles:true}));screen : has textbutton..

예약을 발행처에 맡겼을 때 생기는 상태 불일치와 동기화

워드프레스 자체 예약 기능에 발행을 맡기면 편합니다. 상태를 예약으로 보내면 내 서버가 꺼져 있어도 그 시각에 발행됩니다. 그런데 편한 만큼 한 가지 사각지대가 생깁니다. 예약을 걸어둔 내 관리 시스템은 발행이 실제로 일어났는지 알 방법이 없다는 점입니다. 이 글은 그 상태 불일치를 어떻게 맞췄는지에 대한 기록입니다.증상: 발행됐는데 대시보드는 예약 중발행 시각이 지났고 워드프레스에서는 글이 공개됐는데, 내 대시보드에는 여전히 예약 중으로 남아 있었습니다. 발행 시각이 지난 예약을 지연으로 표시하는 로직 때문에, 정상 발행된 글이 사고처럼 빨간 경고로 떴습니다. 실제로는 아무 문제가 없었는데도요.wordpress status: publish (published)dashboard status: ..

서버 설정을 못 건드릴 때 헤더 유실 지점 찾기 (진단 파일)

앞 글에서 워드프레스 REST 401의 원인이 Authorization 헤더 유실이라는 걸 확인했습니다. 그런데 헤더가 정확히 어디서 사라지는지 모르면 고칠 지점을 못 정합니다. 프록시일 수도, 웹서버일 수도, PHP 처리 단계일 수도 있습니다. 이 글은 서버 구성을 마음대로 못 바꾸는 상황에서 헤더 유실 지점을 좁히는 방법입니다.왜 지점부터 찾아야 하나헤더가 사라지는 경로는 여러 겹입니다. 브라우저에서 나간 요청이 CDN이나 리버스 프록시를 거치고, 웹서버로 들어와, PHP로 전달됩니다. 각 구간에서 Authorization 헤더가 떨어질 수 있습니다. 어림짐작으로 설정을 이것저것 바꾸면 시간만 버리고, 운이 나쁘면 멀쩡하던 다른 것을 망가뜨립니다. 그래서 고치기 전에 어디서 사라지는지부터 확정해야 합..