(2/2) 조건부 쓰기(If-Match/ETag)로 경쟁 구간까지 닫기 — S3 원자적 버전 가드
1편의 rev 버전 가드에 남는 마지막 빈틈 — GET 으로 서버 rev 를 읽고 PUT 하기까지의 아주 짧은 경쟁 구간 — 을 S3 조건부 쓰기(If-Match/ETag)로 닫습니다. 프리컨디션을 PUT 자체에 실어 저장 계층이 원자적으로 판정하게 하면, 두 사람이 정확히 겹쳐도...
1편의 rev 버전 가드에 남는 마지막 빈틈 — GET 으로 서버 rev 를 읽고 PUT 하기까지의 아주 짧은 경쟁 구간 — 을 S3 조건부 쓰기(If-Match/ETag)로 닫습니다. 프리컨디션을 PUT 자체에 실어 저장 계층이 원자적으로 판정하게 하면, 두 사람이 정확히 겹쳐도...
브라우저에서 편집한 결과를 공용 data.json 하나에 직접 PUT 하는 대시보드에서, 여러 명이 동시에 저장할 때 뒷사람이 앞사람 변경을 통째로 덮어쓰는 lost update 를 막는 법. 락 없이 rev 정수 카운터 + 저장 직전 read-before-write 비교로 충돌을...
온프레미스 서버에 Docker 로 띄운 n8n 을 http://192.168.x.x:5678 대신 https://n8n.example.com 으로 접속하게 만드는 과정. AWS Route 53 에 A 레코드를 만들어 이름을 붙이고, Caddy 리버스 프록시로 HTTPS 인증서를 자...
1편의 클라이언트 조건부 쓰기(If-Match)만으론 부족한 지점 — 신뢰·검증·단조 버전 — 을 함수 하나짜리 서버리스 ‘버전 가드’로 메꿉니다. 읽기는 정적 그대로 두고 쓰기만 가드를 통과시켜, base 버전을 compare-and-swap 으로 원자 교체하고 충돌은 409 로...
S3 에 올린 JSON 을 설정 파일로 쓰고 정적 HTML 이 그걸 읽어 화면을 그리는 구조에서, 어떤 사람은 ‘수정됐다’ 하고 어떤 사람은 ‘안 보인다’ 하는 문제. 원인은 두 가지(캐시·덮어쓰기 유실)로 갈립니다. 브라우저·CloudFront 캐시를 포인터 파일로 잡고, If-...
worktree·PR·rebase 명령을 하나도 외우지 않고, 자연어 지시만으로 병렬 세션 작업과 통합을 Claude 에게 통째로 맡기는 법. git 초보가 알아야 할 최소 멘탈 모델 3가지, 안전하게 위임하는 습관, 막혔을 때 되돌리는 법까지 정리한 시리즈 완결편입니다.