Archives
All the articles I've archived.
-
운영 변경을 넣었다 뺐다 하지 않도록 결정 대조를 세 층의 장치로 나눠 걸었다
하루 전 정한 고정 IP 결정을 다른 변경이 대조 없이 되돌렸다. 마지막 결정을 찾는 절차를 진행판 검사기·메시지 훅·명령 훅 세 층으로 나눴다.
-
PHP 7 에서 8.5 로 올리기 전에 같은 입력을 두 판에 보내 동작 차이를 다섯 종으로 좁혔다
지원이 끝난 PHP 7.0·7.2 서버 두 벌을 8.5 로 올리기 전에 같은 요청을 두 판에 보내 대조했다. 범위를 줄인 결정과 전환·되돌림 설계를 적는다.
-
메모리와 규칙의 정본을 파일에서 아틀라스로 옮기자 여러 머신의 세션이 같은 판을 읽게 됐다
아틀라스를 검색 저장소에서 메모리·규칙의 정본으로 넓혔다. 워크스페이스·머신 12쌍을 옮긴 결과와, 남은 동결 사본·잘못 잡힌 저장소 같은 대가를 적는다.
-
세 나라에 흩어진 인프라를 국내로 모을지 재 보니 비용은 오르고 지연은 줄었다
넘겨받은 GCP 인프라가 미국·국내·아시아 다른 나라 리전에 퍼져 있었다. 왜 그런지 기록을 찾고, 국내로 모을 때의 비용·지연과 옮길 수 없는 자원을 실측했다.
-
공유 기억의 토큰 사용량은 쓰기에서 LLM 호출을 없애고 읽기에서 주입 줄 수를 줄여 낮췄다
지식 그래프에서 원문 저장소로 바꾼 뒤 토큰이 어디서 줄었는지 쓰기와 읽기로 나눠 쟀다. 잰 것과 못 잰 것, 월 총량을 못 낸 이유까지 그대로 적는다.
-
96만 통의 이전 통지 메일은 보내기 전에 받는 메일함이 있는지부터 확인했다
개인정보 이전 통지를 Amazon SES 로 보내다 첫 1,000통의 반송이 19% 였다. 표본 편향을 가르고, 메일함 확인 결과를 되돌릴 수 있게 표시했다.
-
공유 기억이 무엇을 꺼낼지는 사람 프롬프트 155개로 재서 순위식과 거리 상한을 골랐다
아틀라스가 세션에 넣을 기록을 고르는 순위식 다섯 개와 거리 상한을 실제 프롬프트 155개로 시험했다. 고른 식과 버린 LLM 보조, 줄어든 주입량을 적는다.
-
공유 기억 저장소는 쓰는 길에서 LLM 을 빼고 수집 1분·업로드 5분 두 단계로 돌게 했다
여러 머신의 AI 세션 기록을 한 MariaDB 에 모으는 아틀라스 구조를 정했다. 쓰기에서 LLM 을 뺀 이유와 수집·업로드·주입 세 경로를 적는다.
-
AI 세션들의 공유 기억을 지식 그래프에서 원문 저장소로 바꾸기로 했다
AI 에이전트 세션들이 함께 쓰던 graphiti 지식 그래프를 끄고 원문과 임베딩만 담는 저장소로 가기로 했다. 결정의 근거와 대안, 버린 것을 적는다.
-
넘겨받은 고객 명단에는 광고 수신 동의가 따라오지 않는다는 것에서 설계를 시작했다
영업 양수로 받은 고객에게 광고를 보내려면 동의를 새로 받아야 한다. 정보통신망법 기준 여섯 가지를 원문으로 확인하고, 저장 위치와 발송 필터를 다시 설계했다.
-
테스트 서버는 운영에 닿을 수 없다는 것을 차단 장치 8항으로 증명한 뒤에야 열었다
시험할 곳이 없던 시스템에 GKE 테스트 서버를 새로 세웠다. 운영을 못 부르게 하는 차단 장치 8항을 대조군과 함께 통과시킨 것을 개방 조건으로 정했다.
-
새 개발 리더에게 넘기는 인계는 그 사람이 정할 것부터 쓰고, 업무 보드는 진척률이 도는 단위로 바꿨다
새 개발 리더에게 잇는 인계 문서의 순서를 정하고, Notion 업무 보드를 진척률이 실제로 계산되는 작업 단위로 바꿨다. 두 결정의 기준을 적는다.
-
관계사 Workspace 에 묶인 메일 도메인을 떼어 오며 메일 공백을 Email Routing 으로 메웠다
관계사 Workspace 의 메일 도메인을 떼어 오며 분리 방식을 비교하고, 옮기는 두 시간의 메일은 Cloudflare Email Routing 으로 받았다.
-
인수 과업의 완료는 증빙이 있는 것만 적고, 남은 것은 성격별로 다섯 갈래로 나눠 넘겼다
시스템 이관 계약의 12개 과업을 마감하며 완료를 무엇으로 판정할지 정했다. 증빙만 적는 기재 원칙과, 남은 일을 다섯 갈래로 나눠 인계한 방식을 적는다.
-
인증 없이 열린 API 와 데이터베이스 규칙을 한 번에 닫지 않고 좁은 판부터 닫았다
인증 없이 열린 API 와 RTDB 규칙을 닫으며 호출처부터 셌다. 좁은 판·모의 검증 대조군·되읽기 해시·관측 창으로 나눠 배포한 방법을 적는다.
-
dev 환경을 「쓸 때만 띄우는 구조」로 바꾸자는 안은 실측해 보니 끌 것이 없어 하지 않기로 했다
dev 환경을 쓸 때만 띄우는 구조로 바꾸는 절감안을 검토했다. 실측해 보니 끌 컴퓨트가 없어 하지 않기로 한 결정과 못 잰 청구액을 적는다.
-
백업이 없던 데이터베이스에는 수명 정책보다 백업을 먼저 켜, 마지막 복구 지점을 지켰다
넘겨받은 RTDB·Firestore 에 되돌릴 지점이 없었다. 백업을 켜는 순서를 바꾼 이유와, PITR 이 저장 비용을 정확히 두 배로 만든다는 실측을 적는다.
-
130만 명에게 보낼 법정 통지 메일은 발송 시스템을 새로 짓지 않고 기존 큐에 채널 하나를 붙였다
영업 양수에 따른 개인정보 이전 통지를 대량 메일로 보내야 했다. 기존 큐에 이메일 채널을 붙인 판단과 대상·원천·법적 근거를 정한 과정을 적는다.
-
결제를 주문 시점으로 당기며 빌링키는 버리지 않고 남겨, 결제 시점만 옮기는 쪽을 택했다
중량 후결제를 주문 시점 승인으로 바꾸며 빌링키는 유지하고 결제 시점만 당겼다. 재청구·취소·판정·게이트웨이 규격에서 깨진 전제와 고친 방법을 적는다.
-
브라우저 코드에 박힌 Slack 토큰은 바꿔 끼우지 않고 경유지를 세워 없애기로 했다
백오피스의 Slack 토큰이 공개 응답에 실려 있었다. 노출 규모를 재 revoke 순서를 다시 정하고, 토큰 교체 대신 알림 릴레이를 세운 설계를 적는다.
-
AI 에이전트 세션을 기능이 아니라 배포 경계로 나눠 넘겨받은 시스템을 운영했다
여러 AI 에이전트 세션으로 운영하며 세션을 기능별에서 배포 경계별로 다시 나눴다. 일곱 축의 기준과 맥락 이관 규약, 축으로 배분하는 원칙을 적는다.
-
넘겨받을 시스템의 범위를 정책을 기다리는 과업과 기다리지 않는 과업으로 갈랐다
노후한 커머스 시스템을 넘겨받는 범위를 과업 네 개로 나눴다. 정책 확정에 걸린 과업을 떼어 낸 기준과 책임 경계, 3개월 재협상 구조를 적는다.
-
GitHub 조직을 넘겨받는 일은 owner 를 바꾸는 것으로 끝나지 않았다
GitHub 조직을 실측하니 Enterprise 층, Machine User 의존, 개인 휴대폰 2FA, 보이지 않는 저장소가 owner 교체를 막고 있었다.
-
넘겨받을 코드베이스를 세 축으로 판정하고, 운영 가능 축의 Red 는 거절 대신 계약 조건 넷으로 바꿨다
넘겨받을 커머스 코드베이스를 구성 완비·코드 실재·운영 가능 세 축으로 판정했다. 운영 가능 축이 Red 가 된 근거와 계약 조건으로 바꾼 권고를 적는다.
-
클라우드 청구 계정의 통제권은 사람이 떠나도 남는 계정에 두었다
GCP 청구를 리셀러 통합 빌링으로 옮기며 새 Billing Account 의 관리자 계정부터 정했다. 개인 계정을 피한 이유와 보내기 전 확인을 적는다.
-
결제대행 계약을 넘길 때 정기결제 키는 승계되지 않는다는 것을 기본값으로 잡았다
사업권 양수도로 결제대행 3사의 가맹 계약을 넘기며 정기결제 빌링키 승계를 질의했다. 회신 전에 승계 불가를 기본값으로 잡은 이유와 그 대가를 적는다.
-
넘겨받을 클라우드 청구는 착수 첫날 기존 리셀러의 통합 빌링에 묶기로 하고, 비용 화면은 계정 연결 단위로 갈랐다
착수 첫날 넘겨받을 GCP 청구를 기존 AWS 리셀러의 통합 빌링에 묶기로 했다. 그 이유와 비용 화면을 가른 단위를 적는다.
-
넘겨받기 전 실사는 채점표가 아니라 받아야 할 것의 청구 목록으로 끝났다
커머스 시스템을 넘겨받기 전 실사를 위해 청구 자료·판정표·인터뷰 순서를 만들었다. 결과가 채점이 아니라 인계 청구 목록이 된 과정을 적는다.
-
조건이 겹쳐서 진단이 어려웠다
(수정됨)세 조건이 겹칠 때만 나던 오류를 인위적으로 재현하고, 조건을 하나씩 빼 보며 고칠 자리를 정한 과정을 정리한다.
-
중지했는데 팔린다
(수정됨)멱등하지 않은 재시도가 우리 DB에 흔적 없는 외부 상품을 만들어 낸 구조와, 재시도가 안전하려면 무엇이 필요한지 정리한다.
-
적히지 않은 전제 위의 관찰
(수정됨)로그 레벨 한 단계가 관찰의 절반을 지운다는 것을 대조군으로 확인하고, 관찰 결과에 전제를 함께 적기로 한 과정을 정리한다.
-
빌드가 돈다고 있는 것은 아닌 키
(수정됨)CI가 서명 빌드를 계속 성공시키는데도 조직이 원본 키를 갖고 있지 않았던 건에서, 동작 확인과 보유 확인을 가르는 방법을 정리한다.
-
정답이 하나인 일은 코드가 한다
(수정됨)언어 모델에 수치를 맡겼을 때 나온 여섯 종류의 결함을 전수로 확인하고, 코드와 모델의 경계를 판정 가능성으로 그은 근거를 정리한다.
-
규칙에 예외가 다섯 있었다
(수정됨)스키마 규칙의 예외를 찾아 정리하다가 예외 목록을 조건으로 바꾸고, 규칙이 아예 없는 자리까지 드러난 과정을 정리한다.
-
그 방식이면 멈추는 시간이 없었다
(수정됨)수백만 건 테이블에 컬럼을 추가하면서 무엇이 잠기고 무엇이 안 잠기는지 확인하고, 사본에서 시간과 공간을 미리 잰 과정을 정리한다.
-
부분 업데이트라고 믿은 PUT
(수정됨)스펙상 경로만 다른 두 API 버전이 부분 갱신과 전체 교체로 갈렸던 건과, 엔드포인트를 갈아탈 때 확인할 항목을 정리한다.
-
반드시 보존하라던 12기가의 실체
(수정됨)반드시 보존이라는 라벨이 붙은 12기가를 열어 20메가로 줄이면서, 라벨과 사실의 거리와 0건 검사의 유효성 확인을 정리한다.
-
로그가 없을 때의 시간 근거
(수정됨)감사 로그가 없는 상태에서 트랜잭션 경계로 생성 실패와 생성 후 유실을 가른 과정과, 확정 불가를 기록하는 방법을 정리한다.
-
건너뛸 줄 알았던 자리가 내리고 있었다
(수정됨)부적격 처리가 건너뛰기가 아니라 연동 해제였던 건과, 0건인 필터를 넣을지 가르는 기준을 정리한다.
-
할 일이 없으면 침묵하는 감시
(수정됨)처리 대상이 0건이면 지표를 하나도 내보내지 않는 계측을 리뷰하면서, 하트비트가 성립하는 두 성질과 감시 키를 어디서 얻어야 하는지 정리한다.
-
0건이 증명하는 것은 무엇인가
(수정됨)그 상태값이 0건이니 안전하다는 근거가 왜 틀렸는지 코드로 확인하고, 0건이 실제로 보증하는 범위와 시점 의존적인 모수 문제를 정리한다.
-
같은 값을 바꾸는 두 경로, 결과는 다르다
(수정됨)화면에서 고치는 것과 DB에서 직접 고치는 것이 편의의 차이가 아니라 부수효과의 차이였다는 것을, 정식 경로의 코드를 읽고 확인한 과정을 정리한다.
-
결과를 만든 확인 행위
(수정됨)파일이 있는지 확인하려고 호출한 주소가 없으면 만들어 주는 경로였던 건을 계기로, 조회가 대상을 바꾸는 경우들과 확인 전에 물어야 할 것을 정리한다.
-
거의 안 여는 자리가 있었다
(수정됨)코드 정리 순서를 정하려고 파일별로 여는 빈도와 참조 횟수를 세어 보고, 자주 여는 곳과 안 여는 곳을 다르게 다룬 과정을 정리한다.
-
스스로를 봉인하는 되먹임 없는 경로
(수정됨)대량 전환 작업에서 외부 경유와 DB 직접 수정 중 무엇을 고를지 판단하면서, 빠른 경로가 함께 없애는 검증 채널을 어떻게 계산했는지 정리한다.
-
찾다가 관련 API 둘을 더 발견했다
(수정됨)필요한 API 하나를 찾다가 주변의 둘을 발견하고 셋을 성격에 맞게 나눠 쓴 과정과, 규격 목록을 주기적으로 훑어 새 기능을 놓치지 않는 방법을 정리한다.
-
다른 종류를 같게 다룬 처리
(수정됨)성격이 다른 항목을 한 목록에 두고 우선순위를 정하려다 막힌 뒤, 종류를 나누고 각각 다른 기준과 시간 배분을 적용한 과정을 정리한다.
-
우회할 수 있는 차단
(수정됨)도구 이름으로 건 차단이 다른 도구로 그대로 통과한 사례들을 모아, 조건을 대상에 걸어야 하는 이유와 정당한 우회를 다루는 방법을 정리한다.
-
기록해 뒀는데 왜 또 걸렸나
(수정됨)같은 함정을 십여 번 기록하고도 매번 다시 걸린 이유를 분석해, 기록이 재발을 막지 못하는 조건과 반복 횟수에 따른 대응을 정리한다.
-
15만 건을 막은 조건 하나
(수정됨)부정으로 쓴 상태 조건이 일어나지 않는 전이를 전제하면서 15만 건의 동기화를 영구히 막았던 건과, 상태 조건을 쓸 때 확인할 항목을 정리한다.
-
근거 네 가지가 같은 것을 가리켰다
(수정됨)로그와 시점과 코드와 재현이라는 네 종류의 근거가 각각 무엇을 말하는지 나누고, 어긋나는 근거 하나가 가장 중요한 신호가 되는 이유를 정리한다.
-
데이터를 숨긴 짧은 조회 최적화
(수정됨)커버리지가 100%인데 결과가 빠져 있던 건에서, 조회 단계의 절단과 파서가 안 보는 구조가 오류 없이 부분 결과를 만드는 방식을 정리한다.
-
해결 방법이 셋이라 골라야 했다
(수정됨)외부 API 실패에 대응하는 방법이 셋 나왔을 때 무엇을 기준으로 고를지 정하고, 결국 선택이 아니라 순서 문제였다는 것을 확인한 과정을 정리한다.
-
경보가 울리지 않는 실패
(수정됨)몇 년간 수백 회 반복된 실패가 화면에는 정상으로만 보였던 건을 계기로, 실패가 신호를 내지 않는 구조들과 감시 대상을 무엇으로 잡아야 하는지 정리한다.
-
규칙이 적용될 범위를 좁혔다
(수정됨)한 프로젝트에서 나온 규칙을 전부에 적용했다가 안 맞는 곳을 만나면서, 규칙의 전제와 적용 범위를 함께 적는 방식으로 바꾼 과정을 정리한다.
-
vee-validate 4 + zod: 로그인 버튼이 아무 반응 없을 때
vee-validate 4와 zod를 함께 사용할 때 로그인 버튼이 아무 반응 없이 실패하는 문제의 원인과 해결 방법을 정리한다. boolean 필드의 initialValues 함정이다.
-
Android SMS 릴레이 앱에서 MMS를 SMS처럼 PDU 파싱하면 생기는 문제
Android에서 MMS_RECEIVED intent를 등록하고 SMS와 동일한 PDU 파싱 로직을 적용하면 silent data corruption이 발생한다. 올바른 MMS 수신 방법을 정리한다.
-
그 가드가 실제로 막는 것
(수정됨)개인 대화에서만 되게 막았다고 생각한 운영자 전용 명령이 공개 그룹에서 그대로 돌았던 건을 통해, 가드가 실제로 무엇을 거르는지 확인하는 방법을 정리한다.
-
LiteLLM Proxy 폴백 구조를 4단에서 2단으로 줄인 이유
LiteLLM Proxy의 모델 폴백 구조를 4단 캐스케이드에서 2단으로 단순화하고, N개 API 키의 RPM/RPD를 균형 분배한 과정을 정리한다.
-
NHN KCP 본인인증을 Laravel에 통합한 구조
NHN KCP 휴대폰 본인인증을 Laravel 프로젝트에 통합한 아키텍처를 정리한다. 요청-결과 분리 패턴과 CI/DI 처리 방식을 다룬다.
-
App Store에서 앱이 삭제됐을 때 — 실전 대응 가이드
App Store에서 앱이 제거되었다는 알림을 받았을 때의 원인 파악, 대응 절차, 복원 방법을 정리한다.
-
Linux 서버 4대의 환경을 통일한 과정
아키텍처가 다른 Linux 서버 4대(x86, ARM)의 사용자, SSH, Docker 경로, 홈 디렉토리를 통일한 과정을 정리한다.
-
Hello World
isdnetworks 개발 블로그의 첫 번째 글이다.
-
PHP-FPM Docker 컨테이너가 시작 직후 종료를 반복하는 문제
PHP-FPM Docker 컨테이너가 'ready to handle connections' 출력 후 exit code 0으로 즉시 종료되며 Restarting 상태를 반복하는 문제의 원인과 해결 방법을 정리한다.
-
PHP 7.2 범용 Docker 이미지에 어떤 PECL 확장을 넣을 것인가
WordPress, Laravel, CI, 쇼핑몰, 거래소, AI 서비스를 하나의 PHP 7.2 Docker 이미지로 지원하기 위한 PECL 확장 선정 과정을 정리한다.
-
Claude Code guard hook이 우회되는 경우와 대응
Claude Code의 PreToolUse hook으로 파일 수정을 차단했지만, Write 도구로 우회되는 문제와 에이전트 자동화에서 발생하는 오분류 문제를 다룬다.
-
13개 Docker 프로젝트 구조를 표준화한 과정
모노레포 내 13개 Docker wrapper 프로젝트의 구조를 7단계에 걸쳐 표준화한 과정을 정리한다. .gitattributes, .gitignore, build.sh, deploy 스크립트 통일 사례다.
-
Docker host 모드에서 VPN 트래픽이 전달되지 않는 문제 해결
Docker host 모드로 IPsec VPN 서버를 운영할 때 연결은 되지만 트래픽이 전달되지 않는 문제의 원인과 해결 과정을 정리한다.
-
범위를 넓히는 조용한 실패
(수정됨)배열이 비었는데 루프가 한 번 돌면서 빈 값이 파괴적 명령의 인자가 된 건을 분석하고, 실패가 오류로 드러나지 않고 다음 단계로 흘러가는 구조를 정리한다.
-
통과했지만 아무것도 검증 못 한 테스트
(수정됨)부수 효과를 막으려다 검증 대상까지 가짜로 대체한 테스트와, 완료가 아니라 예정을 세고 있던 검증 패턴을 나란히 놓고 통과의 신뢰 조건을 정리한다.
-
오류의 시작 시각과 멈춘 시각
(수정됨)예외는 하루 넘게 전부터 있었는데 처리가 멈춘 것은 다음 날 오후였던 건에서, 원인 시각과 장애 시각을 따로 재야 전환점이 보인다는 것을 정리한다.
-
컴퓨터과학과 중퇴 개발자의 15년
컴퓨터과학과를 중퇴하고 개발자로 15년을 보낸 경험을 돌아본다. 학위 없이 실력으로 인정받기, 프리랜서와 정규직 사이의 선택, 작은 회사에서의 CTO 역할에 대한 회고다.
-
BigQuery Legacy SQL 종료 — Standard SQL 전환 가이드
Google Cloud BigQuery에서 Legacy SQL 지원이 종료된다. Legacy SQL과 Standard SQL의 차이점과 마이그레이션 방법을 정리한다.
-
같은 블록 안의 확인은 확인이 아니다
(수정됨)덮기 전에 확인한다는 규칙을 알고도 어긴 건을 분석해, 규칙이 문면으로 지켜지고 실행 패턴에서 무력화되는 구조와 그것을 막는 순서 설계를 정리한다.
-
AI가 화이트칼라를 대체할 때 — Citrini Research 분석 리뷰
Citrini Research의 "The 2028 Global Intelligence Crisis" 보고서를 개발자 관점에서 리뷰한다. Ghost GDP, SaaS 붕괴, 에이전트 간 거래 등 AI가 화이트칼라 노동 시장에 미칠 충격을 분석한다.
-
바꿔도 안 바뀌던 설정
(수정됨)설정 파일을 바꾸고 캐시를 다시 만들고 값 조회까지 했는데도 옛 경로로 나가던 건에서, 확인을 바꾼 자리가 아니라 쓰이는 자리에서 해야 하는 이유를 정리한다.
-
Windows IKEv2 VPN 클라이언트 설정과 Policy Match Error 해결
Windows에서 IKEv2 VPN 클라이언트를 설정하는 과정과, 연결 시 발생하는 Policy Match Error의 원인 및 해결 방법을 정리한다.
-
AWS 보안 긴급점검 세미나 — 핵심 정리
AWS 보안 긴급점검 세미나에 내용을 정리한다. IAM, 네트워크, 데이터 보호, 인시던트 대응의 핵심 체크리스트를 다룬다.
-
마이그레이션 뒤의 일괄 갱신
(수정됨)이관 직후에 난 오류를 이관 탓으로 보고 조사를 시작했다가, 생성 시각과 갱신 시각의 대조로 원인이 그 뒤의 일괄 갱신이라는 것을 확정한 과정을 정리한다.
-
RK3588 NPU로 로컬 LLM 서버를 포기한 이유
RK3588 NPU(RKLLM)를 활용한 로컬 LLM 서버 구축 시도와 포기까지의 과정, 그리고 클라우드 API 전환 결정을 정리한다.
-
Claude Code 프로젝트 설정 구조 — 실전 사례
Claude Code의 .claude 폴더를 활용한 프로젝트 설정 구조를 실전 사례로 소개한다. CLAUDE.md, rules, hooks, context, skills, agents 구성을 다룬다.
-
되돌리니 멎었다, 그런데 원인은 모른다
(수정됨)되돌려서 증상이 멎었다는 사실이 원인을 확정해 주지 않는다는 것을, 기능 세 개가 묶인 배포를 되돌린 건에서 정리한다.
-
Google Cloud OpenTelemetry 자동 활성화 — 영향과 대응
Google Cloud에서 OpenTelemetry 통합을 자동 활성화하겠다는 안내를 받았을 때, 영향 범위를 확인하고 대응하는 방법을 정리한다.
-
공짜가 아닌 읽기 전용
(수정됨)조회만 했는데 요금이 발생하고 DB가 멈추고 값이 로그에 남은 사례들을 모아, 읽기 작업을 시작하기 전에 확인할 항목을 정리한다.
-
카페24 앱스토어 정책 변경 대응 — 제재 강화와 API 버전 업그레이드
카페24 앱스토어의 운영정책 위반 제재 강화, PII 보호 요구, API 버전 업그레이드에 대응하는 방법을 정리한다.
-
Temu 파트너 플랫폼 API 연동기 — 20건의 이메일 스레드가 말해주는 것
Temu 파트너 플랫폼 API 연동 과정에서 겪은 온보딩, 인증, Taxonomy 검증, 기술 이슈를 정리한다. 드롭쉬핑 플랫폼과의 연동 사례다.
-
한 건이 실패하면 배치 전체가 죽는 구조
(수정됨)백 건 가까이 처리하는 배치가 한 건의 예외로 멈춘 건을 계기로, 실패를 항목 단위로 격리하는 방식과 격리하면 안 되는 자리를 가르는 기준을 정리한다.
-
읽은 코드와 도는 코드
(수정됨)코드에서 찾은 결함을 운영 상태로 보고할 뻔한 건을 계기로, 읽은 코드와 실제로 도는 코드가 갈리는 경우들과 단정하기 전에 확인할 항목을 정리한다.
-
Gemini API 모델 마이그레이션 — 반복되는 Deprecation 알림 대응
Google AI Studio에서 Gemini API 모델 마이그레이션 요구 알림이 반복될 때, 체계적으로 대응하는 방법을 정리한다.
-
Go + Python 혼합 마이크로서비스에서 장애 격리 패턴 적용기
이커머스 자동화 플랫폼의 마이크로서비스에 Circuit Breaker, Bulkhead, Dead Letter Queue 등 장애 격리 패턴을 적용한 실전 경험을 공유한다.
-
드롭쉬핑 플랫폼을 마이크로서비스로 설계한 과정
이커머스 자동화 플랫폼을 8개의 마이크로서비스로 분해하고, Go와 Python을 혼합 적용한 아키텍처 설계 과정을 정리한다.
-
도매 API 연동 시 Rate Limit 분산 전략
도매 API의 분당/일일 요청 제한을 효율적으로 관리하기 위한 분산 전략과 재시도 패턴을 정리한다.
-
인덱스가 아니라 N+1
(수정됨)느린 목록 화면의 원인을 인덱스로 짐작하고 있다가 한 페이지에 나가는 쿼리 수를 세어 방향을 바꾼 과정과, 개선 순서를 비중으로 정한 근거를 정리한다.
-
백지에서 시작한 새 레코드
(수정됨)교환을 반품으로 수기 전환한 건에서 수거 정보가 유실돼 실물과 시스템 상태가 어긋난 사례를 추적하고, 전환의 성공과 처리의 완료를 가르는 확인 지점을 정리한다.
-
레거시 PHP 프로젝트를 인수받으면 가장 먼저 하는 것들
CodeIgniter 1.x~3.x, Laravel 5.x 시대의 레거시 PHP 프로젝트를 인수받았을 때 가장 먼저 확인하고 정리해야 할 항목들을 실무 경험 기반으로 정리한다.
-
AWS RDS 디스크 풀 장애 대응 — 연속 ALARM에서 배운 것
AWS RDS에서 disk_running_out ALARM이 연속 5회 발생한 장애 상황의 원인 분석, 즉시 대응, 재발 방지 조치를 정리한다.
-
GitHub 2FA 잠금 — 복구 절차 가이드
GitHub 2단계 인증(2FA) 잠금 상태에서 계정을 복구하는 절차와, 재발 방지를 위한 설정을 정리한다.
-
고치다 발견한 다른 결함
(수정됨)조사 도중에 발견한 별개의 문제를 지금 고칠지 적어 둘지 가르는 기준과, 그렇게 쌓인 목록을 실제로 처리되게 만드는 방법을 정리한다.
-
프록시 주소는 레코드가 있어야 산다
(수정됨)저장소에 파일이 있는데도 외부에서 이미지가 깨진 건을 추적하면서, 프록시 주소가 DB 행에 의존한다는 사실과 옛 레코드 삭제 작업이 갖는 전제 조건을 정리한다.
-
AWS RDS MySQL 8.0 표준 지원 종료 — 마이그레이션 가이드
AWS RDS MySQL 8.0이 2026년 7월 31일에 표준 지원 종료된다. 마이그레이션 옵션, 호환성 확인, 실행 계획을 정리한다.
-
마켓플레이스 계정정보 외부 노출 알림 대응
마켓플레이스에서 계정정보 외부 노출 관련 안내를 받았을 때의 대응 절차와 확인 사항을 정리한다.
-
iOS 앱 심사 리젝 대응 — 실전 사례
iOS 앱 심사에서 리젝을 받고 수정 후 재제출해 통과하기까지의 과정을 실전 사례로 정리한다.
-
중지된 채로 있지 않는 중지
(수정됨)중지한 상품이 마켓에서 되살아나는 경로 셋을 시계열 대조로 찾고, 감사 기준을 상태 하나에서 3중 대조로 바꾼 과정이다.
-
접근 경로의 제약을 적어 둔다
(수정됨)간헐 타임아웃과 다중 인용 오염을 원인 규명 대신 우회로 처리하고, 그 제약과 미완료 규모를 기록으로 남긴 과정이다.
-
Docker Hardened Images — 도입 검토와 판단 기준
Docker Hub의 Hardened Images가 무엇인지, 기존 Official Images와 어떻게 다른지, 도입 여부를 판단하는 기준을 정리한다.
-
GitHub Actions 과금 체계 변경 — 무엇이 달라지나
GitHub Actions의 과금 체계 변경 내용과 기존 워크플로우에 미치는 영향, 비용 절감 방법을 정리한다.
-
삼성 갤럭시 숨겨진 시스템 메뉴 접근법
삼성 갤럭시 기기의 숨겨진 시스템 메뉴에 ADB를 통해 접근하는 방법을 정리한다. HiddenMenu, ServiceMode, Band 설정 등을 다룬다.
-
주석이 왜 뺐는지 적어 뒀다
(수정됨)화면에 항목이 없다는 문의를 의도적 생략을 적어 둔 주석 하나로 몇 분 만에 판정하고, 안내와 확장 비용까지 함께 답한 과정이다.
-
NHN KCP 표준인증창 보안강화 — 모바일 PU 방식 변경 대응
NHN KCP 휴대폰 본인확인 서비스의 표준인증창 보안강화에 따른 가맹점 조치사항과 모바일 PU 방식 변경 대응을 정리한다.
-
반쪽만 꺼진 가드
(수정됨)수정 잠금 검사가 API 컨트롤러에서만 주석 처리돼 DB는 바뀌고 전송은 막히는 반쪽 상태를 사용처 전수로 찾고, 확인한 사실과 추정을 나눠 적은 과정이다.
-
틀려 있던 주석
(수정됨)주석을 믿고 동작을 잘못 이해한 뒤 표본으로 오류율을 재고, 없앨 주석과 남길 주석을 가른 과정이다.
-
축이 다른 것과 제약을 깨는 것
(수정됨)제약 위반으로 보이던 것이 축이 다른 것이었고, 끊어진 참조는 원본과 대조해 누락인지 원본 결함인지 먼저 가른 과정이다.
-
두 갈래로 갈린 같은 관용구
(수정됨)같은 일을 하는 두 방식이 섞인 이유를 시기 차이에서 찾고, 통일할 값이 있는 것만 골라 점진적으로 옮긴 과정이다.
-
조용함과 깨짐 사이
(수정됨)대량 재전송을 검토하다 실제 파손 규모를 먼저 재서 1퍼센트에도 못 미침을 확인하고, 복구 대신 로그 수정이 진짜 산출물임을 정리한다.
-
안 쓴다를 확인하는 두 축
(수정됨)좁은 범위 검색의 0건을 안 쓴다로 읽지 않고 호출부와 대입 지점 두 축으로 확인해, 운영 DB 조작을 하지 않기로 한 근거를 세운 과정이다.
-
정리가 전송 성공에 매달려 있다
(수정됨)정리하려는 대상이라서 정리가 안 되는 순환을 구 경로 코드에서 확인하고, 구경로와 신경로의 기능 비대칭을 정리한다.
-
Google Play 앱 정책 위반 알림 대응 — 한꺼번에 8건 받았을 때
Google Play에서 앱 정책 위반 알림을 한꺼번에 여러 건 받았을 때의 확인 절차와 대응 방법을 정리한다.
-
인프라 탓이 아니었던 지연
(수정됨)배치가 느린 원인을 인프라에서 찾다가 계측 로그로 서버 시간을 분리해 구조적 특성임을 확인하고, 고칠 수 있지만 안 한다고 적은 과정이다.
-
증거가 되는 다이제스트
(수정됨)직접 호출 검증이 막힌 내부 전용 서비스에서 이미지 다이제스트 3자 대조로 배포를 증명하고, 그 검증의 한계까지 명시한 과정이다.
-
하나로 보이는 두 문제를 갈라내기
(수정됨)메모리를 늘려도 절반만 나아진 것을 덜 고쳤다로 읽지 않고 두 번째 원인을 찾아, 종료 사유로 원인을 가르는 방법을 세운 과정이다.
-
도움말이 낡는 자리
(수정됨)서버 하나의 코드와 설정과 배포 스크립트를 한자리에 놓고 교차 대조해, 한 파일만 봐서는 찾을 수 없는 불일치 다섯을 찾아낸 과정이다.
-
CloudWatch 알람 노이즈 줄이기 — SNS 토픽 필터링 실전
CloudWatch 알람이 SNS를 통해 과도하게 발송될 때, 알람 노이즈를 줄이는 실전 방법을 정리한다. 이커머스 연동 서비스의 사례를 다룬다.
-
서명과 경계
(수정됨)외부 API 문답 수십 건을 전수 검토해 얻은 넷을 정리하고, 오류 메시지가 원인을 안 가리키는 항목일수록 전수 검토가 필요한 이유를 남긴다.
-
OpsNow360 유료 전환 시 기능 제한 해제 요청 절차
AWS 리셀러 계약 갱신 후 OpsNow360의 유료 기능 제한 해제를 요청한 과정과, FinOps 도구 운영 시 주의할 점을 정리한다.
-
아무것도 못 찾아도 성공을 반환하는 명령들
(수정됨)검증 스크립트의 판정이 항상 한쪽으로만 나온 원인을 명령별 종료 코드 규칙에서 찾고, 검사가 실제로 가르는지 확인하는 방법을 정리한다.
-
컬렉션마다 다른 규칙
(수정됨)한글 파일명을 교정해 달라는 요청의 전제를 요청 하나로 확인해, 일괄 적용이 정상 이미지 수백만 건을 깨뜨린다는 결론에 이른 과정이다.
-
세 조건을 항상 같이 걸었다
(수정됨)수십 곳에 흩어진 조회에서 필수 조건 셋 중 하나가 빠진 몇 곳을 찾고, 자동으로 붙이되 빼는 자리를 한 곳으로 좁힌 과정이다.
-
상태 컬럼으로 센 잘못된 분류
(수정됨)주문 상태 하나로 세다가 부분 취소를 놓쳤고, 조합 판정으로 분류하다 항목이 전부 취소된 채 살아 있는 주문 수백 건을 발견한 과정이다.
-
통계로 읽은 내 문제 기록
(수정됨)몇 년치 문제 기록을 개별 사건이 아니라 전체로 세어 반복 원인을 찾고, 반복될수록 조사가 얕아지는 경향까지 확인한 과정이다.
-
프로젝트마다 다르던 환경 변수
(수정됨)같은 뜻의 값이 프로젝트마다 다른 이름을 쓰고 있어서 스크립트를 옮길 때마다 깨지던 것을, 대응표와 이행 경고로 정리한 과정이다.
-
KISA 홈페이지 계정정보 보안조치 요청 — 실무 대응
한국인터넷진흥원(KISA)에서 홈페이지 계정정보 보안조치 요청을 받았을 때의 확인 사항과 대응 절차를 정리한다.
-
HPE Instant On으로 소규모 사무실 네트워크 구축하기
HPE Networking Instant On을 사용해 소규모 사무실 네트워크를 구축하고, 클라우드 기반 모니터링과 알림을 설정한 과정을 기록한다.
-
선택자 대신 순회하고 매칭한다
(수정됨)안정적인 선택자가 없는 표에서 순회와 매칭으로 값을 뽑고, 셀 순서와 추정치 표기와 재현 확인까지 절차로 남긴 과정이다.
-
레거시 MariaDB 서버 업그레이드 사전 조사 체크리스트
운영 중인 레거시 MariaDB 서버를 업그레이드하기 전에 반드시 확인해야 할 항목들을 체크리스트 형태로 정리한다.
-
AWS 리셀러 통합 빌링 계약 갱신 — 할인율 협상 실무
AWS 리셀러(MSP) 통합 빌링 계약 갱신 시 할인 조건 재협상, OpsNow360 연계, 계약서 변경 프로세스를 실무 관점에서 정리한다.
-
시각 없는 상태값
(수정됨)아무 기록이 없는 과거 일괄 조치를 상태값과 타임스탬프의 불일치로 재구성하고, 세는 방법이 결과를 바꾼다는 것을 정리한다.
-
검증 순서를 읽어 화면에 반영했다
(수정됨)외부 API 오류가 상세 없이 돌아오던 것을, 규격의 검증 순서를 읽어 화면 입력 순서에 반영하고 어디까지 미리 막을지 정한 기록이다.
-
경로가 둘일 때의 게이트
(수정됨)연장 작업이 실패한 줄 알았으나 애초에 생성되지 않았고, 같은 기능의 두 경로가 서로 다른 게이트를 가진 구조를 정리한다.
-
잘못이 아니라 설계였던 중복 업로드
(수정됨)중복으로 보이던 수백 건이 설계였고 기준을 좁히자 진짜 중복이 드러났으며, 상대 쪽 덮어쓰기 순서까지 확인한 과정이다.
-
변환본 둘, 규칙 둘
(수정됨)이미지가 작다는 민원의 원인을 마크업이 아니라 원본 해상도와 변환 규칙 차이에서 찾고, 선택지 셋을 영향과 함께 넘긴 과정이다.
-
없는 것을 만들어 내던 조회
(수정됨)존재 확인이 항상 참을 돌려주던 원인을 조회가 대상을 생성하는 구조에서 찾고, 부작용 있는 조회를 전수로 정리한 과정이다.
-
게이트만으로 안 되는 결정
(수정됨)조건 분기를 찾고 설명이 완성된 줄 알았다가 호출부를 읽고 이론을 철회하고, 대신 미래 위험을 기록으로 남긴 과정이다.
-
수집원마다 렌더링 방식을 잰다
(수정됨)브라우저가 필요하다고 짐작하던 수집원들을 직접 요청해 재고, 브라우저의 역할을 쿠키 공급원으로 줄인 과정이다.
-
2단계 중간의 정지
(수정됨)갱신 실패로 오진했던 약 2만 건이 실은 연동 해제 2단계 중 1단계에서 멈춘 상태였고, 그 지문을 게이트로 만든 과정이다.
-
떼어 놓고 얻은 통과의 한계
(수정됨)한 단계를 떼어 내 통과시킨 것을 무죄 증거로 삼아 며칠을 잃고, 떼어 내며 바꾼 조건을 하나씩 되돌리는 방법을 세운 과정이다.
-
상위만 옛것을 가리키던 상태
(수정됨)두 화면의 금액이 다른 문의를 정책 데이터가 아니라 상품의 참조에서 풀고, 이관이 참조를 안 옮기는 패턴을 정리한다.
-
네 번 따로 적힌 같은 결함
(수정됨)증상이 달라 보이던 장애 넷의 원인이 같았고, 기록 형식을 맞춰 모아 세니 반복 결함 넷이 드러난 과정이다.
-
보고된 슬롯 수와 실제 장착분
메모리 증설 가능 여부를 조회했더니 시스템이 보고한 값이 이론치였음을 세 소스로 확인한 기록이다.
-
센티널은 코드로 강제한다
(수정됨)실데이터와 센티널이 같은 키스페이스를 쓰는데 충돌 방지가 주석뿐이었고, 그 충돌이 예외가 아니라 침묵으로 나타나는 구조를 정리한다.
-
매핑표를 먼저 완성한다
(수정됨)코드 체계 이전에서 값을 하나씩 바꾸는 대신 매핑표를 먼저 완성하고, 1대1이 안 되는 것과 추정한 것을 나눠 적은 과정이다.
-
도착률 대비 처리량으로 잰다
(수정됨)프로세스 수만 보고 워커 축소를 답으로 냈다가 도착률과 처리량을 실측해 결론을 뒤집고, 조건이 바뀌면 반대가 맞는다는 것까지 정리한다.
-
링크 없음과 미응답의 구분
(수정됨)자동 판정으로 뽑은 미응답 목록을 표본 교차검증에서 뒤집고, 신호와 의미를 가르는 매칭 규칙을 세운 과정이다.
-
한 이미지의 다중 앱 지원 여부
(수정됨)비슷한 이미지 넷을 공통 층으로 묶되 한 이미지에 여러 앱을 넣지 않기로 하고, 그 선택이 보안 갱신까지 바꾼 과정이다.
-
정렬 옵션이 없는 조회
(수정됨)수정 시각 정렬이 없어 4만 건을 받던 것을, 다른 이름의 API와 필드 선택과 해시 비교로 단계별로 줄인 과정이다.
-
다른 키를 먼저 세어 본다
(수정됨)특정 불가로 남아 있던 잔여 몇 건을 옆 컬럼의 카디널리티 한 번으로 풀고, 매칭용 키와 판별용 키를 나눈 과정이다.
-
수만 건을 한꺼번에 바꾸지 않고 나눠서 하는 법
(수정됨)수만 건 재전송을 웨이브로 나누면서 대상 고정과 응답 불신과 실패 사유 분류까지 절차로 굳힌 과정이다.
-
알려진 버그부터 검색한다
(수정됨)설정을 몇 시간 뒤진 뒤에야 공개 이슈를 검색해 여섯 개가 겹쳐 있음을 확인하고, 조사 순서를 바꾼 과정이다.
-
플랫폼마다 다른 식별자 타입
(수정됨)한 대에서 먹힌 처방을 나머지 여섯 대에 퍼뜨리기 전에 조건을 확인해, 결론이 수정 없음으로 끝난 조사다.
-
언어판마다 다른 문서 목록
(수정됨)한 언어판만 보고 기능이 없다고 판단해 며칠을 우회한 뒤, 규격 파일과 갱신 날짜로 문서를 대조하는 절차를 세운 과정이다.
-
값 하나에 테이블 여섯
(수정됨)일괄 보정 전에 정식 수정 경로가 건드리는 테이블을 전수 추적해 여섯으로 확정하고, 직접 SQL 대신 커맨드를 고른 근거를 정리한다.
-
프로젝트마다 다른 방식과 표준
(수정됨)배포 방식이 제각각인 프로젝트 넷을 방식이 아니라 조건으로 통일하고, 조건을 못 채우는 하나는 그 사실을 기록으로 남긴 과정이다.
-
단일 요청과 동시성이라는 두 축
(수정됨)타이밍 창이 없다고 반박했다가 반문 한 줄로 조건이 바뀌면서 결론이 정반대가 된 조사다.
-
읽기 패턴 재사용으로는 안 된다
(수정됨)기존 패턴 재사용으로 잡았던 작업이 쓰기 경로 부재로 신규 구현이 되면서, 코드와 권한과 정책과 캐시가 함께 가야 했던 과정이다.
-
스케줄이 없다고 기능이 없는 것은 아니다
(수정됨)정리 대상으로 올린 기능이 cron에 없어 죽은 것으로 보였다가 다른 실행 경로에서 살아 있던 것을 확인하고 판정 기준을 고친 기록이다.
-
롤링 저장소를 동결한다
(수정됨)마이너 고정 트리가 없는 부가 저장소를 아카이브 스냅샷으로 동결하고, 주소 유효성과 설치 패키지 존재를 각각 검증한 과정이다.
-
반복되는 급한 조치
(수정됨)반년간 반복한 수동 조치를 시간으로 환산해 근본 수정 비용과 비교하고, 조치 횟수 자체를 지표로 삼은 과정이다.
-
추가는 안전하고 변경은 아니다
(수정됨)매핑 작업을 추가와 변경으로 가르고, 포괄적 분류의 매핑 가능 여부를 네 건 대조로 판정한 기준을 정리한다.
-
설치와 셸 통합의 분리
(수정됨)우클릭 메뉴가 안 나오는 것을 설치 실패로 오해했다가, 파일 유무로 미제공과 미적용을 가르는 절차를 정리한 과정이다.
-
이관이 빠뜨린 부속 레코드
(수정됨)한 업체 문제로 보이던 연동 실패가 이관된 백여 개 업체 전원의 문제였고, 그 사실이 보정 계획 전체를 바꾼 과정이다.
-
미결을 닫고 다음으로 갔다
(수정됨)미결을 남긴 채 다음 문서로 넘어갔다가 그 위에 쌓인 것이 전부 흔들린 뒤, 무엇을 닫고 무엇을 진행할지 가르는 방법을 정리한다.
-
성공이 아니었던 성공 목록
(수정됨)일괄 API가 처리하지 않은 건을 성공 목록에 담은 것을 청크별 되읽기로 잡아내고, 그 건을 어떻게 분류할지 정한 과정이다.
-
작업 공간 둘의 통합 여부
(수정됨)전부 합치거나 전부 나누는 대신 무엇을 합칠지를 갈라서 도구만 합치고 자료와 자격 증명은 나눈 과정이다.
-
멱등은 전제 위에 선다
(수정됨)멱등 로직이 이미 있는데도 매번 재업로드가 일어난 이유를 추적해, 식별자가 매번 바뀌면 멱등이 원리적으로 성립하지 않는다는 것을 정리한다.
-
중간에 받은 지적의 자리
(수정됨)진행 중에 받은 지적을 이미 한 것이 아까워 넘겼다가 결국 더 큰 비용을 치른 뒤, 판단 순서를 정한 과정이다.
-
같은 것을 가리키던 식별자 셋
(수정됨)내부 키와 화면 번호와 API 입력값이 전부 다른데 조사에 쓴 값을 그대로 회신에 넣었다가 상대가 못 찾은 건을 정리한다.
-
WHERE에 들어간 결론
(수정됨)검증 쿼리의 조건에 검증하려는 결론을 넣어 순환논증이 된 건과, 결과가 가설과 일치할 때가 더 위험한 이유를 정리한다.
-
상태를 안 바꾸던 컨슈머
(수정됨)외부 처리는 끝났는데 우리 상태만 요청으로 남아 있던 건을 단계별로 그려서, 빠진 마지막 단계와 그 단계의 주인을 찾은 과정이다.
-
제외를 적용하고 센다
(수정됨)다음 검증 대상을 고르려고 규모를 다시 세면서, 제외 조건을 넣기 전과 후가 완전히 다른 그림을 보여 준 건을 정리한다.
-
예외를 다 흡수하려던 표준 모델
(수정됨)여섯 채널의 주문을 한 모델로 담으려다 필드가 서른 개 가까이 된 뒤, 공통과 예외를 나누고 무엇이 공통인지를 세어서 정한 과정이다.
-
주 계정을 기준으로 잡은 구조
(수정됨)최상위 계정을 어떻게 다룰지 정하고 나니 역할 분리와 권한 축소와 담당자 교체 절차까지 그 결정에서 따라 나왔다.
-
문서에 없는 제약의 출처
(수정됨)공식 문서에 없고 Q&A에만 있는 제약들을 전수로 훑어 정리하면서, 사전 검증에 반영할 것과 운영 문서에 넣을 것을 갈랐다.
-
터널 앞에는 L4를 쓴다
(수정됨)프록시 통합 설계의 초기 가정 둘이 착수 전 읽기 전용 조사에서 모두 뒤집힌 과정과, 인바운드와 아웃바운드를 가르는 기준을 정리한다.
-
만들어진 적 없는 미연동
(수정됨)화면의 미연동 라벨이 실패가 아니라 작업 없음을 뜻한다는 것을 코드로 확인하고, 질문의 전제까지 바로잡은 과정이다.
-
기간 없는 미처리 집계의 과대
(수정됨)화면 이름만 아는 상태에서 테이블을 찾아 들어가 기간 조건 없는 미처리 집계가 레거시로 부풀려져 있음을 확인한 과정이다.
-
넓힌 catch가 여는 안쪽
(수정됨)예외 범위를 넓히는 한 줄짜리 패치의 2차 검토에서 새 실행 경로와 진단 코드의 자멸과 패치의 자기 재현 셋을 찾은 과정이다.
-
고급 기능의 도입 시점
(수정됨)떠오른 기능 다섯을 나중에 넣기 어려운 것과 아닌 것으로 갈라 둘만 지금 넣고, 안 넣은 것의 종료까지 관리한 과정이다.
-
마켓마다 다른 중지의 뜻
(수정됨)상태 불일치 수만 건을 채널별로 갈라 원인이 셋 다 다르고 매핑 누락은 0건임을 확인해, 백로그로 읽지 않기로 한 과정이다.
-
피해 반경은 부분집합이다
(수정됨)8일치가 다 깨진 것 아니냐는 지적에 대상 조건을 읽고 모집단을 정의해, 수십만 건 중 0.1퍼센트 아래로 좁힌 과정이다.
-
이미 두 겹이던 검증
(수정됨)새 기능에 붙일 검증을 짜기 전에 기존 범위를 읽어 십여 개를 안 짜고, 대신 정해야 할 정책 하나를 찾아낸 과정이다.
-
인프라 정의에서 떼어 놓은 코드
(수정됨)인프라 정의에 들어 있던 배포를 떼어 내면서 경계를 바뀌는 빈도로 정하고, 나눈 뒤 드러난 의존과 되돌리기 순서까지 정리한 과정이다.
-
재생성을 막은 스킵 조건
(수정됨)같은 주소를 다시 넣어도 스킵 조건에 걸려 아무 일도 안 일어나던 것을 외부 경유로 풀고, 폭 문제의 원인은 가정과 달랐던 과정이다.
-
전수 조사로 확정한 현재 상태
(수정됨)비용 절감 요청을 목록 만들기부터 시작해 아무도 몰랐던 자원과 다른 계정과 안 쓰는 접근 권한까지 정리한 과정이다.
-
그대로 둔 기본값의 비용
(수정됨)검색 조회 상한을 기본값으로 두어 비용과 결과 품질이 함께 나빴던 것을 고치고, 기본값을 쓰는 자리를 전부 훑은 과정이다.
-
한 단계 더 거쳐 조인한다
(수정됨)조인 결과 0건을 없다는 뜻으로 읽고 결론 낼 뻔했다가 스키마를 확인해 정반대 결과를 얻은 과정이다.
-
코드 추정보다 앞선 DB 사실
(수정됨)코드로 좁혀지지 않던 두 후보를 생성 시각과 갱신 시각이 같다는 사실로 가르고, 복구의 선행 조건까지 확정한 과정이다.
-
개발용처럼 보이는 이름의 운영 DB
(수정됨)이름만 보고 개발용으로 판단해 운영 DB를 건드릴 뻔한 뒤, 이름 대신 실체를 확인하는 목록과 맡길 것의 경계를 정한 과정이다.
-
0이 아니었던 슬롯
(수정됨)물리 서버 점검에서 슬롯 표기와 진단 필드 부재와 팬 회전율의 의미까지 다섯 가지 장비별 사실을 확인하고 기록한 과정이다.
-
청구서를 나누는 유일한 수단
(수정됨)한 계정에 섞인 네 프로젝트의 비용을 태그로 가르면서, 태그 없이 못 만들게 막고 값까지 제한한 과정이다.
-
꺼낸 순간 낡아 있던 값
(수정됨)큐 메시지에 값을 통째로 담아 낡은 값이 나중에 덮은 사고를 고치면서, 다시 읽을 것과 스냅숏이 맞는 것을 가른 과정이다.
-
설계를 바꾼 과금 구조
(수정됨)싸 보이는 구조가 요금 구조 때문에 반대인 것을 실측으로 확인하고, 과금 단위와 비중으로 줄일 대상을 정한 과정이다.
-
먼저 돌려도 안 줄던 총시간
(수정됨)큰 채널을 먼저 돌려 나머지를 가속한다는 전략의 전제를 실측으로 무너뜨리고, 동시 실행 분산으로 바꾼 과정이다.
-
분리된 입구, 공유된 데이터
(수정됨)운영 서버 한 대를 떼어 시험하려다 큐가 공유된다는 것을 확인하고, 성공하면 원복이 없는 시험은 하지 않기로 한 과정이다.
-
실패가 아니라 안 지워진 표시
(수정됨)취소가 안 된다는 문의를 주문 상태와 취소 상태의 불일치로 표시 문제로 판정하고, 조사 중 드러난 요청 폭주는 따로 분리한 과정이다.
-
바뀐 상태와 나가지 않은 요청
(수정됨)패널티 이의의 근거를 확인하다 우리 시스템이 중지를 안 보낸 것을 찾아, 반영 확인 기준을 내부 상태에서 연동 상태로 바꾼 과정이다.
-
단계 신호였던 0
(수정됨)실행 초반의 작업 0건을 버그로 보고 중단할 뻔했다가 단계 진행 신호임을 확인하고, 진행률 측정을 로그에서 기록 집계로 바꾼 과정이다.
-
빈 프로젝트가 아닌 파일 0개
(수정됨)소스 파일 0개인 프로젝트를 껍데기로 판정했다가 IDE 캐시에서 업무 규칙 수백 개를 찾고, 재개발의 과제 자체가 바뀐 과정이다.
-
마지막으로 보낸 값의 보관
전송은 성공인데 값이 안 맞는 문의를 마지막 전송값 컬럼 하나로 진단하게 만든 기록이다.
-
보낼 URL의 부재
(수정됨)추측으로 제시한 링크가 실재하지 않는다는 되물음을 받고 라우터 정의를 확인해, 수정안 대신 결정할 것을 정리한 과정이다.
-
결합키 제거는 교환이다
(수정됨)메모리를 줄이려 결합키를 없애면서 반환 형태 변화와 동점 처리를 확인하고, 그 교환의 방향을 맥락으로 판단한 과정이다.
-
밖에서 다시 받아 채운 값
(수정됨)응답 형식 변경으로 비게 된 식별자 수백 건을 상대에게 다시 물어 복원하고, 되찾을 수 없는 값과 원인 수정까지 나눠 처리한 과정이다.
-
해소와 통과의 차이
(수정됨)링크 존재만 보던 검사가 전부 통과했는데 실제로는 안 되던 것을 대조군으로 확인하고, 검사별로 무엇을 보는지 표로 적은 과정이다.
-
같은 데로 가는 폴백
(수정됨)폴백이 있는데도 실패가 쌓인 원인이 폴백도 같은 도메인을 쓰기 때문임을 확인하고, 인프라 확인을 코드 수정보다 앞에 둔 과정이다.
-
인증을 시행착오로 시험하지 않는다
(수정됨)잘못된 인증 요청이 계정 전체를 강등시키고 복구가 최대 2주 걸리는 규격을 문답에서 미리 읽어, 시행착오 방식을 안 쓰기로 한 과정이다.
-
표본을 제한하는 보존 기간
(수정됨)만료 설정이 관측 창을 제한한 것을 확인하고, 전제를 반증한 표본이 대표성이 없어 확증도 아닌 상태를 그대로 적은 과정이다.
-
종결이 아닌 잔존 0
(수정됨)7천여 건을 처리해 잔존을 0으로 만들고도 근본 수정이 미배포라 종결이 아님을 유입 건수로 실증하고, 드레인과 수정을 나눠 보고한 과정이다.
-
마킹인가 실제 호출인가
(수정됨)멱등일 것이라는 추정을 실행기 코드로 반증하고, 로그가 외부 응답이라는 사실을 이용해 대량 작업 대상을 좁힌 과정이다.
-
첫 관문 통과와 완료 사이
(수정됨)완료 건수를 판정 기준으로 삼아 전건 성공을 실패로 읽을 뻔한 것을 사유 이동으로 다시 재고, 보류와 실패를 나눠 보고한 과정이다.
-
다섯 번 따로 고친 같은 문제
(수정됨)같은 원인이 다섯 번 따로 기록된 것을 발견하고, 기록에 도달하지 못한 이유와 반복될수록 조사가 얕아지는 경향을 정리한 과정이다.
-
원시 이벤트가 남기는 노이즈
(수정됨)검색 로그에서 뽑은 키워드 사전에 섞인 노이즈를 다섯 종류로 분류하고, 입력과 추출과 정규화와 사후 삭제 중 어디서 막는 것이 싼지를 정리한다.
-
이관이 바꾼 ID와 모르던 밖
(수정됨)내부 이관이 발급한 새 식별자가 외부의 옛 식별자와 충돌한 경위를 추적하고, 대응된 경로와 안 된 경로의 차이까지 확인한 과정이다.
-
버전이 아니었던 버전 필드
(수정됨)상수 목록과 전혀 안 맞는 값 앞에서 목록을 의심하다가 전제를 의심하는 쪽으로 방향을 바꿔, 소스에서 30분 만에 푼 과정이다.
-
하나에만 있던 게이트
(수정됨)브라우저가 CDN으로 직접 간다는 통념을 호출 전수 조사로 확인해, 서버를 걷어내면 조용히 죽었을 경로 셋을 찾아낸 과정이다.
-
동작을 바꾸지 않는 사전 배포
(수정됨)읽기 변경을 현재 데이터에서 발동할 수 없는 조건으로 먼저 배포하고, 쓰기 플래그 하나로 전환해 위험을 카나리 한 대에 가둔 과정이다.
-
계측은 필요한 입도에서 한다
(수정됨)카테고리 매핑 실패를 세려다 결과 객체의 입도가 맞지 않던 것을, 소스를 바꿀지 별도 계측을 붙일지 견줘 정한 기록이다.
-
라벨 말고 관계를 믿는다
(수정됨)요청에 딸려 온 라벨과 데이터가 정반대인 것을 관계 컬럼으로 확인하고, 추측으로 뒤집는 대신 확인을 요청한 과정이다.
-
어느 계층의 중복인가
(수정됨)규모가 안 맞는 집계에서 세고 있던 계층이 다르다는 것을 확인하고, 삭제 대상 기준을 업무 계층 활성 레코드로 바꾼 과정이다.
-
실제 경로를 잡아서 본 것
(수정됨)설정은 새 주소인데 옛 주소로 나가던 원인을 패킷과 대체 경로에서 찾고, 도구를 못 까는 환경에서 코드로 남기는 방법까지 정리한다.
-
규격이 허용하는 문자로 값을 채웠다
(수정됨)애매한 거부 사유를 통과분과 거부분 비교로 좁히고, 뜻을 잃지 않는 치환과 사전 검증으로 거부율을 없앤 과정이다.
-
정체와 적체를 가르는 두 시각
(수정됨)프로세스 상태와 큐 조회로는 안 갈리던 두 채널을 실행 시각과 완료 시각 분포로 가르고, 조치 대상을 하나로 좁힌 과정이다.
-
넘버링 규칙과 그것이 깨진 이유
(수정됨)채널 코드 넘버링이 보이는 규칙과 어긋난 이유를 외부 규격에서 찾고, 규칙을 문서로 남겨 다음 사람이 다시 조사하지 않게 한 기록이다.
-
정책은 이미 코드에 있다
(수정됨)기획 판단으로 넘기려던 사안을 코드 검색으로 선례 둘을 찾아 근거를 세우되, 결정은 열린 채로 남긴 과정이다.
-
계산된 화면 값
(수정됨)저장 컬럼을 고쳤는데 화면이 안 바뀐 원인을 API 응답에서 갈라내고, 표시값과 정산값이 분리된 구조를 확인한 과정이다.
-
누가 부담하나와 어떻게 걷나
(수정됨)처리조건만 보고 이미 고객 부담이라고 안내했다가 지적받고, 귀책이 금전 방향을 정한다는 것을 코드에서 확인한 과정이다.
-
조사와 만드는 것을 단계로 나눴다
새 연동에서 조사와 구현을 섞어 하다가 둘을 단계로 나누고 조사 결과를 문서로 남긴 기록이다.
-
읽을 때 맞출지 쓸 때 갈릴지 정했다
(수정됨)외부 자료의 형태가 여럿인 것을 쓰는 자리마다 가르다가 읽는 자리에서 한 번 맞추는 쪽으로 옮기고, 우리 저장분과 송신분까지 형태를 통일한 과정이다.
-
인코딩된 식별자의 복원
(수정됨)매핑 이력이 없는 오류 9건을 인코딩 역함수로 우리 식별자에 직접 대조하고, 되돌린 식별자의 출처가 네 갈래임을 확인한 과정이다.
-
완료를 되읽는 세 가지
(수정됨)로그 마커와 프로세스 소멸과 기록 집계로 완료를 3중 검증하고, 비싼 검증은 언제 할지 정해서 미룬 과정이다.
-
소요 시간이 유일한 신호다
(수정됨)중복 제거 때문에 성공 응답이 실행과 재사용 둘을 뜻하게 된 상황에서 소요 시간을 판별 신호로 삼고, 반영 방식별로 확인 시점을 나눈 과정이다.
-
힌트가 된 이미 깔린 목록
(수정됨)무엇이 없는지를 하나씩 실행해 찾는 대신 두 서버의 명령 목록 차집합으로 한 번에 뽑고, 판 차이까지 확인한 과정이다.
-
고치기 전의 실패 로그
(수정됨)건수 불일치를 조회 축으로 풀고, 고쳤는데 여전히 실패한다는 관측이 수정 이전 타임스탬프의 로그였음을 확인한 과정이다.
-
양쪽에 똑같이 적용해 대칭으로 맞췄다
(수정됨)저장과 조회의 정규화가 어긋나 값을 못 찾던 것을 한 함수로 묶고, 들어오는 자리에서 한 번 정규화하는 형태로 옮긴 과정이다.
-
앞 단계에서 이미 받아 둔 것
처리 흐름이 느린 원인이 앞 단계에서 확보한 것을 뒤에서 다시 가져오는 데 있었던 기록이다.
-
속성처럼 쓴 메서드
(수정됨)오류 없이 틀린 값이 나온 원인을 꺼 둔 경고에서 찾고, 켠 뒤 쏟아진 경고를 위험도로 분류해 순서대로 처리한 과정이다.
-
검사가 실제로 검사하고 있는지 확인하는 법
(수정됨)오류 없이 0건이 나온 다섯 사례를 모아, 대조군과 개수 출력과 축 확인으로 검사의 유효성을 재는 방법을 정리한다.
-
왜 껐는지부터 찾는다
(수정됨)주석 처리된 대체 로직을 되살리기 전에 이력에서 끈 이유를 찾아, 같은 로직을 다른 경로에만 적용하기로 한 과정이다.
-
자리마다 따로 한 열거
(수정됨)여러 자리에 흩어진 설정을 한 번에 훑는 대신 자리별로 나눠 열거해, 중복과 관리 주체 없는 자리를 드러낸 과정이다.
-
깨진 것이 아닌 410
(수정됨)깨진 것으로 보이던 410 응답이 실측 메모리에 근거한 의도적 폐기였고, 되살리면 프로세스 전체가 죽는 구조였음을 확인한 과정이다.
-
화면으로 못 푸는 상태 가드
재배송 송장이 안 들어가는 건에서 처리 흐름의 상태 가드가 막고 있었음을 확인한 기록이다.
-
항상 null을 돌려주는 매퍼
(수정됨)빈 매퍼를 원인으로 잡고 멈출 뻔했다가 자동화 자체의 부재를 찾아내고, 수백 건이라는 규모와 추론의 강도까지 나눠 보고한 과정이다.
-
되짚을 수 있는 익명
(수정됨)문서에서 특정 서버의 정체를 지우면서 로컬 검색의 사각지대와 소거법 재구성과 개수 표현의 되돌림을 만난 과정이다.
-
밖으로 나가는 컬럼
(수정됨)기록용으로 보이던 컬럼이 실은 양방향 전송 값이었고, 직접 갱신이 화면에서만 맞아 보이는 상태를 만든다는 것을 정리한다.
-
포크가 답이 아닐 때
(수정됨)패치 방식을 포크로 바꾸려다 upstream 구조가 갈라진 것을 확인하고 전환을 접되, 조사 결과와 재검토 조건을 남긴 과정이다.
-
스케줄러가 둘일 때의 필터
(수정됨)수동으로 넣은 작업이 안 도는 원인을 두 실행 경로의 필터 차이에서 찾되, 그것이 이번 관측을 설명하지 못한다는 것까지 구분해 적은 과정이다.
-
grep과 커버리지의 증거
(수정됨)보상 로직의 범위를 키워드 검색이 아니라 호출 트리 전이 추적으로 확정하고 근거의 강도를 밝힌 기록이다.
-
침묵을 고친 뒤의 폭주
(수정됨)만료 없는 상태 영속화가 침묵 버그를 폭주 버그로 바꾼 사례와 짝으로 도입해야 하는 장치를 정리한 기록이다.
-
건수로 갈리지 않는 것
같은 송장이 두 건에 물린 것이 재입력인지 덮어쓰기인지를 시각과 이력으로 가른 기록이다.
-
되살아나지 않는 정체 건
(수정됨)재수집이 코드 경로상 무효임을 먼저 확인하고 복구와 정리를 가른 기록이다.
-
컨테이너 안 파일에 쓰는 코드
(수정됨)로컬 테스트는 전부 통과하고 무상태 배포에서만 틀리는 코드 유형과 그 기록 방식을 정리한 기록이다.
-
계획에 꽂아 둔 깃발
(수정됨)통합 설계 착수 직전에 미검증 가정만 골라 읽기 전용으로 실측하고 리스크와 스펙으로 갈라 낸 기록이다.
-
대체 동작이 기본 로그 수준에 안 보였다
(수정됨)외부 API 실패 시 대체 값으로 넘어가던 동작이 기본 로그 수준에 안 남아 규모를 몰랐던 것을, 수준별로 무엇을 담을지 정해 드러낸 기록이다.
-
지름길 대신 사슬
(수정됨)브라우저로만 확인해 놓친 중간 인증서 누락을 사슬 단위 검증 절차로 바꾼 기록이다.
-
살아 있는 것과 받아 주는 것
(수정됨)헬스체크가 재지 못하는 수용성 축을 구분하고 거부 응답을 지표로 뽑자고 제안한 기록이다.
-
검토를 돌 때마다 결과를 적었다
같은 코드를 여러 번 검토하면서 회차마다 본 범위와 찾은 것을 기록으로 남긴 기록이다.
-
세 번 따로 적힌 같은 함정
(수정됨)같은 함정이 세 문서에 흩어져 있던 것을 한 곳으로 모으고 근본을 고치기까지의 기록이다.
-
이미 빠진 것의 이중 차감
(수정됨)새 필드로 계산식을 넣기 전에 이미 반영된 값인지 대조해 이중 차감을 막은 기록이다.
-
버그로 보이는 조용한 무시
(수정됨)세 계층에서 막는 정상 차단이 아무 피드백도 주지 않아 결함으로 읽히던 구조를 정리한 기록이다.
-
스냅샷과 근본 원인
(수정됨)실시간 관측으로 단정한 병목을 누적 통계와 대조해 뒤집고 관측과 해석과 판단을 나눠 보고한 기록이다.
-
없는 것이 정상일 수 있다
(수정됨)환불 기록이 없다는 관측은 맞고 처리가 안 됐다는 해석이 틀렸던 건을 코드 경로로 확정한 기록이다.
-
만들어지지 않은 작업
(수정됨)재시도가 소용없는 실패가 있다는 것과 상태 값 하나가 두 상황을 뜻하는 문제를 정리한 기록이다.
-
막힌 게 정책일 수 있다
(수정됨)장애로 접수된 문의가 의도된 정책이었고 요청 형태를 바꿔 해소한 뒤 근거 등급까지 나눠 남긴 기록이다.
-
등록 성공이 가린 오설정
(수정됨)조회를 동반하는 작업에서만 드러나는 오설정을 작업 타입별 집계와 대조군으로 확정한 기록이다.
-
소스로 역추적한 주석의 뜻
(수정됨)조건부 안내를 필수 구성으로 읽어 없는 작업을 찾다가 소스로 역추적해 닫은 기록이다.
-
재초기화 뒤 전수 통과 확인
(수정됨)고친 건만 확인하고 끝냈다가 놓친 것을 전수 검사와 무중단 교체로 다시 세운 기록이다.
-
경유와 참조라는 두 질문
(수정됨)좁은 범위 검색으로 낸 결론을 전수 호출부 조사로 다시 세우면서 원래 물음에 없던 답까지 얻은 기록이다.
-
전용 도구가 없으면 접근이 막힌다
(수정됨)콘솔 하나에만 의존하던 조회 경로를 API로 넓히면서 권한 차이와 대체 불가 영역까지 정리한 기록이다.
-
비어 있던 정책 값
(수정됨)외부 요청의 필수 값이 비어 실패한 문제를 앞단 차단과 규격 대조표로 정리한 기록이다.
-
커서 페이징이 남기는 filesort
(수정됨)정렬키와 필터키가 다른 테이블일 때 커서 페이징이 왜 부족한지와 드라이빙 강제가 데려오는 부작용을 정리한 기록이다.
-
조용히 실패하는 것이 제일 비싸다
(수정됨)성공처럼 보이는 실패의 다섯 유형과 그것을 찾아내는 대조 방법을 정리한 기록이다.
-
생성이라는 로그와 실제 갱신
(수정됨)세 번 같은 결론을 냈던 판정을 테이블 직접 조회로 뒤집고, 덮어쓰기 판별 지문과 파급까지 정리한 기록이다.
-
전수 스캔 대신 헤더
(수정됨)몇 시간짜리 전수 점검을 헤더 확인으로 대체하고, 표본 구간이 결론을 바꾼다는 것을 확인한 기록이다.
-
소진된 작업과 재현 불가
(수정됨)꺼내면 사라지는 큐에서 실패한 작업을 재현할 수 없던 문제를 기록과 예약 방식으로 바꾸고 멱등까지 붙인 기록이다.
-
재현 못 하는 걸 다시 쓰지 않는다
(수정됨)본문 정규화 계획을 재직렬화 비동일성 때문에 접고, 원래 목적으로 돌아가 훨씬 좁은 작업으로 바꾼 기록이다.
-
셸이 바꾼 경로와 실패한 호출
(수정됨)특정 셸이 경로 인자를 자동 변환하던 문제를 환경별로 확인하고, 스크립트에서 흡수해 재발을 막은 기록이다.
-
문서와 실제 응답의 어긋남
(수정됨)새 채널 어댑터를 만들기 전에 문서와 실제 응답이 어긋나는 지점을 목록으로 만들어 설계를 확정한 기록이다.
-
아무것도 증명하지 않는 통과
(수정됨)결과 비교 검사기를 넣고 기준선 통과에서 멈추지 않고 음성 시험으로 유효성을 확인한 뒤 순차로 바꾼 기록이다.
-
pending은 오류가 아니다
(수정됨)실패가 예외가 아니라 대기 상태로 남아 영구 정지한 구조를 성공 건과 대조로 찾아내고 대응을 나눈 기록이다.
-
잠긴 것이 아니라 기다리는 중
(수정됨)두 상태 플래그가 서로 다른 경로를 막는다는 것을 확인하고, 추가 작업이 필요 없다는 결론에 이른 기록이다.
-
출력에 남은 해시로 한 복원
(수정됨)지운 브랜치를 출력에 남은 해시로 되살리고, 남는 기간과 되살릴 수 없는 범위까지 정리한 기록이다.
-
인코딩해서 통째로 넘긴 스크립트
(수정됨)여러 계층을 거치며 따옴표가 깨지던 원격 실행을 인코딩 전달로 바꾸고, 임시와 반복의 경계를 정한 기록이다.
-
설치 전에 재는 uid
(수정됨)호스트에 도구를 깔기 전에 데이터 디렉터리와 사용자 번호의 점유 상태를 실측하고, 사후 확인까지 나눈 기록이다.
-
환경 이름은 코드에 있는 걸 쓴다
(수정됨)검사되지 않는 환경 값에 새 이름을 붙였을 때 화이트리스트 분기에서 빠지며 실호출이 나가는 구조를 정리했다.
-
옛 클론과 잃어버린 저장소
(수정됨)내용이 전혀 다른 옛 클론의 삭제 가능 여부를 파일 대조가 아니라 커밋 보존으로 판정한 기록이다.
-
파일 안의 지문
(수정됨)폴더명으로 구조를 판정했다가 두 번 반려된 뒤, 파일 안의 환경 지문으로 대상을 식별한 기록이다.
-
도는 디렉터리와 고치는 디렉터리
(수정됨)멈춘 수집을 찾아가면서 실행 경로를 확인하지 않으면 고쳐도 반영되지 않는 구조를 정리한 기록이다.
-
단방향이 설계다
(수정됨)역전파를 넣어 달라는 요청을 받고 없는 기능이 의도인지 빠뜨림인지를 가른 뒤, 대안과 상신 경로까지 낸 기록이다.
-
조건에 안 걸린 것의 통과
(수정됨)미들웨어의 마지막 분기가 사양이 아니라 빠뜨림이었던 사례와, 매핑과 응답 복원까지 정리한 기록이다.
-
안 나온다와 없다는 다르다
(수정됨)저장소가 둘로 갈린 환경에서 한쪽의 0건을 없다로 답하지 않고, 확인 범위를 명시해 회신한 기록이다.
-
쓰는 길과 읽는 길이 다르다
(수정됨)보낸 상태가 조회에 안 나타나던 건에서 쓰기와 읽기의 경로를 그리고, 필드의 출처를 끝까지 따라간 기록이다.
-
표시된 값과 실제 할당의 대조
(수정됨)화면의 여유와 실제 부족이 어긋난 원인을 컨테이너 한도에서 찾고, 설정과 한도를 맞춘 기록이다.
-
공통 규칙이 잡아먹은 예외
(수정됨)개인정보 마스킹 규칙이 필요한 식별자까지 가리던 문제를 형태별 규칙과 음성 시험으로 좁힌 기록이다.
-
행 대신 집계로 낸 답
(수정됨)통보받은 번호로 행을 못 찾았을 때 물음을 다시 잡고, 최고 시점 하나로 원인 가설을 닫은 기록이다.
-
운영 데이터를 고치기 전에 확인하는 것들
(수정됨)운영 데이터를 직접 고치기 전에 밟는 순서를 대상 선정과 재현 대조와 되돌림과 재조회로 정리했다.
-
한계는 커넥션이 아니라 IO였다
(수정됨)동시 실행의 정합성과 커넥션을 확인한 뒤 진짜 병목을 대용량 읽기에서 찾고, 시간대로 정책을 나눈 기록이다.
-
기본값은 맞았고 로딩이 안 됐다
(수정됨)Laravel 설정 파일을 추가했는데 값이 안 읽히던 것을 부모 프로세스의 설정 캐시에서 찾고, 고칠지 두고 갈지 정한 기록이다.
-
중복 판정을 원문 완전 일치로
(수정됨)정규화한 이름으로 중복을 막다가 다른 상품이 묶인 사례에서, 막는 것과 알리는 것을 갈라 정한 기록이다.
-
스케일링 기준은 액세스 로그에 있다
(수정됨)대수를 정하기 전에 시간대별 부하를 재고, 예약과 추적을 병행하며 지정 가능한 범위까지 확인한 기록이다.
-
캐시를 지우고 재시작하는 것이 답일 때
(수정됨)지우고 재시작으로 풀린 배포 문제의 원인을 캐시 생성 시점에서 찾고, 확인과 기록까지 절차로 만든 기록이다.
-
높이 대신 고정한 아래
(수정됨)계산한 높이가 조건에 따라 어긋나던 화면을 배치 구조로 바꾸고, 동적 높이와 위치 복원까지 다룬 기록이다.
-
지운 DNS와 계속 도는 동작
(수정됨)삭제를 죽음으로 단정한 추론을 실측으로 끊고, 이름 해석 경로가 여럿이라는 것을 확인한 기록이다.
-
범위를 적고 시작하는 스윕
(수정됨)일괄 치환에서 다른 시스템과 문자 단위로 결합된 값을 가려내고, 제외 범위와 이유를 함께 남긴 기록이다.
-
의미의 정본은 코드다
(수정됨)공통 코드를 옮긴 뒤 원본에서 거꾸로 훑어 다섯 가지 어긋남을 찾고, 의미의 정본을 코드로 잡은 기록이다.
-
중복되는 말단 코드
(수정됨)계층 코드의 말단이 트리 전체에서 중복되는 것을 확인하고, 전체 경로로 대조해 신규만 뽑은 기록이다.
-
아무도 강제하지 않으면 안 깨진다
(수정됨)변환 생성 조건을 바꾸기 전에 의존 관계를 세고, 변경의 자유도와 반대 방향의 부담을 함께 확인한 기록이다.
-
모양이 달라도 오는 200
(수정됨)요청이 성공했는데 화면이 비던 원인을 응답 모양에서 찾고, 타입 선언과 실제 응답을 라우트 단위로 대조한 기록이다.
-
알아서 퍼지지 않는 변경
(수정됨)대량 변경 뒤 자동 전파를 전제했다가 커버리지를 재고, 배치의 실제 대상과 발화 조건을 확인한 기록이다.
-
비교할 수 없는 것을 비교하면
(수정됨)조회 스펙과 등록 스펙의 필드를 대조하려다 리소스가 다른 것을 확인하고, 비교 범위를 좁혀 확정한 기록이다.
-
하나씩 빼서 가른 원인
(수정됨)여러 계층을 거치는 느린 응답에서 바깥부터 하나씩 빼며 구간을 좁히고, 재현 조건을 먼저 고정한 기록이다.
-
영향 범위와 활성 건수
(수정됨)영향 범위를 전체 건수 하나로 답했다가 기준별로 다시 세고, 시험과 백업의 기준을 갈라 정한 기록이다.
-
쿼리 하나로 파이프라인 검증하기
(수정됨)두 컬럼 조합으로 실행 여부와 성패를 판정하고, 실패 0이 두 단계를 함께 검증한 구조를 정리했다.
-
도착한다는 전제를 조회로 확인했다
(수정됨)발송 로그가 전부 성공인데 못 받는다는 문의를 응답 확인과 단계 분리로 풀어낸 기록이다.
-
데이터로 가르는 책임 소재
(수정됨)입력 분쟁을 데이터로 판정하기 전에 저장 순서를 코드로 확인하고, 근거를 회신에 함께 적은 기록이다.
-
다른 곳에 있던 방아쇠
(수정됨)취소 코드에 없던 외부 전송의 호출 지점을 역추적하고, 구조적으로 불가능한 건을 회신으로 닫은 기록이다.
-
이름이 같은데 다른 것
(수정됨)같은 이름의 분류가 두 트리에 병존하던 상황에서 이름 기반 판단을 버리고 최소 변경으로 해결한 기록이다.
-
복제가 데려가야 하는 것들
(수정됨)상품 복제에서 무엇까지 복제할지를 정하고, 그대로 두면 안 되는 값과 분류 강제까지 다룬 기록이다.
-
한 겹 대신 여러 겹
(수정됨)화면 한 겹으로 막던 권한을 층마다 다르게 나누고, 두께와 조회 비용을 분리해 다룬 기록이다.
-
고치다 떨어뜨린 검증분
(수정됨)외주 개발자용 이관 지시서가 반복 실패한 원인이 대상이 아니라 내 재작성 과정에 있었던 경위와, 그 뒤에 표준으로 삼은 대조 절차다.
-
게이트가 둘일 때의 절반 통과
(수정됨)내부 상태와 외부 전송을 각각 통제하는 두 플래그를 확인하고, 진단에서 배제한 것까지 남긴 기록이다.
-
검색으로 안 잡히는 잠금
(수정됨)갱신 코드가 없는데 발생하던 잠금 경합의 원인을 제약조건에서 찾고, 진단 순서와 결함의 층을 정리한 기록이다.
-
무엇을 허용해야 하나
(수정됨)허용 목록의 대상을 프록시에서 목적지로 바꾸고, 실제로 막는 계층이 어디인지까지 확인한 기록이다.
-
연동 방향을 먼저 확인한다
(수정됨)이름이 맞아 보이는 연동 후보의 흐름이 반대였던 사례와, 사용 현황을 설정 수가 아닌 이력으로 세게 된 근거다.
-
후처리를 어디에 넣나
(수정됨)두 단계로 나뉜 처리에서 완료 시점을 다시 잡고, 경로마다 다른 갱신 조건을 전제로 쓰는 방법을 정리했다.
-
한 번도 채워진 적 없는 컬럼
(수정됨)이름과 주석이 맞는 컬럼이 실제로는 죽어 있던 사례에서, 사용 여부 판정과 정리 대상 관리 방식을 정리했다.
-
돌아가는 서비스의 컬럼을 암호화하며 정한 순서
(수정됨)서비스를 멈추지 않고 평문 컬럼을 암호화하기 위해 검색 요건과 단계와 키 보관을 각각 나눠서 정한 기록이다.
-
정규식 파싱이 놓치는 설정 형식
(수정됨)설정 값을 정규식으로 뽑을 때 형식 차이가 만드는 빈 값과, 그 빈 값이 기본값으로 동작하는 위험을 정리했다.
-
규격 대조가 배제한 원인 후보
(수정됨)위임 전 규격 대조로 원인 후보 하나를 배제하고, 그 과정에서 결과물의 생성 알고리즘까지 확정한 기록이다.
-
조건을 더해도 인덱스를 못 타는 형태
(수정됨)인덱스가 있는데도 전체를 읽는 조건의 형태를 다섯 갈래로 나누고, 각각의 대응과 확인 순서를 정리한 과정이다.
-
무한 반복이 된 자동 재시작
(수정됨)두 계층이 함께 살리던 컨테이너의 무한 재시작을 정리하면서, 죽는 원인과 상한과 종료 코드까지 함께 다룬 과정이다.
-
목록에 섞여 있던 내부 API
(수정됨)무한 스크롤 때문에 브라우저가 필수라고 보던 설계를 요청 관찰로 뒤집고, 직렬화 제약을 없앤 과정이다.
-
이미지 하나에 서빙 경로 셋
(수정됨)본문에 박히는 이미지 주소가 프록시 경유임을 확인하고, 등록 시점에 고정되는 주소가 만드는 영구 의존과 그 대안을 정리한 과정이다.
-
깨끗한 것과 최신인 것
(수정됨)인계 문서의 워킹 트리 깨끗이라는 관측을 최신으로 읽었다가 낡은 클론임을 확인하고, 승인된 조치를 다시 정한 과정이다.
-
이력이 없는 정상 흐름
(수정됨)환불 이력이 없는 것을 누락이 아니라 미기록으로 설명하고, 이력을 만드는 근본 대응 전에 정산 영향을 먼저 확인한 과정이다.
-
강제한 인덱스가 만든 지연
(수정됨)옵티마이저가 인덱스를 안 쓰는 이유를 매칭 건수로 확인하고, 강제 대신 복합 인덱스로 푼 뒤 강제를 마지막 수단으로 둔 과정이다.
-
설정 옆에 근거를 적는다
(수정됨)기본값에서 바꾼 열 개 설정에 값과 근거를 함께 적고, 태그로 커스텀 항목을 구분해 전수 확인이 되게 만든 과정이다.
-
같은 성공 경로의 다른 응답
(수정됨)결과가 없을 때만 다른 형태를 돌려주던 코드를 고치고, 반환 타입과 결과 객체로 호출부의 확인을 강제한 과정이다.
-
값을 비워도 남는 것
(수정됨)값을 비우면 해결된다는 제안을 백 건 남짓을 여러 축으로 쪼개 무너뜨리고, 문제가 우리 쪽이 아니라 외부와의 불일치임을 확정한 과정이다.
-
등식을 만드는 중복 제거 위치
(수정됨)백테스트가 다른 신호를 잴 위험을 중복 제거 위치 확인으로 닫고, 그 등식을 깨뜨릴 리팩터링을 주석으로 막은 과정이다.
-
할인 셋, 저장소 셋
(수정됨)할인 세 종류를 가르고 담당자 소속으로 판별하되 판별이 막히는 건은 분포로 우회해, 정상 설정을 지우지 않은 과정이다.
-
음수 재고가 실재한다
(수정됨)재고가 0인지 비교하던 조건을 그대로 옮기려다 음수 재고의 실재를 세어 확인하고, 합계가 실체를 왜곡하는 구조까지 정리한 과정이다.
-
기록을 정정한 실측
(수정됨)기존 문서의 분류 개수와 식별자에 대한 비판이 실측과 달랐던 것을 확인하고, 비로그인 검증으로 계정 위험 없이 구조를 확정한 과정이다.
-
옮길 것이 없는 이관
(수정됨)매핑을 컬럼에서 못 찾아 스키마에서 테이블을 검색해 찾고, 73건 중 66건이 옮길 대상 자체가 없다는 것을 확인한 과정이다.
-
조회 경로를 정하는 컬럼
(수정됨)월별 조회 엔드포인트를 설계하면서 컬럼 위치와 인덱스가 조회 경로를 정하고 용도에 따라 기준 축이 갈린다는 것을 확인한 과정이다.
-
청크마다 반복되는 즉시 로딩
(수정됨)메모리를 줄이려 나눈 청크가 쿼리를 다섯 배로 늘린 것을 확인하고, 프레임워크 소스로 호출 순서까지 확정한 과정이다.
-
옮기기 직전 상태의 기록
(수정됨)이관 후 느려졌다는 말에 비교할 값이 없던 경험 뒤로, 옮기기 전 다섯 항목을 재고 그 기록이 되돌릴 때도 쓰인 과정이다.
-
대상마다 다른 저장 자리와 형식
(수정됨)채널마다 다른 것이 열네 곳에 흩어져 있던 것을 한 줄짜리 규격 표로 모으고, 종료된 채널까지 다루는 방법을 정리한 과정이다.
-
채널 이름 하나, 시스템 둘
(수정됨)확인 없이 답했다가 재조사해 한 채널 이름 아래 클라이언트가 둘임을 찾고, 어느 쪽이 사는지는 로그로 확정한 과정이다.
-
뼈대 비교로 공통 뽑기
(수정됨)비슷한 산출물이 여럿이면 뼈대를 비교해 공통을 뽑는다.
-
이름으로 리소스를 판단하지 않는다
(수정됨)자동 감사가 뽑은 정리 후보 셋이 전부 반대였던 것을 정정받고, 감사 결과를 확인 필요 후보로 내는 형태로 바꾼 과정이다.
-
검색 결과와 DB가 다를 때
(수정됨)검색 전용 색인을 따로 두면서 생긴 어긋남의 순간들을 유형별로 다루고, 밀림 감지와 무중단 재색인까지 정리한 과정이다.
-
실제로 읽히던 두 컬럼
(수정됨)연관 다섯 테이블을 같이 고칠 뻔했다가 전송 코드가 읽는 컬럼만 확인하고, 게이트로 오해할 뻔한 플래그까지 확인한 과정이다.
-
같은 증상의 네 가지 모양
(수정됨)취소 대기 292건을 채널과 주문별로 분해해 원인이 셋으로 갈린 것을 확인하고, 대응을 각각 다르게 잡은 과정이다.
-
안정성을 정하는 드라이버 계층
(수정됨)설정 화면만 보고 다 봤다고 한 뒤 드라이버 계층을 빠뜨렸다는 지적을 받고, 워크로드에 따라 권고가 반대인 항목까지 정리한 과정이다.
-
중복을 만드는 철회 후 재요청
(수정됨)주문 중복이라는 문의를 클레임 전이 이력에서 풀고, 코드 미확인 부분을 미검증으로 표시한 과정이다.
-
커밋과 배포 사이
(수정됨)커밋 존재만으로 배포를 판단하지 않고 코드와 이미지 빌드 시각과 외부 실적 세 축을 교차해, 과제 자체를 다시 가른 과정이다.
-
인증처럼 보이는 범위 불일치
(수정됨)등록만 성공하고 수정과 중지만 실패하는 패턴을 조회 범위 불일치로 확정하고, 잠재 대상 1,300여 건까지 센 과정이다.
-
우리 밖에서 끝난 결제
(수정됨)브라우저 복귀에만 의존하던 결제 완료 처리를 서버 통보와 사후 조회까지 세 겹으로 만들고, 대조와 실패 기록까지 붙인 과정이다.
-
unstable에서 패키지 하나만 가져온다
(수정됨)벤더 저장소에 맞는 계열이 없어 불안정 계열을 쓰되 출처 한정 핀으로 번짐을 막고, 그 판단의 근거를 실측으로 붙인 과정이다.
-
컬럼 값과 정책의 대응표
(수정됨)숫자만 있는 컬럼에 딸린 정책을 표로 적으며 코드와의 불일치를 찾고, 정책에 적용 시점을 넣어 과거 재계산까지 맞춘 과정이다.
-
외부 서비스 키의 소유 프로젝트
(수정됨)용도를 모르는 외부 서비스 키 다섯을 앞자리 대조와 사용 기록으로 가려내고, 지우기 전에 막아 보다 숨은 실패를 발견한 과정이다.
-
드롭다운에서 조용히 사라지는 항목
(수정됨)가장 유력한 가설을 컨트롤러와 동일한 쿼리로 배제하고, 원인을 못 찾은 조사도 종결 리포트로 남긴 과정이다.
-
원인을 확정한 시각 뭉침
(수정됨)사전 스냅숏 없이 갱신 시각 분포만으로 전송 기인성을 확정하고, 무사고 실적을 안전 근거로 삼지 않기로 한 과정이다.
-
상태 변경 하나가 만든 수만 건
(수정됨)건별로 맞는 관찰자 동작이 대량 처리에서 건수만큼 반복돼 필요 없는 작업 12만 건을 만든 것을 고친 과정이다.
-
원인이 아니었던 회귀
(수정됨)메모리 초과의 범인으로 지목한 변경이 전체의 8퍼센트뿐임을 실측으로 확인하고, 겨냥할 대상을 비중으로 다시 정한 과정이다.
-
둘을 빠뜨린 하드코딩 목록
(수정됨)한 건 문의에서 시작해 저장소에 없는 일회성 배치의 하드코딩 목록 누락을 찾고, 전사 5천여 건 규모를 확인한 과정이다.
-
저장된 값은 다음 배포용이다
(수정됨)설정 어긋남 검사기가 지금 상태가 아니라 다음 배포 후 상태를 보고 있다는 지적을 받고, 검사가 못 잡는 범위까지 명시한 과정이다.
-
값은 같고 중복은 아닌 것
(수정됨)값이 전부 같아 중복으로 보이던 취소 두 건이 서로 다른 라인의 것이었음을 피벗 매핑으로 확인하고, 앞선 판단까지 정정한 과정이다.
-
다시 돌지 않은 초기화 스크립트
(수정됨)값을 바꿔 재실행을 유도하는 흔한 기법이 통하지 않은 이유를 갱신 방식에서 찾고, 이전 관찰의 한계까지 함께 적은 과정이다.
-
이상이 아니었던 0행
(수정됨)백업 스냅숏에서 나온 예상 밖의 두 값을 각각 확인해 정상임을 밝히고, 그 판단을 반복 배치의 기록으로 남긴 과정이다.
-
설정이 쌓인 층의 지도
(수정됨)고쳐도 안 바뀌던 설정의 출처를 여섯 층으로 그려 찾고, 층마다 무엇을 둘지 정해 겹침을 줄인 과정이다.
-
하위 할인을 지우는 상위 수정
(수정됨)전 필드 복사 전파가 할인 없음까지 전파해 하위 할인을 지우는 구조를 확인하고, 정책을 먼저 정해야 한다는 결론까지 낸 과정이다.
-
프로젝트별 설정 차이를 비교했다
(수정됨)여러 Laravel 프로젝트의 환경 설정을 키 단위로 모아 비교하고, 공통으로 뺄지 그대로 둘지를 정한 기록이다.
-
처음 보는 대형 코드베이스를 읽는 순서
(수정됨)문서 없는 수천 개 파일을 전부 읽을 수 없어서 데이터와 진입점과 한 흐름과 이력과 오류 순으로 읽는 순서를 정한 과정이다.
-
끝난 것과 남은 것의 한자리
(수정됨)끝난 것만 보고해 다 됐냐는 질문에 답을 못 한 뒤, 지금 상태와 되돌림 비용과 완료 예정일을 한 표에 담은 과정이다.
-
맞는 것을 확인하는 헬스체크
(수정됨)후속으로 미뤄 둔 검증이 실은 선행 조건이었다는 지적을 받고, 하나의 엔드포인트로 게이트와 동작 검증과 로그 노이즈를 함께 해결한 과정이다.
-
헬스체크가 닿지 않는 프록시 포트
(수정됨)대상 유형 선택이 클라이언트 IP 보존을 가르고 포워드 프록시에는 일반 헬스체크를 못 보낸다는 것을 확인해, 설계 결정을 줄줄이 정한 과정이다.
-
장애 전환 지연 공식
(수정됨)네 설정값을 하나의 공식으로 묶어 최악 전환 지연을 계산하고, 대칭 설정과 기본 계정 삭제까지 함께 정리한 과정이다.
-
직접 접속이 아니었던 구성
(수정됨)연결 거부를 네트워크 문제로 보고 뒤지다 대상이 호스트 포트를 게시하지 않는다는 것을 확인하고, 인프라의 일관된 패턴을 따른 과정이다.
-
반증된 가설과 막힌 검증 경로
(수정됨)결정적 표본으로 가설을 반증하고 새 가설의 검증 경로마저 막힌 상태를 그대로 기록해, 다음 사람의 할 일을 정한 과정이다.
-
상한을 산술로 계산한다
(수정됨)발동한 적 없는 안전망을 표본과 산술 상한 양쪽으로 확정해 제거하고, 표본 편향을 중간에 잡아낸 과정이다.
-
백로그를 만든 스킵 규칙
(수정됨)애매하면 스킵한다는 안전해 보이는 규칙이 정상 건을 영구 미처리로 만든 것을 과거 성공 사례 조회로 확인한 과정이다.
-
부분 일치가 인덱스를 못 탔다
(수정됨)상품명 부분 일치 검색이 인덱스를 못 타 느리던 것을, 복합 인덱스 조정과 OpenSearch 이관을 비용까지 놓고 견줘 정한 기록이다.
-
채널 라벨과 우리 모델의 거리
(수정됨)가능하다고 답한 정합 전환이 상태 모델의 전제 때문에 불가능함을 확인하고 정정 회신하면서, 라벨 불일치의 처리 방법을 정리한다.
-
비활성화된 버튼을 우회하지 않는다
(수정됨)화면에 없는 기능을 API로 직접 부르려다 이력에서 의도적 비활성화를 확인하고, 그 이유를 백엔드 코드로 검증한 과정이다.
-
SSE 프록시와 WebSocket 프록시의 차이
(수정됨)주기적으로 끊기던 스트리밍 연결의 원인을 다른 프로토콜용 설정 복사에서 찾고, 계층별 타임아웃까지 정리한 과정이다.
-
영역마다 다른 이관 진행
(수정됨)몇 달째 진행 중이던 이관을 영역별 표로 갈라 담당 공백과 임시 연결과 막힌 영역까지 드러낸 과정이다.
-
돌고 있던 폴백
(수정됨)두 테이블을 다 고치려던 것을 응답 계산부를 읽어 하나로 줄이고, 원본을 안 건드리는 것이 안전이라는 점까지 정리한다.
-
코드 체계 교체에 필요한 대응표
(수정됨)단계 수부터 다른 새 분류 체계로 옮기면서 관계 종류를 담은 대응표를 만들고, 전환 뒤에도 그것이 자산으로 남은 과정이다.
-
교집합에 하나뿐인 버전
(수정됨)손으로 쌓인 패치 스택의 이유를 의존 요구 범위의 교집합에서 찾고, 실제 설치로 확정한 뒤 패치를 전부 없앤 과정이다.
-
값과 판정을 같이 고친다
(수정됨)이름 정정 로직을 넣었는데 복구가 안 된 원인을 앞단 판정에서 찾고, 아무것도 없는 대상으로 통과한 사전 실행까지 짚은 과정이다.
-
안 보이는 주문 유형
(수정됨)주문 조회 API가 특정 유형을 아예 반환하지 않는다는 것을 문답에서 찾고, 연동 구조에 미치는 영향까지 정리한 과정이다.
-
저장할 것과 조회할 것
(수정됨)장비 작업 레코드에 설정 값을 담을지 참조만 담을지를 도메인 기준으로 정하고, 참조가 여는 문제까지 다룬 기록이다.
-
토큰이 만료되고 아무도 안 알려 준다
(수정됨)포팅 중 인증 계층을 훑으며 코드가 처리하는 만료와 사람이 처리해야 하는 만료를 갈라 표로 만들고, 달력과 알림으로 나눠 대응한 기록이다.
-
큐를 공유하는 컨슈머
(수정됨)성격이 다른 ffmpeg 작업이 한 큐를 공유해 서로를 막던 구조를 소요 시간 기준으로 나누고 그 대가까지 정리했다.
-
조용히 무시되는 설정 키
(수정됨)Redis 데이터베이스 번호를 정하는 비슷한 설정 키 셋 중 조용히 무시되는 것을 쓴 사례에서, 경고 없음이 근거가 안 되는 이유를 정리했다.
-
넘기기 전 확인 목록
(수정됨)유지보수 계약이 끝난 서비스를 넘기면서 확인한 것과 못 한 것을 나눠 적고, 결정의 이유와 함께 돌려 보는 절차까지 붙인 기록이다.
-
두 번 도착한 메시지
(수정됨)처리를 ActiveMQ 큐로 미루면서 새로 생긴 중복 배달과 순서와 지연 문제를 각각 어떻게 다뤘는지 정리했다.
-
한 곳뿐이던 메시지 중계
(수정됨)ActiveMQ 한 대의 재시작으로 붙은 서비스가 전부 멈춘 뒤, 견디는 쪽과 failover 목록과 복제 범위와 재시작 절차를 정리했다.
-
다음 사람에게 남기는 것
(수정됨)계약이 끝나 넘길 시스템의 인계 문서를 쓰면서 무엇을 어디에 적을지와 다 못 채운다는 전제로 순서를 정한 기록이다.
-
다루지 않은 토큰 만료 시점
(수정됨)장비 에이전트를 JWT 인증으로 바꾼 뒤 만료 시점에 전부 실패한 원인을 정리하고, 선제 갱신과 실패 분류까지 다룬 기록이다.
-
양쪽을 다 읽는 이관
(수정됨)ASP.NET 의 정산 기능을 CodeIgniter 로 옮기면서 양쪽 방식 차이를 표로 잡고, 옛 결과와 대조해 무엇을 지킬지 정한 기록이다.
-
아무도 안 보는 보고서
(수정됨)인수한 시스템에서 몇 해째 나가던 일일 요약 메일이 읽히는지 확인하고, 알림과 보고서를 갈라 빈도와 내용을 다시 잡은 기록이다.
-
플래그로 시작해 테이블이 됐어야 했다
(수정됨)회원 예외 하나에 컬럼을 만들었다가 조합에 무너진 구조를 예외 테이블로 옮기면서, 전환 시점의 기준을 정한 회고다.
-
주인이 없는 시스템을 받았을 때
(수정됨)만든 사람이 없는 미디어 시스템을 인수하면서 돌고 있는 것을 명령으로 먼저 세고, 모르는 것을 모른다고 남긴 기록이다.
-
파일이 커지면 깨지는 것들
(수정됨)포팅 중인 PHP 서비스의 큰 파일 업로드가 계층마다 걸리는 지점을 한 번에 훑고, 스트림과 분할 업로드와 정리 규칙까지 정리했다.
-
큐 구성이 바뀌자 소비가 멈췄다
(수정됨)인수받은 미디어 시스템에서 큐 구성을 바꾼 뒤 일부 컨슈머가 조용히 멈춘 것을, 문서와 실제 동작을 대조하며 우회한 기록이다.
-
다른 런타임으로 옮길 때 먼저 보는 것
(수정됨)ASP.NET 서비스를 CodeIgniter 로 옮기면서 코드보다 경계가 작업량을 정한다는 것을 확인하고 순서를 세운 기록이다.
-
설정은 같고 노드 조합만 다르다
(수정됨)설정이 같은 nginx stream 포트 셋이 존재하는 이유를 상대의 허용 IP 개수에서 찾고, 신규 연동 절차와 전환 제약을 정리했다.
-
계획을 깬 정상 메서드
(수정됨)콘텐츠 분류 코드를 먼저 바꾸고 장비 전송은 나중에 하려던 계획이 서비스 계층의 부수효과로 깨진 이유와 대응이다.
-
메모리를 쓰는 자리
(수정됨)메모리를 많이 쓰는 Python 집계 배치에서 추측한 원인의 기여를 분리해 재고, tracemalloc 의 범위와 최대치·증분의 뜻까지 정리했다.
-
죽여도 다시 뜬다
(수정됨)cron 이 띄우는 ffmpeg 변환 배치를 멈추려다 실제 정지 조건과 복구 순서를 다시 잡고, 프로세스 검색 자체의 오염까지 걸러낸 기록이다.
-
옵티마이저가 안 쓰는 인덱스
(수정됨)status 컬럼이 복합 인덱스에 들어 있는데도 안 타던 이유를 선두 컬럼에서 찾고, 조회 빈도로 대응을 고른 기록이다.
-
배치가 정상 경로와 같은 상태를 만들어야 한다
(수정됨)콘텐츠 표의 잘못 남은 값을 서비스 계층을 우회해 정리하는 배치를 짜기 전에 정상 경로가 남기는 것을 세고, 콘텐츠와 현장 배포본의 차이까지 맞춘 기록이다.
-
여러 장비에서 유지한 같은 구조
(수정됨)맥과 리눅스 장비 셋의 저장소 경로와 sed 옵션 차이를 한 구조로 맞추고, 어긋남을 확인하는 습관과 장비별 역할까지 정리했다.
-
옮길 것의 명시 목록
(수정됨)인수한 서비스를 새 서버로 전부 옮긴다는 말로 시작한 이관에서 빠진 것이 닷새 동안 나온 뒤, 목록을 명령으로 뽑아 다시 세운 기록이다.
-
무상태 환경에서 파일에 쓰면
(수정됨)배포 대기 중인 기능이 컨테이너 안 JSON 파일에 값을 저장하고 있던 것을 찾고, 저장소의 선례를 재사용하며 남은 작업을 다시 나눈 기록이다.
-
우리는 중지했는데 저쪽은 재생 중
(수정됨)중앙의 중지 상태와 현장 장비의 실제 재생이 어긋난 원인을 작업 이력에서 찾고, 정리 절차에 성공 확인 단계를 넣은 기록이다.
-
동시에 실패했다고 원인이 같지 않다
(수정됨)여러 현장의 장비 기록 수집이 동시에 실패한 원인을 공통 수집기가 아니라 값의 출처 역추적으로 좁힌 기록이다.
-
스펙과 다른 API에 맞추기
(수정됨)장치 제조사 클라우드 API 의 어댑터를 짜기 전에 실제 응답을 여러 번 받아 문서와 어긋나는 지점을 목록으로 만든 과정이다.
-
설정 파일마다의 역할
(수정됨)인수한 Java 서비스에 properties 파일이 여섯 개일 때 무엇이 이기는지 확인하고, 역할과 비밀 값 처리와 시작 검사를 정리한 기록이다.
-
저장소가 아니었던 도메인
(수정됨)코인 로고 주소의 도메인을 오브젝트 스토리지 버킷으로 착각해 헤맨 조사에서 확인 순서를 세우고, 업로드 누락과 변환 실패를 갈라낸 기록이다.
-
소유를 가르는 값
(수정됨)앱에 내장한 장치 프리셋과 사용자가 만든 프리셋을 이름 접두어로 가르던 구조가 깨진 사례와, 소유를 컬럼 값으로 옮기면서 중간 성격까지 다룬 기록이다.
-
200이 성공을 뜻하지 않는다
(수정됨)은행 조회 API 가 오류를 200 응답의 본문에 담아 보내서 검사를 전송 계층과 응용 계층으로 나누고, 호출 한도와 문자 코드까지 확인한 기록이다.
-
같은 거부의 두 원인
(수정됨)신분증 이미지를 외부 확인 업체에 보내다 같은 거부 메시지 아래 원인이 둘이었던 사례에서, 부류별로 나눠 세고 부분 해결을 그대로 보고한 기록이다.
-
상한치는 수요가 아니다
(수정됨)외부 연동을 새 브랜드로 옮기는 순서를 정하려고 라우트의 throttle 값을 쓰려다, 그 값이 무엇을 재는지 확인하고 한계까지 함께 남긴 기록이다.
-
다시 만들면 멀쩡하던 것도 달라진다
(수정됨)거래소 일별 통계 표를 전 기간 다시 만들고 백업과 비교하다 바이트 비교가 거짓 경보만 내는 것을 보고, 구조 축과 변동폭 축으로 판정을 다시 세운 기록이다.
-
처리 단계의 모듈 구성
(수정됨)ffmpeg 명령 하나에 뭉쳐 있던 상품 영상 처리를 단계로 갈라 프레임이 빠지는 자리를 좁히고, 입력 다양성까지 확인한 기록이다.
-
자동으로 채워지지 않는 데이터
(수정됨)CoinSyncJob 을 돌려도 안 늘어나는 network 값의 출처를 추적해 자동화 경로가 없다는 사실 자체를 설계에 못 박은 기록이다.
-
로그의 경로를 바꾸면 없던 일이 생긴다
(수정됨)서버 이전 뒤 배포 경로 일괄 치환의 대상이 코드와 설정뿐인 이유와, 되돌릴 수 없는 로그 치환을 가려내는 순서를 정리했다.
-
로그인과 인증 사이
(수정됨)관리 콘솔의 로그인과 API 인증이 분리돼 고정 토큰으로 호출하던 구조를 확인하고, 리브랜딩 계획서의 부정확한 표현을 바로잡은 기록이다.
-
브로커를 완충재로 쓸 때
(수정됨)완충 목적의 ActiveMQ 큐에서 QueueSize 절대값 알림이 계속 울린 이유와, 유입·처리 관계와 대기 시간으로 지표를 바꾼 과정이다.
-
세션보다 오래 사는 토큰
(수정됨)모바일 앱 API 의 JWT 인증에서 로그아웃이 성립하지 않는 이유와, 갱신 토큰 분리와 회전으로 그 간극을 다룬 기록이다.
-
체인을 이긴 관계 테이블
(수정됨)외부 거래소 계정 연결 체인을 고쳤는데도 옛 API 키로 나가던 원인을 오버라이드 테이블의 폴백 구조에서 찾고, 점검 순서를 다시 정한 기록이다.
-
블루투스로 장치를 제어하는 앱을 만들며 배운 것
(수정됨)연구과제 제안 전 BLE 프로토타입 앱을 만들며, 서버를 거치지 않고 앱이 장치와 직접 통신할 때 전제가 어떻게 달라지는지를 다섯 갈래로 정리했다.
-
인용한 목록이 그 목록이 아니다
(수정됨)지갑 노드 감시 요약에서 application.yml 목록과 실제 순회 대상이 달랐던 사례로 커버리지 진술을 바로잡고, 감시의 한계까지 정리했다.
-
일곱 달 요청과 한 달치 로그
(수정됨)Docker 로그 회전과 Elasticsearch 보존 정책이 조사 범위를 정한다는 것을 확인하고, 확인 불가를 결론으로 적으면서 다른 소스를 찾은 과정이다.
-
컬럼 하나로 답이 안 나온다
(수정됨)체결의 정산 반영 여부를 settlement_id 컬럼 하나로 판정하려다 경로가 셋인 것을 확인하고 판정 규칙을 다시 세운 기록이다.
-
들여왔다고 켜진 게 아니다
(수정됨)Hibernate 의 @SQLDelete 소프트 삭제가 켜진 줄 알았던 엔티티가 실제로는 하드 삭제였던 사례와, 우회 삭제 절차를 정리했다.
-
한쪽만 막으면 다른 쪽으로 샌다
(수정됨)수수료 정책 전파에 확인 절차를 붙이다 같은 이벤트를 내는 둘째 저장 경로를 찾고, 경로를 빠짐없이 세는 방법을 정리했다.
-
표본에 섞인 삭제 표시
(수정됨)푸시 토큰 무작위 표본이 실제와 다른 값을 낸 이유를 deleted_at 에서 찾고, 조건이 빠질 자리를 구조적으로 없앤 과정이다.
-
스스로 정할 범위의 경계
(수정됨)프리랜서 건에서 다음 할 일을 매번 고객사에 묻느라 멈추던 시간을 없애기 위해 결정 범위와 BACKLOG 목록과 끼어들기 규칙을 정한 기록이다.
-
초기값 상수가 라우팅을 정한다
(수정됨)텔레그램 알림 봇에서 조건부 삽입 때문에 낡아도 증상이 안 보이던 chat_id 초기 데이터 상수를 정리하고, 주석을 규칙으로 바꾼 기록이다.
-
방금 넣은 걸 못 읽는다
(수정됨)MaxScale 로 읽기와 쓰기가 갈린 구성에서 삽입 직후 조회가 간헐적으로 실패한 이유를 세션 단위까지 내려가 확인한 기록이다.
-
부수효과를 원하는지로 도구를 고른다
(수정됨)주문 상태 일괄 정정에서 JPA 리스너 발화가 2차 사고가 되는 구조를 보고, 도구 선택 기준을 전파 의도 하나로 정리했다.
-
검증과 매핑이 다른 필드를 본다
(수정됨)코인 조회 응답을 등록 요청으로 쓸 수 없던 이유와, 코드 추론보다 request_logs 의 실제 성공 요청이 권위 있는 답인 근거다.
-
두 곳에 살아 있던 매핑
(수정됨)외부 거래소 주문 상태 매핑이 코드 enum 과 테이블에 각각 있어 서로 다른 항목을 누락하던 구조와, 그 어긋남을 다루는 방법이다.
-
문서에 없고 동작에만 있는 규칙
(수정됨)외부 거래소 주문 취소 연동에서 문서에 없는 규칙을 관측으로 모으고, 그 목록을 다른 사람에게 대조받은 과정이다.
-
부르지 말고 로그로 확인한다
(수정됨)은행 API 로 나가는 프록시 경로를 검증용 호출 대신 이미 흐르는 트래픽의 로그로 확인하고, 판정 기준을 먼저 정한 기록이다.
-
이미 있던 길
(수정됨)시세 제공사 분류 매핑에서 불가능하다고 답하려던 문의가 데이터 분포를 보고 뒤집힌 과정과, 그 뒤에 남은 활성 여부 확인을 정리했다.
-
억지 대분류와 번호 접두의 배제
(수정됨)개발본부 문서 공간에서 미리 만든 대분류가 안 맞아 기타로 몰린 구조를 실제 갈래로 다시 잡고, 번호 접두와 깊이를 정리한 기록이다.
-
망 안에 없으면 제약이 반대가 된다
(수정됨)서버리스 알림 함수가 어느 VPC 에도 붙어 있지 않다는 사실에서 기능 배치와 이벤트 보존 기간을 도출한 과정이다.
-
수락했지만 실행은 못 한다
(수정됨)출금 요청을 받는 조건과 워커가 처리하는 조건이 갈려 있어 실패가 뒤로 밀리던 구조를 버튼 노출 조건까지 올려 맞춘 기록이다.
-
완료가 끝났다는 뜻이 아닐 때
(수정됨)원화 입금 미처리 전수조사에서 실패 표시만 훑다 놓친 부류를 찾고, 판정을 상태값이 아니라 장부 기록의 존재로 바꾼 과정이다.
-
착수 전에 미해결을 세어 본다
(수정됨)모바일 앱용 API 를 붙이기 전에 설계 문서와 코드를 대조해 미해결 여섯 항목을 세우고, 전부 닫지 않고 수직 슬라이스로 착수한 기록이다.
-
이름만으로 판정하지 않은 파일
(수정됨)이름 충돌만 보던 KYC 서류 업로드 저장에 SHA-256 해시와 서명 검사와 저장 확인을 순서대로 붙인 과정이다.
-
다시 하려면 무엇이 0이어야 하나
(수정됨)명품몰 일괄 등록의 반복 테스트를 위해 중복 검사 조건을 읽고, 참조 역순 삭제와 공유 자원 확인까지 절차로 만든 기록이다.
-
검색이 만든 목록과 요구사항의 거리
(수정됨)리브랜딩으로 관리자 콘솔을 새로 만들며 기능 목록을 코드에서 뽑았을 때 빠지는 것과 남는 것을 로그와 관찰로 메운 과정이다.
-
화면에 없고 전송에는 있던 값
(수정됨)명품몰 화면 목록과 몰 플랫폼 전송 목록이 각자 다른 조건을 쓰고 있던 사례에서, 잔재를 가르는 기준과 삭제 절차를 정리했다.
-
고정값인 줄 알았는데 매번 다시 만든다
(수정됨)시세 제공사에 보내는 마켓 분류를 직접 바꾸려던 우회안의 전제를 코드로 확인하다 정반대 사실을 찾고, 그 사실을 이점으로 뒤집어 쓴 과정이다.
-
저장된 필드의 의미를 바꾸면
(수정됨)일별 거래 통계의 volume 필드 의미를 건수에서 거래대금으로 바꾸는 변경이 과거 데이터에 남기는 문제와 세 선택지를 정리했다.
-
구조만 보고 한 분류의 오류
(수정됨)스토리지 이전 준비에서 확장자와 크기로 나눈 영상 분류가 어긋난 이유와, ffprobe 로 내용을 읽는 비용을 감당하면서 정확도를 올린 방법을 정리했다.
-
스키마 변경은 코드 배포가 아니다
(수정됨)Jenkins 병렬 배포에서 Flyway 마이그레이션이 한 서비스에서만 도는 구조를 확인하고, 스키마 적용을 배포에서 분리한 기록이다.
-
확정과 제안의 표시 구분
(수정됨)코로케이션 전환 설계 문서에서 확정과 제안과 미정을 표시로 나누고, 추정과 뒤집힌 결정까지 남긴 기록이다.
-
같은 종류 작업의 같은 모양
(수정됨)병행하는 프리랜서 건 넷을 각기 다른 형태로 적다가 STATUS.md 한 틀로 통일하고, 막힌 것과 결정을 분리해 관리한 기록이다.
-
있다는 것이 맞다는 것은 아니다
(수정됨)썸네일 이름의 존재만 확인하던 점검이 치수 불일치를 통과시킨 사례에서 검사 축을 나누고, 차이와 결함을 구분한 기록이다.
-
이미 복구돼 있던 상태
(수정됨)헤지 취소 실패 기록만 보고 장애로 판단할 뻔한 건에서 재시도 구조를 확인하고, 복구 구간의 가시성 문제를 남긴 기록이다.
-
느린 것이 아니라 줄 선 것
(수정됨)CPU 에 여유가 있는데 느리던 상품 이미지 등록을 순차 업로드 구조에서 찾고, 주석의 근거를 실측으로 확인한 기록이다.
-
한 레이어만 보면 답이 안 나온다
(수정됨)주문 상태와 외부 거래소 헤지 연동 기록이 어긋난 건을 두 레이어로 나눠 보고, 회신 직전 재조회와 근본 대응까지 정리했다.
-
그 NULL이 정말 이상한가
(수정됨)멈춘 출금 건의 비어 있는 txid 가 원인처럼 보이던 건에서 정상 건을 대조군으로 세우고, 조치 전 확인 항목을 정한 기록이다.
-
변환은 즉시 끝나지 않는다
(수정됨)요청 안에서 미디어를 변환하던 구조를 큐로 분리하며 중간 상태와 실패 분류와 원본 보관을 어디까지 둘지 정한 기록이다.
-
스토어 심사가 실제로 보는 것
(수정됨)올해 초 Ionic 앱의 App Store 반려 사유가 기능이 아니라 설명과 확인 가능성이었던 경험에서 배포 경로와 일정까지 다시 잡은 기록이다.
-
늦게 대답하는 상대
(수정됨)외부 거래소 WebSocket 응답이 순서와 시간을 보장하지 않는다는 전제로 요청 id 와 타임아웃과 재시도 안전성을 다시 잡은 기록이다.
-
요약 한 줄과 상세 자료
(수정됨)일정산 배치의 텔레그램 알림 내용을 받는 사람의 판단 기준에 맞춰 다시 잡고, 긴급도와 중복 억제까지 정리한 기록이다.
-
다시 확인할 때는 다시 재었다
(수정됨)코로케이션 전환 준비로 서버 현황 문서를 갱신하면서 전부 다시 재고, 자동 수집과 수기 기록을 나눠 차이 자체를 신호로 만든 기록이다.
-
스트림이 살아 있는지 아는 법
(수정됨)데이터 없음과 연결 끊김이 구분되지 않던 체결 SSE 스트림에 주기 신호와 재연결 규칙과 순번 이어받기를 붙인 기록이다.
-
건너뛴 조건의 전체 목록
(수정됨)조용히 건너뛰던 추천 보상 정산 배치에 사유를 남기게 하고, 이유별 집계로 데이터 문제와 처리 방침까지 드러낸 기록이다.
-
인코딩된 이름이 실제 키가 되는 자리
(수정됨)오브젝트 스토리지 콘솔이 키를 디코딩해 보여 주는 바람에 판정이 틀렸던 조사에서, 원시 키 확인과 정상화 선택지를 정리했다.
-
파일명이 같아도 경로가 갈린다
(수정됨)복제한 상품의 이미지가 안 보이던 원인을 image_id 경로 규칙에서 찾고, 완료 판정을 파일 존재까지 넓힌 기록이다.
-
나갔다 오면 사라지던 진행률
(수정됨)에어드랍 배분 진행률을 SSE 한 채널에 상태 복원까지 얹었다가 재접속마다 화면이 비던 구조를 조회와 갱신으로 나눈 기록이다.
-
확인하려던 요청이 만든 것
(수정됨)썸네일 존재 확인 GET 요청이 지연 생성을 촉발해 관측이 무효가 된 사례와, 조회의 부수효과를 확인하는 순서를 정리했다.
-
0건 수집이 0건 존재는 아니다
(수정됨)De-Fi 수집 배치에서 401 인증 실패가 0건 수집으로 보이던 구조를 고치고, 실패 알림 대신 성공 부재 알림으로 바꾼 기록이다.
-
메시지 하나가 큐를 멈춘다
(수정됨)역직렬화 실패 한 건이 ActiveMQ 큐 뒤에 쌓인 전부를 막던 정지를 세 층위로 나눠 고치고, 발효 시점의 성질까지 정리했다.
-
보안 점검 항목을 우리 코드에 대 보면
(수정됨)OWASP Top 10 점검 항목을 거래소 코드에 하나씩 대 보면서 걸린 다섯 가지와 그 대응의 맞바꿈을 정리했다.
-
절반을 제외하던 도구
(수정됨)명품몰 상품 이미지 점검 도구가 전부 정상이라고 낸 결과의 범위를 확인하고, 제외된 상세 이미지를 별도 조회와 파싱으로 확인한 기록이다.
-
훅 입력에 없던 작업
(수정됨)git post-receive 훅 스크립트의 전제를 실제 입력으로 검증하다 제약 셋을 찾고, 조용한 오류의 성질을 정리했다.
-
있었는데 안 찾아본 것
(수정됨)재스테이킹 만기 정산이 미구현이라는 전제로 착수했다가 이미 도는 배치를 찾고, 없다와 안 된다를 갈라 범위를 다시 잡은 기록이다.
-
한 작업으로 묶는 기준
(수정됨)거래소 서버 다섯 대의 커널 패치를 한 작업으로 묶었다가 복제 DB 하나에 막혀 전체가 밀린 뒤, 묶고 나누는 기준을 정한 기록이다.
-
한도에 닿기 전에 정리하는 순서
(수정됨)Elasticsearch 필드 상한이 차서 새 지표가 안 들어가던 상황을 정리하고, 한도 목록과 사전 경고까지 만든 기록이다.
-
프리셋 분해로 얻은 속도
(수정됨)상품 이미지 변환에서 튜닝할 것이 없다고 단정했던 ImageMagick 프리셋을 개별 옵션으로 분해해 재고, 그 단정을 정정한 기록이다.
-
인덱스로 좁히고 나서 훑는다
(수정됨)max_execution_time 에 걸리던 작업 로그 검색을 선택도 순서로 풀고, 0을 확증하는 방법과 세대 교체 구조까지 확인한 기록이다.
-
막힌 것이 아니라 시작 안 한 것
(수정됨)De-Fi 연동 어댑터 구현이 없는 이유를 조사 부족으로 보고 조사 계획을 세우려다, 미착수임을 확인하고 스코프를 다시 잡은 기록이다.
-
메뉴와 코드의 차이
(수정됨)거래소 관리자 콘솔 점검에서 @GetMapping 구현 수와 menu.json 등재 수를 세고, 확인한 것과 세기만 한 것을 나눠 적은 기록이다.
-
요청 생성 이후의 남은 일
(수정됨)접수만 되고 처리가 멈춰 있던 구조에서 대기 감시와 워커 생존 감시를 나눠 붙인 기록이다.
-
전부를 막던 상태 코드 하나
(수정됨)네 코인의 출금 중지 이슈를 한 쿼리로 묶어 두 그룹으로 가르고, 캡처와 실제 상태의 시점 차이까지 확인한 기록이다.
-
로그를 모으는 데 드는 비용
(수정됨)ELK 로그 수집을 붙인 뒤 서버가 느려진 원인을 grok 파싱 위치에서 찾고, 보낼 것과 보관 기간과 장애 대응까지 정리했다.
-
큐에 넣는 쪽의 부재
(수정됨)수집 잡 코드가 전부 올바른데 아무것도 안 돌던 이유를 큐에 넣는 함수의 호출부 개수에서 찾고, 도달 가능성을 확인 순서로 만든 기록이다.
-
프로필을 나누자 로그인까지 갈렸다
(수정됨)브라우저 프로필을 나누자 로그인 세션까지 갈린 원인을 저장 위치에서 찾고, 계정 격리를 어디까지 할지 대가를 놓고 정한 기록이다.
-
마이그레이션이 두고 간 이력
(수정됨)회원 제재 이력이 이관에서 빠져 계속되는 수작업을 만든 구조를 확인하고, 증상 대응과 근본 해결을 함께 남긴 기록이다.
-
뒤 클레임을 막은 앞 상태
(수정됨)입금 생성 실패의 로그가 비어 있어 상태 데이터로 추론하고, 수집과 생성을 갈라 절차를 세우면서 추정 표기까지 남긴 기록이다.
-
화면의 삭제가 부르는 것
(수정됨)관리 화면의 삭제 버튼이 입금 승인 취소 API 의 조건부 호출이었던 사례에서, 조용한 실패와 실행 판단의 근거를 정리했다.
-
의도된 차이와 동기화 대상
(수정됨)보안 검토 중 두 PC 의 설치 프로그램 목록 차이를 맞추려다 용도를 확인하고, 유지할 차이와 동기화 대상으로 나눈 기록이다.
-
새 연동 뒤에도 남은 옛것
(수정됨)수수료 정책을 새로 활성화하면 끝날 줄 알았던 작업에서 버전 분기를 확인하고, 남은 두 단계를 절차로 만든 기록이다.
-
상대가 보는 하나뿐인 주소
(수정됨)은행 API 허용 IP 목록을 접속 빈도로 정리하려던 계획이 NAT 때문에 무너진 이유와, 판단 기준을 코드 경로로 바꾼 기록이다.
-
앱이 실제로 만드는 SQL로 봐야 한다
(수정됨)주문 검색에 인덱스를 넣고도 체감이 없던 이유를 앱이 실제로 만드는 SQL 에서 찾고, 거짓 전제와 조건 선택도까지 확인한 기록이다.
-
로그인 계정을 한 곳으로 모으면
(수정됨)시스템마다 흩어진 계정을 LDAP 한 곳으로 모으면서 남은 계정을 세고, 절차와 확인과 비상 경로까지 정리한 기록이다.
-
묻기 대신 밀어 주기
(수정됨)시세 화면의 주기적 조회가 부하와 신선도의 맞바꿈인 것을 확인하고 SSE 로 밀어 주는 구조로 바꾸면서 생긴 문제들을 정리했다.
-
선행 컬럼이 없으면 인덱스가 죽는다
(수정됨)체결 테이블에서 대량 스캔이 붙은 쿼리의 원인을 인덱스 정의와 대조해 찾고, LOCK=NONE 으로 인덱스를 추가한 기록이다.
-
서비스가 둘이면 나가는 길도 둘이다
(수정됨)은행 API 를 부르는 두 서비스의 나가는 경로가 프록시와 NAT 로 달랐던 사례와, 서버 정의와 소스와 망 설정을 순서대로 본 기록이다.
-
키가 아니라 인코딩된 값
(수정됨)문의에 적힌 출금 번호가 내부 키가 아니라 인코딩된 값이었던 사례에서, 판별 방법과 묶어 해석한 가정의 위험을 정리했다.
-
기준 미달과 음수는 다르다
(수정됨)스테이킹 정산 목록에서 카운트가 맞는데도 정의가 어긋나 있던 것을 샘플 행으로 잡아내고, 목록 검증 절차를 바꾼 기록이다.
-
검증기 둘의 교집합
(수정됨)차단 필터와 @Pattern 허용 목록, 성격이 반대인 검증 레이어 둘을 확인해 최종 허용 문자를 교집합으로 정리하고, 조건부 생략까지 담은 기록이다.
-
엉뚱한 곳을 고치던 성능 조사
(수정됨)거래소 자산 화면을 추측으로 최적화했다가 나아지지 않은 뒤 구간별로 재고, 평균 대신 백분위를 보게 된 과정이다.
-
도구는 껐고 규칙은 남은 상태
(수정됨)성능 측정에서 부수 기능을 껐는데도 예상 밖 DB 사용량이 섞인 원인을 패턴 둘로 좁혀 감사 규칙에 닿고, 측정의 한계를 명시한 기록이다.
-
로그 문구가 어느 단계인지 알려준다
(수정됨)Spring Boot 서비스의 긴 로그에서 시작 문구 유무로 실패 단계를 가르고, 무해한 문구를 잡음으로 분류해 패턴표로 남긴 기록이다.
-
같은 내용을 다시 보낸 뒤의 변화
(수정됨)시세 제공사 파트너 API 에서 필드의 존재만으로 상태가 바뀌는 것을 만나 요청 빌더의 기본값을 뒤집고, 필드별 표를 만든 기록이다.
-
가설을 전부 배제한 뒤의 확정
(수정됨)출금 승인은 됐는데 노드 전송 작업이 안 생기던 건에서 네 가설을 배제하고 다른 축을 찾아 정상 방어로 판정한 기록이다.
-
조회 한 번으로 안전한지 정해진다
(수정됨)체결 건의 일정산 편입 여부를 판정하는 경로를 규명해 세 테이블 탐색을 한 줄로 줄이고, 확정과 추정을 나눠 남긴 기록이다.
-
한 번 고침에 남은 이력 셋
(수정됨)수수료율 일괄 보정에서 남길 이력을 정상 경로 건과 대조해 개수와 내용을 맞추고, 이름이 거짓말하는 컬럼까지 확인한 기록이다.
-
화면에만 남은 미처리
(수정됨)노드 연동 장애로 읽히던 출금 취소 문의를 상위 상태 확인으로 표시 문제로 판정하고, 조사 방향과 답변을 함께 바꾼 기록이다.
-
삭제하고 다시 만들면 연결이 끊긴다
(수정됨)상장 코인 정보 갱신에서 삭제 후 재생성이 마켓·지갑 설정의 연결을 끊는 구조를 확인하고, 제자리 갱신 규칙으로 바꾼 기록이다.
-
실제로 돌려 본 보안 점검 목록
(수정됨)거래소 인수 시점의 OWASP 기반 보안 점검 목록에 확인 명령과 통과 기준과 대조군을 붙여 실제로 돌려 본 기록이다.
-
큐가 준 순서와 처리가 끝나는 순서
(수정됨)ActiveMQ 큐가 순서대로 줘도 결과가 뒤집히는 이유를 정리하고, 메시지 그룹과 순번을 함께 두어 막은 기록이다.
-
못 읽는 형식은 변환해서 읽는다
(수정됨)인수인계 자료를 Tika 로 색인하며 형식을 직접과 간접과 미지원으로 나누고, 변환 경로와 도구 경로까지 표로 정리한 기록이다.
-
한 채널에서 깨진 일반화
(수정됨)텔레그램 상장 공지에서 코인 심볼을 뽑는 방식이 표본 몇 개로 세워졌다가 전 채널 확인에서 깨진 과정과, 미확인 항목을 구현 전에 닫은 기록이다.
-
제약이 답변에만 있는 API
(수정됨)외부 거래소 API 의 공식 문서에 없고 질의응답에만 있던 네 가지 제약을 정리하고, 구현 전에 답변을 훑는 순서를 세운 기록이다.
-
아무것도 가르지 못한 컬럼
(수정됨)해외몰 배송비 테이블에서 이름이 동작을 암시하던 설정 컬럼을 전수로 확인해 라벨임을 확정하고, 실제 동작을 정하는 자리를 함께 남긴 기록이다.
-
옮기면서 다시 짠 분류
(수정됨)파일 이관에서 옛 구조를 그대로 가져오지 않고 분류를 다시 짜면서, 대조와 대응표와 유예 기간까지 정리했다.
-
외주 산출물의 목적과 구성
(수정됨)외주 결과물에서 왜 그렇게 만들었는지가 빠져 있던 경험을 절차로 바꾸고, 계정과 인수 회의까지 포함시킨 기록이다.
-
중간에서 멈추는 DDL 스크립트
(수정됨)재실행 가능한 스크립트와 한 번만 되는 스크립트의 차이를 정리하고, 이름과 경고와 제약 시점까지 다룬 기록이다.
-
규제가 컬럼이 될 때
(수정됨)해외 판매 스키마에서 법적 요건이 컬럼과 별도 테이블로 갈리는 기준과, 성격과 정책을 나눈 설계를 읽은 기록이다.
-
보관물에 남겨야 하는 것
(수정됨)설명 없이 보관된 프로젝트를 읽느라 이틀을 쓴 뒤, 보관 절차에 무엇을 함께 남길지 정한 기록이다.
-
파일 사이 참조 관계
(수정됨)검색으로 안 잡히는 참조를 실행 기록으로 모으고, 안 읽힘과 안 쓰임을 갈라 정리한 과정이다.
-
매뉴얼 앞에 공통 동작을 규정하면
(수정됨)매뉴얼 앞에 공통 동작을 한 번 규정한 구성이 반복과 불일치를 없애는 이유와, 캡처와 규정의 수명 차이를 정리했다.
-
웹 루트 아래의 업로드 폴더
(수정됨)운영 가이드의 디렉터리 구조에서 업로드 경로가 nginx 로 열려 있는지 확인하고 보호 자원을 웹 루트 밖으로 내린 기록이다.
-
모든 테이블의 감사 컬럼 네 개
(수정됨)PostgreSQL 스키마의 모든 테이블에 같은 감사 컬럼 네 개가 반복되는 구조에서 방법별 트레이드오프를 정리한 기록이다.
-
운영에 올린 dev 빌드의 대가
(수정됨)당직자용 운영 가이드를 검토하다가 실시간 토론 서버의 배포 절차에서 되돌릴 수 없는 구조를 발견한 기록이다.
-
한 테이블에 담은 이벤트 로그
(수정됨)Moodle 표준 로그 저장소처럼 여러 종류의 행동 로그를 한 테이블에 담은 설계에서 얻는 것과 잃는 것을 정리한 기록이다.
-
바꾼 기록과 돌린 기록
(수정됨)배치 설정과 실행 기록을 한 표에 담고 있던 것을 성격에 따라 나눠 정리한 기록이다.
-
다섯 번 고쳐도 그대로인 버전
(수정됨)개정 이력은 쌓이는데 버전이 안 움직이는 설계서를 받아 기준부터 정한 기록이다.
-
나란히 적은 현재와 목표
(수정됨)구조 개선 제안이 안 좁혀지던 것을 현재 상태와 목표를 나란히 적어 풀어낸 기록이다.
-
스크립트 사이의 실행 순서
(수정됨)앞 배치가 끝나기 전에 시작해 실패한 것을 시간이 아니라 순서로 묶어 해결한 기록이다.
-
아무것도 측정하지 않은 0건
(수정됨)로그 검색이 0건이라 안 건드렸다고 판정했다가 그 검사에 판정력이 없었음을 확인한 기록이다.
-
utf8이 아닌 utf8
(수정됨)인계받은 스키마의 문자셋과 인덱스와 제약을 자료가 비어 있을 때 정리한 기록이다.
-
파일명이 유일한 메타데이터일 때
(수정됨)협업 상대와 주고받은 산출물 폴더에서 어느 것이 정본인지 파일명으로 못 가린 기록이다.
-
추천 종류마다 나눈 테이블
(수정됨)추천 영역이 여럿인 화면에서 테이블을 나눌지 합칠지를 조회 패턴으로 정한 기록이다.
-
죽은 런타임의 이름이 남은 API
(수정됨)상용 뷰어를 붙인 짧은 통합 페이지 하나에서 드러난 것들을 정리한 기록이다.
-
인계 문서에서 빠지면 안 되는 것
(수정됨)인계 문서의 목차를 무엇을 적을지가 아니라 없으면 막히는 것으로 잡아 쓴 기록이다.
-
이수 기준이 둘 필요한 분류
(수정됨)포털 과정 등록 오류가 개별 정정으로 끝날 일이 아니라 분류의 구조적 제약이었음을 확인한 기록이다.
-
반복을 넘어 살아남은 변수
(수정됨)첫 글자에서만 결과가 틀리던 함수의 원인이 조건부로만 갱신되는 변수에 있었던 기록이다.
-
프로젝트별 배포 대상 표
(수정됨)배포 후 한 서버만 옛 코드로 돌던 것을 계기로 배포 대상을 표로 만들어 스크립트가 읽게 한 기록이다.
-
크기가 아니라 개수에 비례한 비용
(수정됨)외부 서비스 요금이 여섯 배로 뛴 원인을 비례 관계부터 확정해서 찾아낸 기록이다.
-
경유 지점 뒤의 전수 추적
(수정됨)옛 중계 서버를 없애기 전에 무엇이 그것을 거쳐 가는지 전부 되짚어 확인한 기록이다.
-
열 개였던 쿼리가 하나였다
(수정됨)반복되는 추출 요청에 쿼리를 하나씩 늘리다가 요청의 축을 적어 보고 파라미터 하나로 줄인 기록이다.
-
누구 책임인지를 나타내는 값을 정의했다
(수정됨)연동 실패가 우리 문제인지 상대 문제인지를 매번 열어 보던 것을 값으로 남기게 바꾼 기록이다.
-
단방향 동기화와 반대편의 0
(수정됨)보조 장비에서 한 설정 변경이 단방향 동기화 때문에 반대편에 반영되지 않았던 기록이다.
-
내가 만들지 않은 시스템을 확장한다는 것
(수정됨)오픈소스 학습관리 시스템 위에 기능을 붙이면서 원본을 안 고치고 확장하는 방법을 정리한 기록이다.
-
등록됐다고 연동된 게 아니다
(수정됨)연동 기능을 손보기 전에 등록과 실제 연동이 다르다는 것을 세 곳을 합쳐 확인한 기록이다.
-
옛 자료의 고유 용어를 정의해 뒀다
(수정됨)문서와 코드에 계속 나오는 그 조직 고유의 말들을 정의해 용어집으로 남긴 기록이다.
-
입력이 다르면 달라지는 코드
(수정됨)사원 식별 코드 불일치 오류에서 코드가 두 갈래로 만들어진다는 것을 직접 계산해 확인한 기록이다.
-
함께 움직인 두 변수
(수정됨)설정값 하나의 효과를 재려던 측정에서 두 변수가 함께 움직여 단독 효과가 안 나온 기록이다.
-
공용 테이블이 활성 입력처가 아니었다
(수정됨)이름이 딱 맞는 공용 테이블의 값이 낡아 있었고 실제 입력처는 따로 있던 것을 코드로 확인한 기록이다.
-
0은 장애가 아니다
(수정됨)수집 감시 알람의 임계를 잡기 전에 그 지표가 무엇을 세는지부터 확정한 기록이다.
-
문서에 없는 실제 경로를 찾아 적었다
(수정됨)문서에 적힌 경로에 아무것도 없어 실제 경로를 찾아내고 대응표로 남긴 기록이다.
-
저장소가 몇 개인지부터 적었다
(수정됨)인계받은 뒤 코드가 어디 있는지 매번 물어보던 것을 저장소 목록을 만들어 해결한 기록이다.
-
예외를 던지니 호출처가 롤백한다
(수정됨)유령 레코드의 원인 후보 하나를 Moodle 파일 API 소스와 호출처 전수 조사로 지운 기록이다.
-
단계가 드러나는 폴더 구조
(수정됨)파일 처리 배치의 진행 상태를 DB가 아니라 파일이 놓인 폴더로 드러나게 바꾼 기록이다.
-
한 경로에만 붙은 가드
(수정됨)이미지가 빈 채로 나간 문제에서 막는 장치가 이미 있었고 한 경로에만 붙어 있던 기록이다.
-
클라이언트가 인코딩해 줘서 되던 것
(수정됨)저장소 키가 인코딩된 문자열 그대로 들어간 것이 운영에서는 왜 정상이었는지 확인한 기록이다.
-
복제 구성을 장비와 같이 적었다
(수정됨)복제가 걸려 있다는 것만 알던 상태에서 전체 구조와 장비 정보를 함께 적어 문서로 만든 기록이다.
-
장비에 맞춰 실행 설정을 조정했다
(수정됨)같은 코드를 올린 두 장비 중 한쪽만 느렸던 원인이 장비를 모르는 기본 설정이었던 기록이다.
-
전수 집계가 한 경로만 검증했다
(수정됨)테이블을 전수 집계해 확정한 목록이 실제로는 한 경로만 검증한 것이었음을 뒤늦게 확인한 기록이다.
-
마이그레이션 원본이 살아 있었다
(수정됨)구버전 식별자를 새 마스터로 잇는 처리가 일부 건에서 안 탔던 원인을 자료 구조에서 확인한 기록이다.
-
판마다 다른 파일 형식
(수정됨)기록 파일을 읽는 배치가 일부 파일에서 실패한 원인이 형식 판이 여럿이었던 데 있던 기록이다.
-
메모리 풀이 하나가 아니었다
(수정됨)빌드 서버의 메모리 경고에서 힙을 키우려다 그것과 빌드가 쓰는 자리가 다름을 확인한 기록이다.
-
같은 기능인데 메뉴가 둘이고 로그인이 달랐다
(수정됨)같은 목록을 보는 화면이 두 곳이었고 각각의 접근 검사가 달랐던 것을 하나로 맞춘 기록이다.
-
미리보기가 다른 행을 안 셌다
(수정됨)지각 감점을 재계산하는 미리보기가 이미 승인된 가산점 행을 안 세어 이중 계상될 뻔한 것을 저장 전에 잡은 기록이다.
-
실패한 마감이 삭제 밑에 묻혔다
(수정됨)퇴직 강사의 과정에 수강 신청이 난 원인이 실패한 마감 위에 삭제가 얹힌 데 있었던 기록이다.
-
번호 네 개가 비어 있었다
(수정됨)특정 항목이 안 들어온다는 얘기에서 수정된 것만 가져오는 조회의 빈틈을 확인한 기록이다.
-
태그가 말해 주지 않는 베이스
(수정됨)런타임 이미지 네 버전 중 일부만 갱신이 실패한 원인이 베이스 배포판의 지원 종료였던 기록이다.
-
등록은 롤백되고 수정은 안 된다
(수정됨)업로드를 외부로 넘기기 전에 실패했을 때 DB가 어떻게 되는지를 실패 주입으로 확인한 기록이다.
-
소스에서 거꾸로 스키마를 그렸다
(수정됨)DB 문서가 없는 시스템을 인계받아 코드와 화면과 자료로 스키마를 거꾸로 그려 문서로 만든 기록이다.
-
외부 시스템의 성공 응답을 그대로 믿지 않게 된 이유
(수정됨)성공 응답을 받았는데 상대 쪽에 반영이 안 된 일이 반복돼 응답을 다루는 방식을 바꾼 기록이다.
-
이력에는 생성이라고 찍혀 있었다
(수정됨)이력에 생성으로 찍힌 것이 실제로는 갱신이었고 그것을 다른 방법으로 확인해 가른 기록이다.
-
두 벌 중 하나 고르기
(수정됨)같은 기능을 하는 코드가 두 벌 있는 것을 비교해 하나로 줄이고 그 경위까지 남긴 기록이다.
-
상하 관계와 문자 규칙을 같이 알아야 했다
(수정됨)계층 구조를 맞게 짰는데도 하위가 안 나온 원인이 문자 처리 규칙에 있었던 기록이다.
-
재시작해도 안 도는 저쪽 카운터
(수정됨)잔여량이 남았는데 한도 초과가 쏟아진 원인이 우리 카운터와 저쪽 카운터의 어긋남이었던 기록이다.
-
받아만 오면 도는 개발 환경
(수정됨)개발 환경 구축에 사흘이 걸리던 것을 받아서 한 번 실행하면 도는 상태로 만든 기록이다.
-
다른 테이블에 부과된 감점
(수정됨)과제 지각 감점 면제 요청에서 부과 레코드가 이름이 맞는 테이블에 없어 코드를 정독해 찾은 기록이다.
-
화면 이름과 코드 이름의 통일
(수정됨)화면과 코드와 DB에서 같은 대상을 다른 이름으로 부르던 것을 하나로 맞춰 나간 기록이다.
-
에러 응답에 없는 성공 키
(수정됨)인사 시스템 전송 실패 수천 건의 로그가 전부 같은 문구였던 원인이 우리 코드의 예외였음을 확인한 기록이다.
-
실측으로 고른 배치 시각
(수정됨)일배치 시각을 새벽으로 잡으려다 부하 지표를 실측해 통념과 반대라는 것을 확인한 기록이다.
-
모듈 단위 경로 정리
(수정됨)규칙 없이 400줄로 늘어난 경로 목록을 도메인 단위로 묶고 이름 규칙을 검사로 만든 기록이다.
-
되살아나는 세 갈래 경로
(수정됨)정지한 수강 등록이 Moodle 의 세 경로로 되살아난다는 것을 로그 표 그룹핑으로 확인하고 공통 지점에서 막은 기록이다.
-
다른 층에 있던 고칠 자리
(수정됨)경로 생성기를 갈아 끼우면 될 줄 알았던 문제의 해법이 실제로는 다른 층에 있었던 기록이다.
-
승인이 거른 열두 건
(수정됨)승인을 눌렀는데 작업이 안 나간 것이 오류가 아니라 필터에 걸러진 결과였음을 확인한 기록이다.
-
작업 완료와 대상 상태의 분리
(수정됨)멈춘 작업을 완료 처리하려다 그것이 대상 상태를 바꾸지 않는다는 것을 미리 확인한 기록이다.
-
급할 때의 경로
(수정됨)서버에서 직접 고친 수정이 다음 배포에서 사라진 뒤 급할 때용 경로를 따로 만든 기록이다.
-
멈춘 상태값과 재수집의 부재
(수정됨)입금이 확인됐는데 잔액에 안 들어온다는 문의에서 멈춘 것이 노드가 아니라 확인 수 컬럼이었음을 확인한 기록이다.
-
화면이 만든 것과의 대조
(수정됨)계정 생성을 스크립트로 처리하기 전에 화면이 만든 레코드 한 건과 대조해 여섯 개 필드를 바로잡은 기록이다.
-
DB 수정이 닿지 않는 경계
(수정됨)정책 값을 DB에서 일괄 수정하면 끝일 줄 알았으나 외부에 이미 등록된 건에는 닿지 않았던 기록이다.
-
실행 위치를 전제한 스크립트
(수정됨)정리 스크립트를 다른 자리에서 돌려 엉뚱한 파일이 지워진 뒤 전제를 없애고 안전장치를 넣은 기록이다.
-
다른 컬럼에 있던 금액
(수정됨)조회한 출금 수수료가 0이라 누락으로 볼 뻔했으나 값이 다른 컬럼에 있었고, 수수료를 받는 방식이 컬럼을 가른다는 것을 확인한 기록이다.
-
긴 작업의 결정 범위 긋기
(수정됨)2주짜리 작업에서 매번 묻느라 진행이 안 되던 것을 결정 범위를 먼저 그어 해결한 기록이다.
-
단계적 조인으로 좁힌 실패 원인
(수정됨)일괄 주문 취소에서 실패한 수백 건의 원인을 세 단계 조인으로 확정하고 처리 방안까지 정한 기록이다.
-
수동 재시도 절차
(수정됨)실패로 멈춘 작업을 다시 돌리는 절차를 원인 제거와 리셋과 단건 실행 셋으로 정리한 기록이다.
-
주문의 의도와 엔진의 상태
(수정됨)마켓 점검으로 대량 취소된 주문을 복원하며 주문 표와 매칭 엔진 표의 상태가 정반대로 갈린 이유와 그 둘의 용도를 구분한 기록이다.
-
원본 설정을 두고 바꾼 것만 아래에 모았다
(수정됨)기본 설정 파일을 직접 고치던 방식을 별도 파일로 바꾸고 적용 여부 확인까지 만든 기록이다.
-
미등록이라 비어 있다
(수정됨)목록이 전부 공란이라는 문의가 정상 동작이었고 그 원인이 식별자 형식이었음을 확인한 기록이다.
-
다시 돌리는 게 무해하지 않았다
(수정됨)재실행이 무해한지 묻는 반문에서 시작해 멱등성을 확인하고 처리분을 명시적으로 제외한 기록이다.
-
노드가 네트워크와 어긋나면 생기는 일들
(수정됨)직접 운영하는 노드가 네트워크보다 뒤처졌을 때 조용히 틀린 값을 주는 것을 알아채는 방법을 정리한 기록이다.
-
옮겨 온 것은 이름에 출처를 남겼다
(수정됨)다른 저장소에서 가져온 코드의 출처를 못 찾아 헤맨 뒤 이름과 기록에 남기게 한 기록이다.
-
OS 업데이트가 아니라 벤더 도구로
(수정됨)목록에 없다고 최신인 줄 알았던 드라이버가 배포 경로 자체가 달랐다는 것을 확인한 기록이다.
-
개수가 아니라 실패로 판정한다
(수정됨)레코드 개수로 깨졌다고 판정한 건들이 실제로는 정상이었음을 응답 확인으로 바로잡은 기록이다.
-
옛 망 구성을 기록으로 남겼다
(수정됨)코로케이션 망 구성을 바꾸기 전에 문서 대신 실측으로 현재 상태를 그리고, 적용 범위를 정해 두고 바꾼 뒤 대조한 기록이다.
-
부분 수정처럼 보이는 전체 치환
(수정됨)부분 수정으로 보이던 외부 창구가 전체 치환이었고 예외 필드까지 확인해 설계를 바꾼 기록이다.
-
처음 등록되는 경로가 넷이었다
(수정됨)필수 값이 없는 행이 어떻게 들어왔는지 추적해 등록 경로 넷의 검사 차이를 정리한 기록이다.
-
저장소 안에 있다는 것과 추적된다는 것
(수정됨)지워도 된다고 기록된 목록을 삭제 직전에 다시 확인해 추적되지 않은 것을 찾아낸 기록이다.
-
상태를 바꾸면 대상마다 할 일이 생겼다
(수정됨)한 번의 상태 변경이 수천 건의 후속 작업을 만들던 것을 작업 목록과 완료 기준으로 정리한 기록이다.
-
한 축이 아니라 쌍으로 분기한다
(수정됨)입금 통지 처리 분기를 한 축으로 잡으려다 출처와 종류의 쌍으로 열거하게 된 과정과 조용히 틀리는 위험을 정리한 기록이다.
-
종결 처리가 여러 자리에 걸쳐 있었다
(수정됨)주문 종결이 호가 잔량·잔액 잠금·체결 대기·알림 예약에 걸쳐 있던 구조에서 빠지는 곳을 없애고 확인까지 만든 기록이다.
-
값 하나를 바꾸면 여러 테이블이 같이 바뀌어야 했다
(수정됨)회원 수수료 등급이 네 표에 복사돼 있던 것을 지금 값과 그때 값으로 갈라 정리한 기록이다.
-
시작할 때 반드시 거치는 자리를 만들었다
(수정됨)화면마다 넣던 로그인 후 검사를 반드시 거치는 한 자리로 모으고 예외를 명시하게 한 기록이다.
-
검사 통과가 완성이 아니다
(수정됨)형식 검사를 통과했다는 것으로 완료를 보고했다가 실제 화면이 설계와 달랐던 것을 정리한 기록이다.
-
암호화 방식을 바꾸면서 옛 값을 어떻게 할지 정했다
(수정됨)암호화 방식 전환에서 이미 저장된 값을 어떻게 다룰지와 옛 방식을 언제 지울지까지 정한 기록이다.
-
허용만 적어 둔 목록은 아무것도 막지 않았다
(수정됨)허용 규칙만 나열된 접근 제어에서 기본 정책을 확인해야 성격이 정해진다는 것을 소스로 확정한 기록이다.
-
실패한 것을 찾아 원인을 고치고 다시 돌렸다
(수정됨)실패한 처리를 다시 돌리려는데 대상을 못 찾던 것을 상태 기록과 사유 분류로 고친 기록이다.
-
남아 있는 것과 백업된 것
(수정됨)디스크에 남아 있다는 것과 이력에 들어 있다는 것을 혼동하다 산출물의 보존 경로를 다시 정한 기록이다.
-
큰 테이블의 진입점
(수정됨)억 단위 행의 원장 표에서 조건 배치 순서로 스캔 범위를 정하고 단계별 건수로 확인한 기록이다.
-
도구가 안 보일 때 무엇을 볼지 정해 뒀다
(수정됨)어제까지 되던 배포가 명령을 못 찾아 실패한 것을 계기로 확인 순서와 전제 명시를 정한 기록이다.
-
실제 발동 빈도를 검증한다
(수정됨)코드 형태로 지목된 장애 원인이 실제로는 한 번도 발동한 적이 없다는 것을 실측으로 확인한 기록이다.
-
자료가 없어져서 코드에서 되살렸다
(수정됨)백업도 없이 사라진 설정 자료를 코드와 계산 결과에서 거꾸로 되살리고 원인까지 막은 기록이다.
-
처리율 저하가 스톨은 아니다
(수정됨)블록 처리율이 급락한 지갑 재스캔을 멈춘 것으로 오판할 뻔한 것을 로그 갱신 시각과 처리 중 블록 높이로 판별한 기록이다.
-
제한기가 워커 수만큼 곱해진다
(수정됨)자동 확장을 검토하다 속도 제한기의 단일 인스턴스 전제가 이미 깨져 있던 것을 확인한 기록이다.
-
자동 복구가 매분 돌고 있었다
(수정됨)자동 복구가 문제를 계속 가려서 두 달 동안 몰랐던 것을 횟수 계측으로 드러낸 기록이다.
-
키를 돌려 쓰려면 죽은 키를 걸러야 했다
(수정됨)여러 키를 순서대로 돌려 쓰던 구조가 죽은 키를 계속 쓰던 것을 상태별 처리로 고친 기록이다.
-
전환 전에 확인할 셋
(수정됨)같은 출금 전환 요청이 되고 안 되던 이유를 세 조건과 그 순서로 정리해 진단 절차를 만든 기록이다.
-
노드가 밖에서 안으로가 아니라 안에서 밖으로 붙었다
(수정됨)연결 방향 하나가 방화벽과 인증서와 재시도 주체까지 함께 정한다는 것을 확인한 기록이다.
-
코인마다 입금 조회가 다르다
(수정됨)새 ERC20 토큰을 ETH 분류에 넣었다가 입금이 아예 안 잡히던 것을 실제 트랜잭션 대조로 바로잡은 기록이다.
-
정렬 없는 first가 엉뚱한 걸 복원한다
(수정됨)로그만 지워서는 원복이 안 되던 구조와 정렬 없이 첫 행을 잡는 복원의 위험을 정리한 기록이다.
-
비슷해 보이는 엔드포인트 셋
(수정됨)이름으로 고른 대량 처리 창구가 잘못된 선택이었음을 지적받고 본문까지 읽어 확정한 기록이다.
-
지우고 다시 만드는 중에 멈추면 더 나빠졌다
(수정됨)집계 갱신이 중간에 멈춰 화면이 통째로 비던 것을 교체 방식과 사전 검사로 바꾼 기록이다.
-
컨테이너에서 뭘 백업하나
(수정됨)이미지를 교체하기 전에 무엇을 보존해야 하는지를 변경분과 마운트 대조로 확정한 기록이다.
-
뒤에서 도는 것이 한도를 다 써 버렸다
(수정됨)공유 한도를 배경 작업이 다 써서 실시간 조회가 거절당하던 것을 몫 배분과 단일 창구로 고친 기록이다.
-
카나리 전에 다른 토큰을 센다
(수정됨)멈춘 출금 한 건으로 재전송을 먼저 시험하기 전에 같은 주소의 다른 토큰 출금으로 파급될 수 있는지를 세어 실험 설계를 바로잡은 기록이다.
-
상태를 바꾸는 게터
(수정됨)입력한 금액이 다른 화면에서 0으로 보이던 원인이 계산 게터의 부수효과였음을 확인한 기록이다.
-
플래그 하나를 두 기능이 쓴다
(수정됨)출금 잠금과 블랙리스트 차단이 회원 표의 같은 잠금 컬럼을 쓰고 있어 한쪽 조작이 다른 쪽을 뒤집던 것을 규모까지 세어 정리한 기록이다.
-
없는 레코드를 영원히 기다린다
(수정됨)대응 레코드가 없어 대기 상태로 멈춘 건이 시도 횟수도 안 늘어 신호 없이 남던 것을 정리한 기록이다.
-
24시간 멈추면 안 되는 시스템을 맡는다는 것
(수정됨)밤에도 도는 시스템을 맡으면서 배포와 관측과 시각 처리에서 방법을 바꿔야 했던 것들을 정리한 기록이다.
-
매칭은 양방향으로 확인한다
(수정됨)은행 원화 입금 내역과 우리 입금 기록의 미매칭 수천 건이 다섯 겹의 규칙 때문이었고, 양방향 확인으로 이중 반영을 막은 기록이다.
-
먼저 뜬 것이 나중에 내려가야 했다
(수정됨)시작 순서만 정해 둔 스크립트가 종료에서 오류를 쌓던 것을 의존 역순과 준비 확인으로 고친 기록이다.
-
경로 하나에 근거 넷
(수정됨)연동이 어느 경로로 나가는지를 네 가지 근거로 확정하고 각각이 막는 반론까지 정리한 기록이다.
-
주석 처리가 폐지는 아니다
(수정됨)옛 시스템에서 주석 처리된 스케줄이 폐지가 아니라 이관이었음을 병존 구조에서 확인한 기록이다.
-
백 초쯤 지나면 끊기던 연결
(수정됨)자료가 흐르지 않는 연결을 중간 장비가 끊던 것을 조건을 좁혀 찾고 주기 신호로 해결한 기록이다.
-
단건 실행은 스코프를 안 거친다
(수정됨)대량 재시도를 설계하며 단건 실행이 워커의 조건을 건너뛴다는 것을 확인하고 목록을 파일로 고정한 기록이다.
-
중간 역할은 어느 쪽에도 없다
(수정됨)부정으로 정의한 권한 판정이 중간 역할을 삼켜 필터가 통째로 사라지던 것을 찾은 기록이다.
-
로컬에서만 붙던 서비스
(수정됨)다른 장비에서 안 붙던 저장소를 듣는 주소부터 확인하고 인증과 방화벽 순서를 정한 기록이다.
-
규칙이 시점에 따라 달랐다
(수정됨)두 사람의 기억이 다 맞았던 이유가 시점 차이였고 그것이 자료의 구멍까지 설명한 기록이다.
-
큐 테이블에서 워커끼리 서로 기다렸다
(수정됨)표를 큐로 쓸 때 워커를 늘려도 처리량이 안 늘던 원인과 잠긴 행을 건너뛰는 방법을 정리한 기록이다.
-
상태에 따라 부를 API가 다르다
(수정됨)위탁 지갑의 출금 상태마다 취소에 부를 창구가 다르다는 규칙을 문답 자료에서 찾아 분기와 예외까지 정리한 기록이다.
-
저장소마다 커밋 작성자가 달랐다
(수정됨)작성자 설정이 저장소마다 달라 이력이 섞이던 것을 층별로 확인하고 유입부터 막은 기록이다.
-
한 대만 켜는 것과 한 대에만 나가는 것은 달랐다
(수정됨)한 대에서만 켠 기능이 꺼진 서버에서 문제를 낸 것을 배포 범위와 활성 범위로 갈라 본 기록이다.
-
수동 정리는 세 가지를 맞춘다
(수정됨)위탁 지갑이 폐기한 입금 주소를 정식 경로 없이 수동 정리하며 무엇까지 맞춰야 하는지를 두 번의 지적으로 확정한 기록이다.
-
고정된 주소와 지켜볼 수 있는 것
(수정됨)나가는 주소를 고정하라는 요구와 관측 가능성을 한 구성 안에서 함께 만족시킨 기록이다.
-
인과관계를 배제하는 세 단계
(수정됨)오늘 배포 때문이냐는 물음에 답하기 위해 배제를 세 단계로 나눠 근거를 세운 기록이다.
-
배포가 도는데 아무 일도 안 일어났다
(수정됨)옛 갈래 이름을 가리키던 배포가 성공한 채로 아무것도 안 하던 것을 찾고 검증까지 붙인 기록이다.
-
전역 규칙이 하위에도 로드된다
(수정됨)비교 실험 결과에 섞여 든 것이 전역 설정의 개입이었음을 가설 배제로 확정한 기록이다.
-
밖에서 오는 문과 안에서 쓰는 문
(수정됨)밖과 안이 한 경로로 들어오던 구성을 나누면서 열려 있으면 안 되는 경로까지 찾아낸 기록이다.
-
태그가 유일한 비용 손잡이다
(수정됨)통합 청구 환경에서 비용 추적 수단이 태그뿐이라는 정정을 받고 체계와 확인 절차를 세운 기록이다.
-
커밋에 남의 작업이 딸려 들어갔다
(수정됨)공용 작업 폴더에서 커밋이 남의 변경까지 쓸어 간 사고를 되돌리고 구조까지 바꾼 기록이다.
-
그 오류는 우리 것이 아니었다
(수정됨)우리 로그에 찍힌 오류가 상대 응답이었다는 것을 전수 검색으로 확정하고 회신에 근거를 붙인 기록이다.
-
이름을 지운다고 갈리지 않는다
(수정됨)문서에서 이름을 지운 것으로 경계가 갈렸다고 본 상황을 실물 설정과 인증서까지 실측해 확인한 기록이다.
-
포트가 다른데 로그인이 풀렸다
(수정됨)포트로 나눈 두 화면이 서로 로그인을 풀던 원인과 쿠키와 출처 정책의 어긋남을 정리한 기록이다.
-
서비스가 무엇을 하는지 확인하고 껐다
(수정됨)느린 장비를 손보기 전에 실측하고 벤더 서비스를 이름이 아니라 역할로 판별해 정리한 기록이다.
-
매핑 누락인가 원시 오수집인가
(수정됨)대량 재수집이 필요한지를 저장 구조와 정규화 시점으로 판별해 자릿수 다른 비용을 아낀 기록이다.
-
캐시가 개발과 운영에서 반대로 굴었다
(수정됨)캐시 설정이 환경마다 반대라 한쪽에서만 나는 버그가 생기던 것을 키 규칙과 환경 일치로 정리한 기록이다.
-
계산값이던 화면의 날짜
(수정됨)출금 관리 화면의 보류 요청일이 컬럼이 아니라 감사 로그에서 계산해 붙이는 값이라 검색 조건으로 못 쓰던 것을 조인으로 푼 기록이다.
-
한 상대에 인증 체계 셋
(수정됨)만든 사람이 없는 연동에서 같은 상대에 대한 인증 체계 셋을 코드만으로 파악한 기록이다.
-
서버마다 다르던 런타임 버전
(수정됨)같은 코드가 한 대에서만 실패하던 원인을 런타임 판 비교로 찾고 다시 어긋나지 않게 만든 기록이다.
-
검증이 API가 아니라 실행 시점에 있다
(수정됨)변동 폭 제한이 어디서 검사되는지 끝까지 따라가 호출 성공과 반영이 다르다는 것을 확인한 기록이다.
-
복구 가능한 것과 잃은 것
(수정됨)변환본 재생성을 돌리기 전에 원본 존재로 대상을 갈라 헛수고와 오보를 함께 막은 기록이다.
-
껐는데도 새 동작이 남아 있었다
(수정됨)maker/taker 수수료 플래그를 껐는데도 체결 수수료가 안 돌아오던 원인을 읽는 쪽의 갈림과 저장 자리에서 찾은 기록이다.
-
물려받은 실행 방식에 딸린 장치를 안 가져왔다
(수정됨)사람이 지켜보던 핫월렛-DB 잔액 대사 배치를 cron 으로 옮기면서 사라진 통제를 코드로 옮겨 넣은 기록이다.
-
팀을 SVN에서 Git으로 옮기며 정한 것들
(수정됨)도구를 옮기는 것보다 브랜치를 어떻게 쓸지 정하는 데 시간이 더 든 이유를 정리한 기록이다.
-
커맨드가 없고 엔드포인트만 있었다
(수정됨)거래 페어 스펙을 갱신하는 경로를 이름으로 찾다 실패하고, 반드시 거치는 외부 호출 지점에서 역추적해 찾아낸 기록이다.
-
브라우저를 닫으니 작업이 중간에 멈췄다
(수정됨)화면에서 돌리던 오래 걸리는 집계를 요청과 처리로 떼어 놓고 재실행 지점까지 정한 기록이다.
-
신뢰할 수 없는 축
(수정됨)오래된 보관본의 세대를 가리려다 수정 시각이라는 축 자체를 못 쓴다는 것을 확인한 기록이다.
-
상태에 머문 것만으로 부과했다
(수정됨)확인 대기에 머문 시간만으로 의심 입금 보류를 자동 부과하는 구조가 txid 덮어쓰기 설계와 만나 오탐을 만들던 것을 정리한 기록이다.
-
지금 규약과 어긋난 옛 설정
(수정됨)옛 서버의 설정을 통째로 복사했다가 그 서버가 안 맞고 있던 것까지 따라온 것을 정리한 기록이다.
-
대상이 늘면 장비가 늘어야 했다
(수정됨)수집 대상을 늘리기 전에 대상당 자원을 재고 몰리는 시점과 구조를 함께 본 기록이다.
-
성공이 아니었던 200
(수정됨)상태 코드와 업무 결과가 두 층으로 나뉜 응답 규격에서 필드 생략이 호출을 늘리던 것까지 정리한 기록이다.
-
초기화 스크립트가 소스와 어긋났다
(수정됨)인계받은 초기화 스크립트의 공통 코드가 원본 소스와 값·의미·순서 세 가지로 어긋나 있던 것을 정리한 기록이다.
-
초 단위로는 순서를 못 가렸다
(수정됨)시각으로 순서를 가리려다 저장 정밀도와 시계 기준까지 다시 정하게 된 기록이다.
-
다섯으로 수렴한 실패 사유
(수정됨)오입금 반환 전송을 100건씩 반복하며 노드 오류를 분류해 사유의 수렴을 확인하고, 로그로 안 잡히는 종류까지 찾은 기록이다.
-
잔액 복구가 수수료 환불에 매달려 있었다
(수정됨)출금 취소 뒤 잔액이 안 돌아오던 원인이 잔액 복구 작업의 발행 지점에 깔린 전제였고, 미발생을 찾는 점검까지 정리한 기록이다.
-
두 갱신이 서로를 기다렸다
(수정됨)간헐적 실패의 원인이 교착이었고 잠금 순서 고정과 선별 재시도로 다룬 기록이다.
-
두 가지를 한 호출 하나
(수정됨)위탁 지갑의 출금 승인 호출이 사용자 취소 요청 철회를 함께 실행해서, 분리할 수 없는 부수 효과의 위험 구간을 줄이는 쪽으로 간 기록이다.
-
100에서 멈추던 목록
(수정됨)목록에 걸린 두 종류의 상한을 구분하고 사용자에게 어떻게 보이는지까지 따져 본 기록이다.
-
공통 기반을 세우니 경계를 다시 그어야 했다
(수정됨)공통 기반을 묶은 뒤 책임 경계가 흐려진 것을 오류 정보와 판 관리와 시험 환경으로 정리한 기록이다.
-
컨테이너가 쓴 파일이 재시작하면 없어졌다
(수정됨)컨테이너 안에 쓰이던 상태를 성격별로 갈라 밖으로 빼고 실제로 지웠다 다시 만들어 확인한 기록이다.
-
장바구니로 보내던 안내
(수정됨)구매 한도를 이전 구매와 합산해 판정하는 흐름에서 세는 시점과 이동 방식의 근거를 따라간 기록이다.
-
버튼 문구가 곧 상태였다
(수정됨)살 수 없는 상태에서 버튼을 숨기지 않고 문구를 바꾸는 설계의 이유를 상태별로 따라간 기록이다.
-
목록 하나에 조회가 수백 번 붙었다
(수정됨)코드에는 조회 하나만 보이는데 화면에서 행마다 조회가 나가던 것을 요청당 쿼리 수로 드러낸 기록이다.
-
기준 자료가 없으니 화면이 통째로 비었다
(수정됨)시험 서버에서 목록이 통째로 비던 원인이 기준 자료 누락이었고 환경 구성 절차까지 정리한 기록이다.
-
인증 해제 조건 넷
(수정됨)성인 인증이 풀리는 네 조건의 성격을 가르고 저장 위치와 관문 위치까지 따져 본 기록이다.
-
공유했는지 확인할 수 없었다
(수정됨)플랫폼마다 공유 검증 가능 여부가 달라 정책이 갈리던 것을 지표 분리까지 포함해 짚어 본 기록이다.
-
한 번에 많이 받으니 더 느려졌다
(수정됨)페이지 크기를 키웠더니 전체 시간이 늘어난 원인을 구간별 측정으로 갈라낸 기록이다.
-
최초 실행을 어떻게 테스트하나
(수정됨)한 번 보면 사라지는 최초 실행 항목을 확인하는 순서와 초기화 비용을 짚어 본 기록이다.
-
넣는 곳과 읽는 곳이 다른 저장소였다
(수정됨)수정이 검색에 반영되지 않던 원인이 색인 배치가 읽는 대상에 있었고 대조 지표까지 세운 기록이다.
-
앞 두 줄이 계속 반복됐다
(수정됨)시험 케이스의 절차 칸에서 앞 두 줄이 계속 반복되는 것이 무엇을 뜻하는지 살핀 기록이다.
-
어디 있었는지를 기억했다
(수정됨)시험 케이스에서 이전 선택을 기억하는 화면들과 그 기준이 어디까지인지 살핀 기록이다.
-
케이스마다 붙어 있던 오프라인 짝
(수정됨)앱 회귀 시험 문서에서 정상 케이스마다 연결이 끊긴 경우가 짝으로 붙어 있던 기록이다.
-
여러 팀이 같이 쓰는 모듈
(수정됨)팀마다 따로 만들던 외부 호출 코드를 하나로 합치면서 코드 밖의 일이 더 길었던 기록이다.
-
만드는 쪽과 처리하는 쪽이 달랐다
(수정됨)정산 대상 몇 건이 빠진 원인이 만드는 시스템과 처리하는 시스템의 경계에 있던 기록이다.
-
결제 수단에 따라 달랐던 약관
(수정됨)시험 케이스의 기대 결과 칸에 적힌 조건에서 약관 노출 구조를 읽어 본 기록이다.
-
옛 판에만 있던 기능
(수정됨)새 화면으로 바꾸고 옛것을 닫았더니 없어진 기능을 찾는 문의가 온 기록이다.
-
같은 조정인데 문구가 둘이었다
결제 화면 시험 케이스에서 같은 수량 조정에 문구가 둘로 나뉜 이유와 등급이 다른 이유를 짚어 본 기록이다.
-
두 칸에 같은 글
(수정됨)버전 이력표의 두 열이 대부분 같은 내용이었고 다른 몇 줄이 진짜 정보였던 기록이다.
-
하위 처리가 상위 권한을 물려받고 있었다
(수정됨)관리자만 써야 하는 기능이 다른 경로로 열려 있던 원인을 권한 확인 위치에서 찾은 기록이다.
-
화면과 서버가 규격이 달랐다
(수정됨)화면에서 입력한 값이 저장되지 않던 원인이 항목 이름의 어긋남이었고 그것을 한 곳으로 모은 기록이다.
-
버전 번호가 성격을 말해 줬다
(수정됨)회귀 시험 문서의 버전별 적용 이력 마흔 건을 훑으며 번호가 담은 정보를 읽은 기록이다.
-
원래 안 재던 곳들
(수정됨)트래킹 요청서 비고에 세 번 반복된 문장 하나가 무엇을 뜻하는지 짚어 본 기록이다.
-
탭 뒤의 두 시스템
두 체계를 합치는 중에 같은 화면이 주소 두 개로 잡혀 있던 이유를 살핀 기록이다.
-
돌리기 전에 읽는 이행 스크립트
(수정됨)넘겨받은 이행 스크립트를 이름만 보고 돌렸다가 읽는 순서와 사전 준비를 다시 잡은 기록이다.
-
순서를 바꾸니 기다리는 시간이 달라졌다
(수정됨)부르는 것을 줄이지 못하는 상황에서 호출 순서를 바꿔 상세 화면을 빠르게 만든 기록이다.
-
스무 곳에 있던 같은 등록 기능
(수정됨)관리자 작업 일정표에서 항목 스무 개가 사실은 같은 기능을 가리키던 것을 확인한 기록이다.
-
단계마다 숫자를 냈다
(수정됨)여러 단계를 묶은 상품 색인 배치에서 어디서 빠졌는지 알 수 없던 것을, 단계별 건수를 남기는 방식과 대사 테이블 방식을 견줘 고른 기록이다.
-
전용 테이블을 공용으로 바꾸는 일
(수정됨)일정표 첫 줄에 놓인 전용 테이블의 공용 전환을 두고 무엇이 따라붙는지 짚어 본 기록이다.
-
빠뜨리지 않는 방법을 먼저 정했다
(수정됨)결제 관련 코드를 전부 찾아야 하는데 찾을 때마다 결과가 달라지던 것을 방법부터 정해 정리한 기록이다.
-
2,217개의 금칙어
(수정됨)이천 개가 넘는 금칙어 목록의 구조와 검사 방식을 살피며 걸리는 지점을 정리한 기록이다.
-
카테고리마다 다른 필수 항목
(수정됨)카테고리마다 필수 항목이 다른 정의표를 받고 항목을 컬럼으로 둘지 자료로 둘지 판단한 기록이다.
-
분류 값마다 뜻을 적어 두었다
뜻을 아는 사람이 없던 주문 유형 코드 열두 가지를 추적해 상수와 코드 표로 남긴 기록이다.
-
열 번 중 하나가 튄 표
(수정됨)열 번 시행한 성능 결과표에서 한 번의 예외가 평균과 개선율을 얼마나 바꾸는지 살핀 기록이다.
-
상태 컬럼의 빈 값에도 뜻이 있었다
(수정됨)상태별 합계가 전체보다 적었던 원인이 상태 컬럼의 빈 값이었고 그 안에 두 가지 뜻이 섞여 있던 기록이다.
-
같은 말이 팀마다 다른 것을 가리켰다
(수정됨)같은 날 같은 것을 세는데 팀마다 숫자가 달랐던 원인이 말의 정의에 있던 기록이다.
-
같은 쿼리가 운영에서만 느렸다
(수정됨)개발에서는 바로 뜨던 조회가 운영에서만 여덟 초 걸린 원인을 실행 계획과 값의 분포에서 확인한 기록이다.
-
조용히 실패하는 연동
(수정됨)며칠치 자료가 상대 쪽에 없다는 연락을 받았는데 우리 로그에는 아무 오류도 없던 기록이다.
-
오래된 코드에 새 패턴 넣기
(수정됨)외부 호출이 제각각인 코드에 공통 모듈을 넣으면서 전면 교체도 방치도 아닌 길을 찾은 기록이다.
-
요청 밖으로 뺀 무거운 계산
(수정됨)주문 등록에 삼 초가 걸리던 것을 구간별로 나눠 보고 취소 여부를 기준으로 무거운 부분을 밖으로 뺀 기록이다.
-
버튼이 다시 활성화됐는데 서버는 계속 돌고 있었다
(수정됨)같은 자료가 두 번씩 들어간 원인이 화면과 서버의 시간 제한 차이였고 접수와 처리를 나눠 고친 기록이다.
-
나가는 길과 돌아오는 길
(수정됨)인계받은 배포 절차서에 돌아오는 길이 없어서 판 보관과 링크 전환으로 그 절반을 채운 기록이다.
-
조회 키가 어느 컬럼인지 정확히 알아야 했다
(수정됨)인덱스가 있는데도 느린 조회에서 실제로 찾는 컬럼과 인덱스가 다르다는 것을 로그로 확인한 기록이다.
-
필드 하나가 늘어서 멈췄다
(수정됨)우리가 아무것도 안 바꿨는데 외부 연동이 실패한 원인이 응답에 늘어난 필드였고 관용 범위를 다시 정한 기록이다.
-
도우미 함수인 줄 알았는데 외부를 부르고 있었다
(수정됨)조회는 빠른데 화면이 느리던 원인이 가벼운 이름의 함수 안에 있던 외부 호출이었고 묶어서 고친 기록이다.
-
들어오는 자리와 실제로 일하는 자리가 달랐다
(수정됨)주소가 가리키는 파일과 실제로 도는 코드가 달라 위치 찾기에만 반나절이 걸렸고 코드가 말하게 고친 기록이다.
-
세지 않아도 되는 것을 세고 있었다
(수정됨)느린 목록 화면에서 전체 건수를 세는 조회가 목록 자체보다 오래 걸리던 것을 화면별로 갈라 정리한 기록이다.
-
지운 캐시가 그 캐시가 아니었다
(수정됨)설정을 바꾸고 캐시를 지워도 화면이 안 바뀌던 원인을 계층을 세어 가며 프로세스 메모리에서 찾은 기록이다.
-
평균이 감추는 것
(수정됨)평균 응답 시간이 절반으로 줄었는데 불만은 그대로였던 이유를 분포와 백분위에서 확인한 기록이다.
-
검색 결과와 DB가 다를 때
(수정됨)검색 색인과 DB가 어긋나 없는 페이지로 가던 문제를 막기보다 아는 쪽으로 풀고 정본을 정한 기록이다.
-
복사한 블록은 갈라진다
(수정됨)같은 로직이 다섯 군데에 복사돼 조금씩 갈라져 있던 것을 비교 로그를 거쳐 하나로 모은 기록이다.
-
목록 하나에 쿼리가 몇 백 번
(수정됨)느린 목록 화면에서 코드 한 줄이 행 수만큼 조회를 만들어 내던 것과 미리 가져오기의 함정까지 확인한 기록이다.
-
남이 그 컬럼을 읽고 있으면 그것이 약속이었다
(수정됨)안 쓰는 줄 알고 없앤 컬럼 때문에 다른 팀 배치가 멈춘 뒤 무엇이 약속인지 목록으로 만든 기록이다.
-
OR로 묶으면 인덱스를 못 탄다
(수정됨)조건이 단순한데도 느린 목록 조회에서 두 컬럼을 묶은 조건이 인덱스를 막고 있던 기록이다.
-
채널마다 처리기가 따로 여덟 개였다
(수정됨)채널마다 따로 있던 여덟 개의 처리 코드를 단계별로 같은 곳과 다른 곳을 세어 갈라 정리한 기록이다.
-
내가 안 쓴 코드베이스 읽기
(수정됨)수년간 쌓인 대형 코드베이스에 합류해 전체를 훑는 대신 요청 하나를 끝까지 따라가며 지도를 만든 기록이다.
-
인수인계 목록이 진짜 문서였다
(수정됨)프로젝트를 마무리하며 자료를 성격별로 갈라 무엇을 남겨야 다음 사람이 이어받는지 정리한 기록이다.
-
자동 복구가 감추는 것
(수정됨)장비가 멈추면 자동으로 다시 띄우는 장치가 문제 자체를 안 보이게 만들어 알림과 상한을 넣은 기록이다.
-
실패한 것만 보면 안 보이는 것
(수정됨)오류 난 표본의 공통점을 원인으로 볼 뻔했다가 정상 표본과 비율로 대조해 조합 원인을 찾은 기록이다.
-
다 보관할 수 없어 무엇을 남길지 정했다
(수정됨)채굴 장비 지표를 초 단위로 InfluxDB에 쌓다가 디스크가 차서 기간별 해상도를 갈라 남긴 기록이다.
-
변화의 부호를 봤다
(수정됨)절대 임계로 걸어 둔 알림이 오탐을 내던 것을 자기 대비 변화와 기대 부호를 보는 방식으로 바꾼 기록이다.
-
큐에 쌓인 것이 두 종류다
(수정됨)작업 큐에 쌓인 대기가 두 종류였고 각각 조치가 반대라 재투입이 아무 소용이 없던 기록이다.
-
한 대뿐이라 손댈 수가 없었다
(수정됨)수집 서버가 한 대라 고칠 것이 있어도 손대지 못하던 상태를 한 대를 더 놓아 풀어낸 기록이다.
-
대수를 늘려도 안 빨라진다
응답이 느린 관리 화면에서 프로세스를 늘려도 안 나아진 원인을 가려낸 기록이다.
-
지표가 안 올라오면 멈춘 건가
(수정됨)그래프가 비어 있는 것이 정지인지 할 일이 없었던 것인지 안 갈리던 감시를 선언 목록과 심장박동으로 고친 기록이다.
-
답은 데이터시트 각주에 있었다
특정 레지스터만 0이 나오던 원인이 데이터시트 각주의 유효 조건이었고 예제 코드에도 같은 답이 있던 기록이다.
-
코드에 적힌 값이 실제 값이 아니다
(수정됨)장비가 예상과 다른 주소로 통신하던 원인이 값의 출처가 넷인 데 있었고 그것을 드러낸 기록이다.
-
붙이면 사라지는 버그
(수정됨)디버거를 붙이면 증상이 사라지는 문제를 대상을 안 건드리는 계측과 링 버퍼로 잡은 기록이다.
-
타임아웃이 네 곳에 있다
(수정됨)큰 응답만 끊기는 문제에서 타임아웃이 한 곳이 아니라는 것을 확인하고 설정 지도를 만든 기록이다.
-
전에 실패한 이력이 처리 방식을 정했다
(수정됨)통신이 복구되면 밀린 자료를 몰아 보내던 것을 실패 이유별로 나누고 속도와 시점을 흩은 기록이다.
-
다 끝났다는 신호가 먼저 왔다
(수정됨)여러 대를 동시에 처리하는 스크립트가 아직 도는 중인데 완료를 알린 원인과 완료 판정을 바꾼 기록이다.
-
시험 환경이 살아 있는 동안 확인했다
(수정됨)현장에 나가면 못 하게 되는 확인을 사무실에 장비가 있는 동안 목록으로 만들어 몰아서 끝낸 기록이다.
-
디스크에 안 쓰고 성공을 돌려준다
(수정됨)저장한 설정이 전원을 껐다 켜면 사라지던 원인이 저장 매체가 flush를 흉내만 내는 데 있던 기록이다.
-
장비에 두 번 보내면
(수정됨)원격 장비에 명령을 내리는 코드에서 응답이 유실됐을 때 재시도가 안전한지를 명령의 성질로 가른 기록이다.
-
값비싼 결론으로 가기 전에
통신이 간헐적으로 끊기는 문제에서 부품 불량을 의심하기 전에 확인 비용으로 순서를 잡은 기록이다.
-
문서 없는 장비의 통신 규격을 덤프로 알아냈다
(수정됨)규격 문서가 없는 장비의 통신을 그대로 떠서 길이 자리와 검사값 규칙을 하나씩 맞춰 본 기록이다.
-
우회부터 만들 뻔했다
(수정됨)라이브러리가 값을 잘못 돌려주는 것을 우회로 넘기려다 이미 고쳐진 판이 있음을 확인하고 순서를 정한 기록이다.
-
계산 시트가 전부 변수였다
(수정됨)장비 수익 계산 시트를 수식 대신 항목 이름만 보고 어떤 구조의 계산인지 짚어 본 기록이다.
-
계정이 아니라 주소 문제였다
(수정됨)외부 연동의 거부 응답이 계정이 아니라 나가는 주소 때문이었고 경유 지점으로 모아 푼 기록이다.
-
흐름표가 말하지 않은 것
(수정됨)매칭 서비스 흐름표를 다 읽고 나서 거기 없는 다섯 가지를 목록으로 대조해 찾아낸 기록이다.
-
내 쪽에서는 보이는데
(수정됨)한쪽에서는 보이고 다른 쪽에서는 안 보이는 상황을 가르려고 확인 정보를 화면에 넣고 배포를 고친 기록이다.
-
매칭의 결말이 셋이었다
(수정됨)매칭 흐름표의 분기가 셋으로 갈리는 이유와 중간 해지·선결제·빈 번호가 남긴 물음을 읽은 기록이다.
-
같은 조회를 매번 손으로 짰다
(수정됨)일주일에 몇 번씩 오는 같은 확인 요청을 매번 손으로 짜다가 스크립트와 공통 조회로 옮긴 기록이다.
-
매칭 서비스의 양쪽
(수정됨)매칭 서비스의 흐름표가 두 벌인 이유와 한쪽에만 있는 화면 셋이 무엇을 말하는지 읽은 기록이다.
-
가끔 나는 것을 잡는 방법
(수정됨)재현이 안 되는 시간 초과를 발생 순간의 정보를 모아 분포로 좁히고 원인 둘을 갈라낸 기록이다.
-
번호 체계가 비대칭을 드러냈다
화면 흐름표의 번호 체계 자체가 설계와 그 안의 비대칭을 담고 있던 기록이다.
-
하겠다고 한 것과 다르게 했다
(수정됨)작업 방법을 말없이 바꿔서 진행했다가 지적을 받고 보고 방식을 다시 잡은 기록이다.
-
배경 절의 숫자들
(수정됨)사업계획서 배경 절에 어떤 숫자가 왜 그 순서로 놓여 있는지 읽어 본 기록이다.
-
도구가 못 다루는 경우가 나왔다
(수정됨)센서 값을 읽는 도구가 새 장비에서 안 되던 것을 조건문 대신 표와 한 벌의 읽기 코드로 푼 기록이다.
-
하나만 멈추고 나머지는 계속 돌았다
(수정됨)계정이 잠긴 것을 한 프로세스만 감지하고 멈춘 사이 나머지가 계속 시도해 잠금이 안 풀린 기록이다.
-
양방향이 바꾸는 것
전력망 자료에 반복되는 양방향이라는 표현이 무엇을 바꾸는지 짚어 본 기록이다.
-
만들기만 하고 잇는 것을 빠뜨렸다
(수정됨)수집 자료를 큰 디스크에 쌓으려던 구조에서 연결 단계가 빠져 자료가 시스템 디스크에 쌓인 기록이다.
-
특허 둘이 같은 폴더에 있었다
(수정됨)새 도메인 조사 폴더에 시장 자료와 특허와 협약서가 함께 들어 있는 이유를 읽은 기록이다.
-
다시 돌렸더니 두 벌이 등록됐다
(수정됨)설치 스크립트를 다시 돌린 뒤 수집이 두 배로 들어온 원인을 찾고 여러 번 돌려도 같은 결과가 되게 고친 기록이다.
-
시험 계획이 코드보다 앞인 이유
표준 산출물 목록에서 시험 문서가 코드보다 앞 번호에 있는 이유를 짚어 본 기록이다.
-
파일이 다 있길래 같은 줄 알았다
(수정됨)두 서버의 파일 목록이 같은데 동작이 달랐던 원인을 해시 비교로 찾고 그 비교를 배포에 붙인 기록이다.
-
전원 없는 중계 보드
(수정됨)개발 항목의 무전원 중계 보드 이름 하나에 담긴 위치와 목적과 제약을 읽은 기록이다.
-
패킷망과 신호망을 잇는다
(수정됨)전력망 자료의 개발 항목에서 두 종류의 망을 잇는 변환기가 경계에서 무엇을 정해야 하는지 읽은 기록이다.
-
같은 쓰기를 두 방식으로 했다
(수정됨)펌웨어 스크립트의 두 분기가 같은 목적에 마운트 복사와 직접 쓰기를 나눠 쓰는 이유를 읽은 기록이다.
-
100%가 안 되면 어디까지 되는지
(수정됨)시험 코드 적용률 100%가 안 되는 상황에서 못 한다로 끝내지 않고 부분별 도달선을 잡은 기록이다.
-
마커를 맨 마지막에 쓴다
(수정됨)펌웨어 설치 스크립트 끝부분에서 완료 마커의 위치와 sync·재부팅·주석 덩어리를 읽은 기록이다.
-
하나 고쳤더니 다음 것이 나왔다
(수정됨)오류를 하나씩 만나며 고치던 것을 실행 전에 필요한 것을 한 번에 훑는 방식으로 바꾼 기록이다.
-
쓰기 전에 지워야 한다
(수정됨)펌웨어 설치 스크립트에서 플래시에 쓰기 전에 지우는 순서와 하드코딩된 파티션 주소를 읽은 기록이다.
-
한 대만 보고 판단했다
(수정됨)수집 서버 네 대 중 한 대만 확인하고 이상 없다고 답했다가 전체를 한 표로 보는 방법을 만든 기록이다.
-
패키지 하나에 보드가 둘이었다
(수정됨)펌웨어 갱신 패키지 하나에 두 보드용이 함께 들어 있고 설치 스크립트가 바이너리 문자열로 판정하는 구조를 읽은 기록이다.
-
정상 종료가 오류로 기록됐다
(수정됨)손으로 종료한 프로그램이 비정상 종료로 기록되던 것을 종료 이유별로 갈라내고 재시작 정책까지 정한 기록이다.
-
늦게 도착하는 센서 값을 다루는 법
(수정됨)현장 장비의 값을 모아 그래프를 그렸는데 값이 순서대로 오지 않아 기준 시각과 요약 시점을 다시 정한 기록이다.
-
시각을 그대로 읽었다가 아홉 시간 어긋났다
(수정됨)오래 도는 트랜잭션을 찾다가 시각을 그대로 읽어 아홉 시간을 잘못 판단하고 시간대 기준을 정리한 기록이다.
-
스택이 다섯 번 바뀐 해
한 해 동안 여러 도메인을 짧게 거치면서 얻은 것과 잃은 것을 정리한 기록이다.
-
실패가 쌓이는데 건마다 대응했다
(수정됨)하루 몇 건씩 오는 수집 실패 알림을 건마다 처리하다가 일주일치를 목록으로 모아 공통 원인을 찾은 기록이다.
-
과제가 끝날 때 남기는 것
(수정됨)과제 결과물을 넘기면서 코드와 문서만으로는 재현이 안 돼 빌드·실행·측정 조건까지 채운 기록이다.
-
둘 중 무엇을 지울지 몰랐다
(수정됨)비슷한 이름의 폴더가 여럿 쌓인 작업 자리를 무엇이 도는지 확인하고 기준을 세워 정리한 기록이다.
-
운영에 손대기 전에 확인하는 것
(수정됨)운영 환경을 급하게 손대야 할 때 매번 생각하지 않아도 되게 확인할 것을 목록으로 만든 기록이다.
-
옮기고 나서 가리키는 것을 안 고쳤다
(수정됨)저장 경로를 다른 볼륨으로 옮긴 뒤 그것을 가리키던 것들이 남아 통계가 빈 기록이다.
-
두 팀이 한 DB를 쓸 때
(수정됨)한 DB를 두 시스템이 함께 쓰면서 생긴 제약과 그 안에서 정한 것들의 기록이다.
-
기술로는 되는데 계약으로 안 됐다
(수정됨)계정을 더 만들어 잘 쓰다가 며칠 뒤 전부 정지된 원인이 계약 조건에 있던 기록이다.
-
핀 하나를 나눠 쓴 대가
(수정됨)핀이 부족해 하나를 두 용도로 쓰게 되면서 소프트웨어가 떠안은 제약과 그 비용을 숫자로 적어 올린 기록이다.
-
폴더를 옮겼는데 옛 경로가 코드에 남아 있었다
(수정됨)수집 파일의 폴더 구조를 바꿨는데 코드와 cron·백업 스크립트에 옛 경로가 남아 있던 기록이다.
-
처음 감시 체계를 세우며
여러 장비의 상태를 모아서 보는 체계를 처음부터 세우면서 정한 것들의 기록이다.
-
지우기 전에 대안이 있는지 봤다
(수정됨)저장소 이력에 들어간 접속 키를 없애야 하는데 그 키로 장치들이 붙어 있던 기록이다.
-
데이터시트를 처음 읽을 때
삼백 쪽이 넘는 칩 문서를 앞에서부터 읽지 않고 필요한 곳부터 찾아 읽은 기록이다.
-
세 집계가 같은 구간을 다시 셌다
(수정됨)주기가 다른 세 집계가 각자 원본을 훑으면서 같은 구간을 반복해 읽던 것을 정리한 기록이다.
-
해 본 적 없는 일의 기간을 잡았다
(수정됨)감이 없는 일에 기간을 잡아야 해서 모르는 부분부터 줄여 간 기록이다.
-
방화벽 규칙을 넣었는데 안 막혔다
(수정됨)방화벽 규칙을 넣었는데 밖에서 계속 붙던 원인을 순서와 도구 계열에서 찾은 기록이다.
-
테스트가 없는 코드를 고칠 때
테스트가 하나도 없는 오래된 코드를 고치기 전에 현재 동작을 고정한 기록이다.
-
기록의 계정으로 사람을 특정할 수 없었다
(수정됨)설정이 바뀐 이력을 봤는데 공용 계정이라 누가 바꿨는지 알 수 없던 기록이다.
-
배포 절차를 문서로 만들며
(수정됨)나만 할 수 있던 배포를 남이 실행할 수 있는 문서로 옮기면서 겪은 것들의 기록이다.
-
배치가 표를 잡고 있었다
(수정됨)자료 저장이 간헐적으로 시간 초과로 실패하던 원인이 같은 시각에 도는 배치였던 기록이다.
-
하드웨어에 디버거를 붙이며
(수정됨)멈춰서 보는 방법과 흘려보내며 보는 방법을 상황에 따라 갈라 쓴 기록이다.
-
재는 주기와 남기는 주기를 나눴다
장치가 매초 보내는 값으로 저장 공간이 차자 재는 것과 남기는 것을 갈라낸 기록이다.
-
연구 과제로 개발할 때
성능 수치가 목표로 정해진 과제에서 일반 개발과 무엇이 다른지 정리한 기록이다.
-
선로에 실제로 흐르는 것을 봤다
(수정됨)보냈다고 찍혀 있는데 서버에 안 들어오던 자료를 중간에서 잡아 확인한 기록이다.
-
현장에 나가서 본 것
실내에서 잘 돌던 장비를 현장에 설치하고 나서 드러난 것들을 정리한 기록이다.
-
로그를 어디서부터 잘라야 하는지
(수정됨)로그를 최근 몇 시간으로 자르니 볼 때마다 숫자가 달라져 기준점을 다시 잡은 기록이다.
-
두 DB를 한 트랜잭션으로 묶고 싶을 때
서로 다른 DB 두 곳에 자료를 넣어야 하는데 한쪽만 성공하는 상태를 다룬 기록이다.
-
사양서를 안 보고 코드부터 짰다
(수정됨)새 센서 값이 계속 이상해서 코드를 고치다가 원인이 사양서에 있었던 기록이다.
-
프레임워크가 구조를 정해 줄 때
(수정됨)폴더와 계층이 정해진 틀에서 일하며 무엇이 편해지고 무엇이 번거로워지는지 잰 기록이다.
-
센서가 값을 안 줄 때를 안 정해 뒀다
(수정됨)읽기에 실패한 것을 값으로 돌려주다가 실제 값과 구분이 안 되던 것을 고친 기록이다.
-
로그를 못 남기는 것을 재기
(수정됨)출력이 비싼 자리에서 무엇을 어떻게 남길지 골라 가며 계측을 붙인 기록이다.
-
설정돼 있길래 되는 줄 알았다
(수정됨)등록돼 있으니 되고 있는 줄 알았던 백업이 석 달 전에 멈춰 있던 기록이다.
-
남의 장비를 역으로 읽기
소스도 만든 곳도 없는 장비의 동작을 안에서부터 알아내는 순서를 정리한 기록이다.
-
눌러도 아무 일이 없는 버튼이 있었다
(수정됨)화면 틀에 남아 있던 동작하지 않는 요소들을 찾아서 정리한 기록이다.
-
웹을 감싼 앱을 만들며
이미 있는 웹 화면을 감싸는 방식으로 앱을 만들면서 경계를 그어 간 기록이다.
-
시도 한 번이 비싼 경우가 있다
외부 연동을 시험하다 계정이 잠긴 뒤 시도 횟수를 아껴 쓰는 방법을 정리한 기록이다.
-
지울 수 없는 데이터를 다루기
기존 기록을 고치지 않고 정정 기록을 쌓는 설계를 처음 다루면서 정리한 기록이다.
-
먼저 읽는 쪽을 바꾸니 조회가 줄었다
(수정됨)오래 걸리던 동기화 배치에서 반복의 기준을 뒤집어 조회 수를 크게 줄인 기록이다.
-
도메인을 옮겨 다녔다
성격이 다른 도메인을 오가면서 무엇이 옮겨지고 무엇이 안 옮겨지는지 정리한 기록이다.
-
직접 만들었는데 이미 방식이 있었다
환경별 설정 값을 넣는 방법을 직접 만들고 나서 도구에 이미 있었음을 알게 된 기록이다.
-
문서 없는 장비 프로토콜 읽기
문서도 소스도 없는 장비와 통신하기 위해 오가는 것을 잡아서 구조를 알아낸 기록이다.
-
기본 상태만 보고 끝냈다
화면을 고치고 확인했는데 접은 상태를 안 봐서 다시 지적을 받은 기록이다.
-
매출을 검증하는 화면을 만들며
우리 집계와 결제 대행사 내역을 비교하는 화면을 만들면서 차이를 다룬 기록이다.
-
확인하려고 넣은 조건이 코드에 남았다
원인을 찾으려고 잠깐 넣은 조건이 지워지지 않고 그대로 로직이 된 기록이다.
-
소켓 서버를 다른 플랫폼으로
로직은 그대로인데 입출력 처리 방식이 달라서 구조 전체가 바뀐 이식 작업의 기록이다.
-
오류만 띄우고 다음 행동을 안 줬다
세션이 끊긴 화면에서 같은 오류만 반복해서 뜨던 것을 유형별 처리로 바꾼 기록이다.
-
DB 앞에 캐시를 두면서 배운 것
같은 조회가 반복되는 자리에 캐시를 두면서 지우는 쪽이 훨씬 어려웠던 기록이다.
-
아무것도 안 고르면 빈칸이 나왔다
(수정됨)선택하지 않은 상태를 표현하지 않아서 목록이 비어 나오던 화면을 고친 기록이다.
-
확률을 코드로 내보내기 전에
확률로 결과가 정해지는 기능을 내보내기 전에 많이 돌려서 확인한 기록이다.
-
하나만 보고 맞다고 했다
화면을 옛 판과 같게 맞추는 작업에서 무엇과 비교했는지가 문제였던 기록이다.
-
처음 관리형 인프라를 썼을 때
장비를 직접 준비하던 방식과 비교해 관리형 인프라가 무엇을 바꿨는지 정리한 기록이다.
-
어디서 정해지는지 몰라 못 바꿨다
설정 파일을 고쳤는데 값이 안 바뀌던 원인을 계층을 따라가며 찾은 기록이다.
-
게임 서버가 몇 시간마다 멎었다 — 원인은 락 순서였다
죽지도 않고 로그도 안 남는데 응답만 멈추던 서버의 원인을 잠금 순서에서 찾은 기록이다.
-
두 테이블이 같은 번호를 썼다
두 테이블이 같은 기본키 값을 쓰고 한쪽만 자동 증가인 설계를 읽어 본 기록이다.
-
밀어 준 값과 조회한 값이 달랐다
바뀐 값을 밀어 주던 방식에서 바뀌었다는 사실만 알리는 방식으로 바꾼 기록이다.
-
관리자 테이블에 컬럼이 둘뿐이었다
관리자 테이블에 아이디와 비밀번호만 있는 것을 보고 무엇이 없는지 유저 테이블과 대조해 읽어 본 기록이다.
-
안 되는데 어디부터 볼지 몰랐다
같은 종류의 문제를 매번 다른 순서로 뒤지다가 확인 순서를 정해 둔 기록이다.
-
선물함이 별도 테이블이었다
지급할 재화를 바로 넣지 않고 선물함 테이블을 거치게 한 설계를 읽어 본 기록이다.
-
이름은 옛 용도를 가리키고 있었다
(수정됨)이름이 가리키는 용도와 실제로 담고 있는 것이 달라진 모델을 정리한 기록이다.
-
유저 테이블에 성격이 다른 컬럼이 섞여 있었다
유저 테이블의 컬럼을 성격별로 갈라 보면서 저장된 기록 값의 의미를 읽어 본 기록이다.
-
같은 것을 여섯 가지 이름으로 부르고 있었다
문서에서 기능을 못 찾은 이유가 같은 것을 여러 이름으로 부르고 있어서였던 기록이다.
-
소셜 동작마다 엔드포인트가 하나씩이었다
연동 인터페이스가 동작마다 하나씩 나뉘어 있는 이유를 명세에서 읽어 본 기록이다.
-
서버마다 빌드 도구 버전이 달랐다
같은 소스인데 내 자리에서 만든 것만 되던 원인이 빌드 환경 차이였던 기록이다.
-
결제에 상태가 셋이었다
결제 인터페이스가 둘로 나뉘고 상태가 셋인 이유를 명세에서 읽어 본 기록이다.
-
대부분 비어 있는 컬럼이 있었다
(수정됨)주문 테이블의 컬럼 상당수가 거의 비어 있던 이유와 그것을 어떻게 다룰지 정한 기록이다.
-
응답에 코드와 사유가 따로 있었다
명세서의 열몇 개 인터페이스가 같은 응답 껍데기를 공유하는 구조를 읽어 본 기록이다.
-
숫자가 안 맞아서 보니 기준이 달랐다
(수정됨)같은 항목을 세는데 두 자료의 숫자가 크게 달랐던 원인을 정의에서 찾은 기록이다.
-
심볼 하나에 행이 셋이었다
같은 설계서 안에서 어떤 값은 문자열로 두고 어떤 값은 행으로 나눈 기준을 읽어 본 기록이다.
-
비어 있는 값이 오류가 아니었다
(수정됨)필터에 안 걸리는 상품들의 유형 값이 비어 있던 이유를 나눠서 확인한 기록이다.
-
무료 슬롯이 일반 슬롯을 가리켰다
같은 테이블 안에서 자기 자신을 가리키는 참조와 0이 없음을 뜻하는 설계를 읽어 본 기록이다.
-
어느 단위의 상태인지 안 적혀 있었다
(수정됨)배송 완료로 보이는데 아직 안 받았다는 문의에서 상태의 단위가 갈리는 것을 확인한 기록이다.
-
검색만을 위한 테이블이 따로 있었다
설계서에서 같은 값을 담은 검색 전용 테이블을 왜 따로 두었는지 읽어 본 기록이다.
-
볼 때마다 같은 구조를 다시 파악했다
문제를 볼 때마다 같은 구조를 다시 확인하던 것을 한 번 정리해 문서로 만든 기록이다.
-
로그에 변동량과 총액이 같이 있었다
로그 테이블에 변동량과 변동 후 총액이 함께 있는 것이 왜 중복이 아닌지 읽어 본 기록이다.
-
포기한 것과 지운 것을 같이 다뤘다
(수정됨)계속 재시도되는 실패 작업을 정리하면서 포기와 삭제를 갈라서 다룬 기록이다.
-
배열을 문자열에 넣어 뒀다
설계서에서 정규화가 안 된 두 자리를 보고 그것이 왜 그렇게 됐는지 읽어 본 기록이다.
-
저장할 때마다 무거운 계산이 돌았다
(수정됨)상품 저장에 사 초가 걸리던 것을 응답에 필요한지로 갈라 밖으로 뺀 기록이다.
-
로그인 하나에 서버가 셋이었다
게임 서버 가이드에서 로그인 절차에 서버 셋이 관여하는 이유를 읽어 본 기록이다.
-
화면 번호로 조회했는데 0건이었다
문의로 받은 사용자 번호로 조회했더니 없다고 나온 원인을 확인한 기록이다.
-
서버를 사는 대신 빌려 쓰기 시작했다 — 처음 한 달의 기록
(수정됨)IDC에 서버를 넣던 방식에서 EC2와 RDS로 옮기며 한 달 동안 겪은 것과 잰 것을 정리한 기록이다.
-
명령 하나에 서버가 멈췄다
세션 수를 세려고 친 명령 하나가 서비스를 멈춰 세운 뒤 그 성질을 정리한 기록이다.
-
두 처리기가 같은 작업을 집었다
(수정됨)보상이 두 번 지급된 원인이 작업을 집는 방식에 있었음을 확인하고 고친 기록이다.
-
화폐인가 자산인가
(수정됨)조사 보고서의 결론을 하나로 쓸 수 없어서 관점을 둘로 나눠 적은 기록이다.
-
올리는 순서가 곧 의존 관계였다
점검 후 전부 올렸는데 접속이 안 되던 원인이 올리는 순서에 있던 기록이다.
-
200을 받고 원본을 지웠다
(수정됨)큐에 넣는 데 성공한 것을 처리 완료로 보고 원본을 지우던 배치를 고친 기록이다.
-
게임 서버에 루프가 둘이었다
(수정됨)서버 라이브러리에서 받는 루프와 처리하는 루프가 나뉘어 있는 이유를 읽어 본 기록이다.
-
만드는 쪽과 처리하는 쪽이 떨어져 있었다
지급이 안 됐다는 문의에서 요청 로그까지만 있고 처리 결과가 없던 것을 정리한 기록이다.
-
파일 하나에 프로세스 하나를 띄우고 있었다
(수정됨)권한을 맞추는 스크립트가 사십 분씩 걸리던 원인이 프로세스 생성 횟수였던 기록이다.
-
포트 번호를 매번 찾고 있었다
(수정됨)규칙 없이 붙은 포트 번호를 매번 문서에서 찾던 것을 대역 규칙으로 정리한 기록이다.
-
거래소가 약한 자리였다
(수정됨)조사 보고서에서 중앙이 없다는 기술의 거래소가 왜 중앙이 되는지 읽어 본 기록이다.
-
운영과 시험이 한 서버에 섞여 있었다
인계받은 환경에서 운영과 시험이 한 인스턴스에 있던 것을 확인하고 나눈 기록이다.
-
볼 때마다 계산할지 미리 계산할지
볼 때마다 계산하던 요약 화면을 미리 계산해 두는 방식으로 바꾸며 따진 것들의 기록이다.
-
수수료 계산이 곱셈 두 번이었다
(수정됨)가정 두 개가 결과를 만든다.
-
사고는 프로토콜에서 안 났다
(수정됨)연표를 만들어 놓고 보니 갈렸다.
-
소수점 여덟 자리
(수정됨)최소 단위가 왜 이렇게 작은가.
-
이미지 처리가 요청을 붙잡았다
저장은 금방인데 응답이 늦었다.
-
설정이 도중에 바뀌어 있었다
여러 사람이 같은 서버를 만지면 내가 아는 상태가 아닐 수 있다.
-
설정을 바꿨는데 아무 일도 안 일어났다
(수정됨)설정 값을 읽는 코드가 없으면 그 값은 아무 효과가 없다.
-
메뉴를 코드에서 찾고 있었다
화면 구성이 코드가 아니라 자료에 있으면 코드를 뒤져도 안 나온다.
-
결제 통지가 두 번 왔다
저쪽이 재시도한 것이었다.
-
확장자와 내용이 달랐다
확장자는 올리는 쪽이 정하는 문자열이다.
-
같은 비밀번호가 파일 세 개에 들어 있었다
같은 값이 여러 곳에 있으면 한 곳만 바꿨을 때 나머지가 남는다.
-
원인이 하나가 아니었다
주문 알림 실패를 고쳤는데도 남아 있던 실패를, 로그조차 없는 두 번째 경로를 찾아 갈라낸 기록이다.
-
한 테이블에 여러 주체 자료가 섞여 있었다
(수정됨)소유 주체를 구분하는 방법이 없으면 남의 자료가 조회에 섞인다.
-
세션을 DB에 넣었다
서버가 둘이 되니 로그인이 풀렸다.
-
고쳤는데 화면이 안 바뀌었다
같은 캐시가 운영에서는 이득이고 개발에서는 수정을 가린다.
-
상대가 실제로 보내는 것을 재서 고정했다
문서와 실제 응답이 다르면 실제를 기준으로 삼는다.
-
쿠폰이 두 번 쓰였다
결제 창을 두 개 열었다.
-
채널마다 형식이 달랐다
대상마다 규격이 다르면 공통 처리와 대상별 처리를 나눈다.
-
전역 값이 계정마다 저장돼 있었다
대상과 무관한 값을 대상별 테이블에 두면 값이 갈라진다.
-
가격 계산이 두 곳에 있었다
화면과 결제가 달랐다.
-
권한이 없어서 버튼이 안 보였다
(수정됨)조건으로 가려지는 화면은 그 조건을 만들어야 확인이 된다.
-
로그인을 하나로 할지 둘로 할지 정했다
로그인을 합칠지 나눌지는 편의와 위험을 재서 정한다.
-
스크립트가 중간에 멈췄고, 백업본이 사라져 있었다
실패하면 멈추는 것과 이미 한 것을 무르는 것은 다르다.
-
파일 이름이 사용자에게서 왔다
다운로드에서 다른 파일이 나왔다.
-
예약 작업이 두 번 돌았다
같은 작업이 겹쳐 돌면 자료가 두 번 처리된다.
-
설정 하나가 없어서 전체가 멈췄다
부가 기능의 설정이 없다고 본체가 죽으면 그건 부가 기능이 아니다.
-
트랜잭션이 이미 끝나 있었다
안쪽에서 트랜잭션을 열면 그 순간 바깥쪽이 확정된다. MySQL 은 중첩을 지원하지 않는다.
-
주문번호를 맞힐 수 있었다
주소에 번호가 그대로 있었다.
-
주소가 가리키는 것이 달라졌다
주소 하나가 한 대를 가리키다 여러 대를 가리키게 되면 전제가 바뀐다.
-
고쳤는데 다른 파일이 이기고 있었다
환경별 설정 파일이 기본 파일을 덮는 줄 알았는데 아예 대체하고 있었다.
-
관계가 한 테이블로 표현되지 않았다
예외가 계속 생기면 자료 구조가 실제 관계와 다르다는 신호다.
-
목록 순서가 볼 때마다 달랐다
(수정됨)정렬이 같은 값끼리는 순서를 보장하지 않는다.
-
쓰던 도구가 없어져서 구조를 다시 봤다
(수정됨)기대고 있던 것이 없어지면 그것에 기댄 구조를 다시 본다.
-
백업은 있었는데 복구를 해 본 적이 없었다
백업이 도는 것과 그것으로 복구되는 것은 다르다.
-
설정 파일이 지워지는 자리에 있었다
지워지는 자리에 둔 설정은 언젠가 없어진다.
-
넘겨받은 코드를 누가 볼지 정했다
넘겨받은 코드는 누가 볼지 정하지 않으면 아무도 안 본다.
-
실패 목록만 있고 이유는 없었다
(수정됨)실패를 한 덩어리로 두면 무엇을 손봐야 하는지 알 수 없다.
-
백업을 두 곳에 뒀다
복구해 보기 전에는 모른다.
-
잘되는 경우만 시험했다
(수정됨)오류 경로는 일부러 만들지 않으면 안 돌아 본다.
-
읽는 코드는 있는데 쓰는 코드가 없었다
값이 안 나오면 읽는 쪽보다 쓰는 쪽이 있는지 먼저 본다.
-
이력 문장이 제각각이라 읽기 어려웠다
이력 문구 형식을 정하지 않으면 나중에 읽을 수 없다.
-
연말 정산은 한 번만 돌아야 했다
(수정됨)되돌릴 수 없는 작업을 처음 맡았다.
-
넉 달 이어진 문제가 근거가 됐다
구조를 바꾸자는 말이 매번 밀리던 것을 넉 달치 실패 기록을 표로 쌓아 숫자로 만들어 통과시킨 기록이다.
-
지적받은 것을 문서에 먼저 반영했다
지적을 코드에만 반영했다가 문서가 낡아 같은 빠짐이 재현된 뒤 문서를 먼저 고치고 저장소에 함께 담게 된 기록이다.
-
이름이 비슷한 표가 둘이었다
(수정됨)한 글자 다른 표가 함께 있어 조회가 조용히 틀리던 것을 찾고 옛 표를 가려내는 방법과 이름 규칙까지 정한 기록이다.
-
다시 처리했는데 지연 목록에 남았다
재발송한 주문이 지연 목록에서 사라지지 않던 것을, 한 행이 두 번의 출고를 담고 있었기 때문으로 확인한 기록이다.
-
같은 곳을 세 번 임시로 막았다
같은 증상을 세 자리에서 따로 막고 나서야 갱신 경로를 한 함수로 모은 기록이다.
-
정리 작업이 끝나지 않았다
(수정됨)지우는 속도가 쌓이는 속도를 못 따라가던 정리 배치를 고치고 DELETE 로는 디스크가 안 줄어드는 이유까지 확인한 기록이다.
-
있으면 안 되는 파일을 찾았다
업로드 폴더에 실행되는 파일이 들어온 것을 확인하고 세 층으로 막으면서 md5sum 대조로 무엇이 바뀌었는지 가려낸 기록이다.
-
배경 작업이 한도를 다 쓰고 있었다
같은 발송 계정의 한도를 여러 곳이 나눠 쓰다 한 곳이 다 쓴 상황을 몫 배분과 발송 조건 수정으로 푼 기록이다.
-
로그인 방식이 배포 형태를 정했다
서버를 늘리자 로그인이 풀리던 문제에서 세션을 어디에 두느냐가 배포 형태를 정한다는 것을 확인한 기록이다.
-
재고가 마이너스인 상품이 팔리고 있었다
(수정됨)품절 배치가 음수 재고를 놓치던 WHERE 조건과 그 음수가 생긴 경쟁 조건을 함께 고친 기록이다.
-
인덱스를 넣었더니 다른 데가 느려졌다
(수정됨)조회를 위해 넣은 인덱스가 대량 INSERT 를 느리게 한 것을 확인하고 넣기 전 절차를 정한 기록이다.
-
관리자와 사용자가 같은 조회를 썼다
관리자와 사용자가 같은 모델 함수를 공유해 한쪽을 고칠 때 다른 쪽이 깨지던 것을 나누고 인덱스까지 정리한 기록이다.
-
로그에 개인정보가 그대로 있었다
(수정됨)print_r 로 요청을 통째로 남기던 로그에서 개인정보를 걸러 내고 이미 쌓인 것과 파일 권한까지 정리한 기록이다.
-
재고를 실시간으로만 맞추려니 어긋난 걸 못 잡았다
(수정됨)즉시 차감만으로 맞추던 재고가 어긋나던 것을 변동 원장과 주기 대조로 잡고 그 대조가 실제로 잡는지까지 확인한 기록이다.
-
알림이 아무도 안 보는 곳으로 갔다
mail() 이 true 를 돌려줘도 도착한 것이 아니라는 것을 반송함에서 확인하고 받는 곳과 수준 구분까지 손본 기록이다.
-
얼마나 두는지를 정하고 나서 지웠다
커진 주문 표를 옮기기 전에 보존 기간을 정하고 CREATE TABLE ... LIKE 로 보관 표를 만든 뒤 건수와 합계를 대조한 기록이다.
-
업로드 폴더에서 나온 낯선 파일
업로드 폴더에 들어온 웹셸을 발견하고 확장자 검사가 왜 뚫리는지 확인한 뒤 실행 자체를 끈 기록이다.
-
조회 스크립트에 삭제를 넣을지 말지
(수정됨)안 쓰는 파일을 찾는 스크립트에 삭제를 넣자는 제안을 두고 사람이 목록을 보는 단계를 남긴 기록이다.
-
재시도가 실패를 가리고 있었다
(수정됨)안쪽에 숨어 있던 재시도가 실패를 성공으로 덮고 있던 것을 시도 횟수 집계로 드러내고 CURLOPT_TIMEOUT 까지 찾아간 기록이다.
-
배포가 업로드 폴더를 지웠다
(수정됨)rsync --delete 가 서버에만 있던 파일을 지운 사고와 -n 만 준 확인 명령이 아무것도 안 본 이유를 정리한 기록이다.
-
설정을 저장소 밖으로 뺐다
저장소에 들어 있던 데이터베이스 접속 정보를 밖으로 빼고 svn:ignore 가 안 막아 주는 부분과 이력에 남은 값까지 정리한 기록이다.
-
두 가지를 한 번에 바꿨다
성능 개선 두 가지를 동시에 적용해 무엇이 효과였는지 모르게 된 것을 나눠 재며 확인한 기록이다. 재는 조건을 고정하는 방법도 함께 정했다.
-
같은 파일인데 한쪽에서만 404였다
(수정됨)업로드 파일명의 유니코드 정규화가 저장과 조회에서 달라 같은 파일을 못 찾던 것을 이름 생성으로 고친 기록이다.
-
응답 헤더에 남은 횟수가 있었다
(수정됨)본문만 읽어 원인을 못 찾던 429 응답의 이유가 X-RateLimit 헤더에 있던 것을 확인한 기록이다.
-
온 김에 더 고칠지 정했다
(수정됨)버그를 고치러 들어간 김에 여러 개를 한꺼번에 바꿨다가 SVN 역병합으로 물리고 커밋을 나누는 방식으로 바꾼 기록이다.
-
옵션 조합이 폭발했다
옵션 조합을 미리 만들어 두던 방식을 재고를 넣을 때 만드는 방식으로 바꾸며 화면 구성까지 바꾼 기록이다.
-
조건 하나가 전부를 걸렀다
(수정됨)갑자기 0건이 된 통계를 WHERE 조건을 하나씩 빼서 원인을 찾고 값 체계 변경 절차를 세운 기록이다.
-
판을 올렸더니 쓰던 기능이 없어졌다
(수정됨)PHP 5.4 에서 없어진 magic_quotes_gpc 와 register_globals 에 기대던 코드가 조용히 다르게 동작한 것을 찾아낸 기록이다.
-
다른 분기에 작업이 남아 있었다
(수정됨)trunk 만 보고 없다고 답했다가 branches 에서 작업을 찾은 뒤 SVN 브랜치 정리 기준을 세운 기록이다.
-
상품 속성이 너무 많았다
(수정됨)속성이 많은 상품을 컬럼으로 담다 InnoDB 행 크기 한계에 부딪쳐 행으로 빼고 다시 일부를 되돌린 기록이다.
-
행이 늘자 목록이 느려졌다
EXPLAIN 을 처음 보고 복합 인덱스로 Using filesort 를 없애면서 컬럼 선택과 개수 조회도 손본 기록이다.
-
되돌릴 수 없는 표를 고치기 전에
(수정됨)원본에서 다시 계산할 수 없는 정산 표를 고치기 전에 사본과 사전 조회로 대상을 확인한 기록이다. ROW_COUNT() 가 무엇을 세는지도 함께 확인했다.
-
통계 화면이 시간 초과로 죽었다
(수정됨)매번 원본을 세던 통계를 미리 계산해 두고 오늘 것만 직접 세도록 나눈 기록이다. 오늘의 경계가 PHP 와 MySQL 에서 갈리던 것도 함께 잡았다.
-
미리 본 것과 실제로 돌린 것의 범위가 달랐다
확인용과 실행용 조건이 갈려 예상보다 네 배가 바뀐 일을 조건 단일화와 건수 대조로 막은 기록이다.
-
목록 한 화면에 쿼리가 백 번 나갔다
(수정됨)행마다 조회하던 목록을 한 번에 묶고 실행 계획을 본 뒤 인덱스를 넣은 순서를 정리한 기록이다.
-
컨트롤러가 다 하고 있었다
한 함수에 몰려 있던 처리를 나누면서 중복 조회로 생긴 버그를 잡고 시험 가능성까지 얻은 기록이다.
-
주소가 코드에 통째로 박혀 있었다
(수정됨)코드와 저장된 자료 양쪽에 박힌 주소를 찾아 설정과 변환으로 옮기고 남은 것을 다시 센 기록이다.
-
화면대로 테이블을 만들었다
화면 항목 수를 그대로 컬럼으로 옮긴 설계가 한계에 부딪쳐 행으로 바꾼 기록이다.
-
배송비 규칙이 너무 많았다
배송비 조건문이 계속 늘어나던 것을 표로 정리하고 자료로 빼면서 적용 이력까지 남긴 기록이다.
-
지우려던 것이 비상용 통로였다
접속 기록만 보고 정리하려던 계정이 비상용이었던 것을 계기로 정리 기준을 바꾼 기록이다.
-
배포할 때마다 인증서가 덮였다
(수정됨)갱신 주기가 다른 자산이 배포 대상에 섞여 덮이던 것을 자리와 목록으로 분리한 기록이다.
-
나눠 뒀던 것을 왜 합쳤는지 적었다
나눠 둔 배치를 다시 합치면서 나눈 이유를 먼저 찾고 다시 나눌 조건까지 남긴 기록이다.
-
서버를 처음 넣어 봤다
장비 설치를 처음 하며 준비물보다 절차가 먼저라는 것과 시점별 목록의 필요를 확인한 기록이다.
-
왜 바뀌었는지 자식 쪽에 안 남았다
상위 변경이 하위 값을 바꿨는데 하위 이력에 남지 않아 조사가 막혔던 것을 고친 기록이다.
-
설정이 두 군데서 만들어지고 있었다
고친 설정이 반영되지 않던 원인이 값을 만드는 자리가 둘이었기 때문임을 확인한 기록이다.
-
지운 자료가 시험 자료에 섞였다
표시로만 지운 행이 시험 표본에 섞여 든 것을 계기로 표본 뽑는 절차를 정리한 기록이다.
-
검색이 전부 훑고 있었다
(수정됨)부분 일치 검색을 글자 단위로 잘라 별도 컬럼에 담고 넣는 쪽과 찾는 쪽을 맞춘 기록이다.
-
같은 파일을 둘이 동시에 고쳤다
서버에서 직접 고치던 설정 파일이 서로 덮이던 것을 배포 경로와 사본 남기기로 줄인 기록이다.
-
다시 받다 끊겼는데 원래 있던 것도 없어졌다
전부 지우고 다시 넣는 동기화가 수신 실패로 빈 상태를 만든 것을 순서와 검사로 고친 기록이다.
-
장비마다 필요한 계정이 달랐다
편의로 네 대에 같은 계정을 만들었다가 필요한 곳만 남기고 나머지를 막은 기록이다.
-
돈 내고 부르던 것을 안에서 처리했다
외부 호출 요금이 늘어난 원인을 호출 수로 세어 찾고 횟수와 대상을 줄인 기록이다.
-
크롤러를 느리게 만들었다
(수정됨)속도를 줄이자 시간 안에 못 끝나던 수집을 겹침 방지와 일의 양 줄이기로 푼 기록이다.
-
어느 장비에 둘지 성능과 위치로 골랐다
장비를 넣으면서 사양뿐 아니라 랙 위치와 전원과 접근 경로까지 함께 정한 기록이다.
-
소스에 박힌 절대 주소
(수정됨)시험 서버가 운영을 가리키던 원인인 절대 주소를 한 곳에서 만들게 바꾸고 검사까지 세운 기록이다.
-
엑셀 업로드에 검사가 없었다
(수정됨)표 파일 업로드가 중간에 죽어 절반만 들어가던 것을 묶기와 사전 검사로 고친 기록이다.
-
코드와 데이터가 다른 길로 갔다
(수정됨)스키마 변경을 손으로 하던 것을 파일로 남겨 코드와 함께 올리고 순서와 되돌림까지 정한 기록이다.
-
반복문 안의 외부 요청
(수정됨)건마다 외부를 부르던 배치를 부분 수신과 결과 저장과 동시 호출로 줄이며 매번 시간을 잰 기록이다.
-
컬럼이 무슨 뜻인지 물어보고 나서 조건을 짰다
컬럼 이름만 보고 짠 통계 조건이 틀린 뒤 값의 뜻과 세는 대상을 먼저 정하게 된 기록이다.
-
로그가 디스크를 채웠다
(수정됨)로그 한 파일이 디스크를 채워 서비스가 멈춘 것을 회전과 보관 개수와 두 단계 알림으로 고친 기록이다.
-
화면 하나 보고 전부 확인했다고 적었다
표본 하나로 전체 확인을 보고했다가 같은 증상이 다시 난 뒤 목록과 통과 조건을 세운 기록이다.
-
공유 방법을 바꾸니 둘 자리도 정해야 했다
협력사와 주고받는 방법을 바꾸면서 파일 서버를 어디에 둘지와 계정·보관 기간까지 같이 정한 기록이다.
-
검색은 되는데 3초가 걸렸다
(수정됨)앞이 열린 부분 일치 검색이 인덱스를 못 쓰는 이유와 되찾는 방법을 실행 계획으로 확인한 기록이다.
-
키를 넣었는데 비밀번호를 물었다
(수정됨)IDC 서버에 SSH 공개키를 넣었는데도 비밀번호를 묻던 것을 상세 로그로 좁혀 권한 문제였음을 확인한 기록이다.
-
코드 밖으로 꺼낸 SQL
(수정됨)쿼리를 코드 안 문자열에서 별도 파일로 옮기며 두 치환 방식의 차이까지 확인한 기록이다.
-
설계도와 실제 사이
설계도와 실제 스키마가 양방향으로 어긋난 상태에서 정본을 정하고 설명을 옮긴 기록이다.
-
한 테이블에 다 담으니 인덱스를 못 걸었다
(수정됨)여러 용도를 한 테이블에 담아 인덱스 선택이 막힌 상태를 나누면서 옮기는 순서까지 정한 기록이다.
-
행은 있는데 파일이 없었다
(수정됨)트랜잭션이 파일 시스템까지 되돌리지 못해 생긴 불일치를 저장 순서와 반환값 확인으로 고친 기록이다.
-
조회인 줄 알고 돌렸는데 변경이었다
(수정됨)조회용과 변경용 스크립트가 한 폴더에 섞여 사고가 날 뻔한 것을 폴더와 이름 규칙으로 가른 기록이다.
-
누가 붙느냐가 구조를 정했다
통계를 여러 곳에 공개하기 전에 붙는 주체를 적어 접근 방식과 계산 자리를 정한 기록이다.
-
지금 구조로는 필요한 만큼 안 됐다
(수정됨)저장 공간이 반복해서 차던 것을 증가 속도와 구성 비율로 나눠 보고 처리 순서를 정한 기록이다.
-
계층이 없던 파견지
계층이 없는 코드베이스에서 범위 밖을 건드리지 않고 내가 만드는 것만 나눠 만든 뒤 넘긴 기록이다.
-
이 값이 어디서 오는지 몰랐다
여러 단계를 거쳐 정해지는 배송비의 출처를 값과 함께 넘기고 계산 과정을 보이게 만든 기록이다.
-
200인데 본문이 비어 있었다
(수정됨)성공 코드와 빈 본문 때문에 실패가 정상으로 기록되던 것을 내용 기준 판정으로 고친 기록이다.
-
떠 있는 것과 응답하는 것은 다르다
(수정됨)프로세스가 살아 있는데 요청을 못 받던 상태를 단계별 확인과 상태 경로로 가른 기록이다.
-
프레임워크가 정해 둔 자리
규약이 정해 둔 폴더와 이름과 호출 방향을 따르며 설정이 줄어든 이유를 정리한 기록이다.
-
두 프로젝트가 같은 것을 만들고 있었다
(수정됨)비슷해 보이는 두 화면을 합칠지 나눌지를 목적으로 가르고 반쯤 합치는 선을 정한 기록이다.
-
다시 보냈더니 앞부분이 두 번 갔다
조각으로 나가는 발송에서 전체 단위로만 표시하다 재발송에 중복이 난 것을 조각 단위 기록으로 고친 기록이다.
-
어디까지 자동으로 할지 같이 정했다
(수정됨)정산 확인 자동화에서 사람이 남는 단계를 가르고 끝난 것의 기준을 정한 기록이다.
-
그날 배치가 두 번 돌았다
하루치 집계가 두 배로 나온 원인을 넣기만 하는 배치에서 찾고 두 번 돌아도 되게 고친 기록이다.
-
용도마다 무엇을 쓸지 정했다
캐시 저장소에 성격이 다른 다섯 가지가 섞여 로그아웃이 나던 것을 용도별로 가른 기록이다.
-
새 글을 계속 보여 주는 게시판
새로고침을 줄이려고 넣은 주기 조회가 요청을 늘려서 응답 크기와 간격과 조건을 손본 기록이다.
-
큐를 넣을 자리인지 다시 봤다
메일 지연을 큐 대신 테이블과 배치로 처리하고 무엇을 포기했는지까지 적어 둔 기록이다.
-
압축을 풀었더니 파일명이 깨졌다
(수정됨)압축 형식이 파일명 인코딩을 담지 않아 푸는 쪽이 짐작하던 문제를 이름 규칙으로 닫은 기록이다.
-
몰아 보내면 막힌다
(수정됨)외부 사이트에서 주기적으로 자료를 가져오며 간격과 수집량과 실패 감지를 정한 기록이다.
-
알림을 줄였더니 다음 건이 묻혔다
(수정됨)알림 억제를 한 덩어리로 걸었다가 다른 사건까지 묻힌 것을 단위와 건수 표시로 고친 기록이다.
-
한 곳에서만 깨지던 글자
(수정됨)한 화면에서만 한글이 깨지던 원인을 값의 이동 경로에서 찾고 세 자리 설정을 맞춘 기록이다.
-
0건이 통과인지 미측정인지 몰랐다
(수정됨)빈 검색 결과를 통과로 읽었다가 배포 뒤에 터진 뒤로 대조군과 대상 개수를 함께 보게 된 기록이다.
-
내가 안 건드렸는데 값이 바뀌어 있었다
손으로 넣은 값을 배치가 덮고 있던 것을 찾고 시험 방법과 덮어쓰기 규칙까지 정리한 기록이다.
-
API가 없어서 화면을 읽었다
상대에게 인터페이스가 없어 화면을 읽되 깨질 것을 전제하고 그만둘 조건까지 적어 둔 기록이다.
-
세션에 있던 언어
언어를 세션에 두어 링크 공유가 깨지던 것을 주소로 옮기고 문구를 파일로 분리한 기록이다.
-
올라온 것이 어디에 있는지 몰랐다
여러 경로로 오던 요청을 공유 문서 한 곳에 모으고 상태를 넷으로 줄인 기록이다.
-
이력은 쌓이는데 볼 방법이 없었다
기록만 남기고 볼 화면이 없으면 기록은 쓰이지 않는다.
-
프로젝트마다 다른 빌드 방식
(수정됨)프로젝트마다 빌드가 다르면 옮길 때마다 새로 배운다.
-
DB 앞에 캐시를 두고 나서
언제 지울지가 어려웠다.
-
지우고 다시 만들다 더 나빠졌다
(수정됨)되돌릴 수 없는 단계가 먼저 오면 뒤가 실패했을 때 원래보다 나빠진다.
-
값은 옮겼는데 코드 체계가 달랐다
(수정됨)옛 시스템의 코드와 새 시스템의 코드가 다르면 대응표가 먼저다.
-
처리 중에 바뀌는 대상 집합
(수정됨)처리 전에 대상을 표시해 두면 그 사이 들어온 것이 안 섞인다.
-
PHP에 없는 것들
(수정됨)문법은 며칠이면 됐는데 자바에서 당연하던 것들이 없어서 그게 더 오래 걸렸다.
-
거쳐 가는 것을 설정으로 뺐다
(수정됨)임시로 거쳐 가는 경로는 설정으로 켜고 끌 수 있게 둔다.
-
일이 없던 기간에 읽은 것들 — 빅데이터라는 말이 막 퍼지던 때
(수정됨)다음 일이 정해지지 않은 동안 당장 쓸 데 없는 자료를 읽고 있다.
-
색 넷을 가르는 기준
(수정됨)시나리오를 먼저 정하고 나서 값을 봤다.
-
누르는 자리가 너무 작았다
(수정됨)그림 크기와 누르는 크기가 같았다.
-
환경마다 설정이 달랐다
(수정됨)빌드할 때 정할지 실행할 때 정할지.
-
메시지 형식을 직접 정하기
(수정됨)메시지 형식을 처음 정해 봤다.
-
빠진 것을 그냥 채우지 않았다
(수정됨)빠진 것을 채우기 전에 왜 빠졌는지 본다.
-
건너뛴 이유를 안 남겨서 몰랐다
안 한 이유가 여럿이면 무엇 때문에 안 했는지 남긴다.
-
센서가 0, 0, 0을 돌려줬다
(수정됨)처음엔 배선을 의심했다.
-
매일 아침 빌드를 내는 일을 맡았다
잡일이라고 생각했는데 몇 주 하다 보니 보이는 것이 있었다.
-
같은 숫자를 세 곳에 적어 두고 있었다
(수정됨)같은 값이 여러 곳에 적혀 있으면 한 곳만 고치게 된다.
-
초기화 순서를 바꿨더니 안 떴다
서로 기대는 것들은 순서가 곧 동작 조건이다.
-
순위를 빠르게 보여줘야 했다
(수정됨)내 순위를 구하는 게 느렸다.
-
막아 둔 것이 문제의 크기를 알려 줬다
(수정됨)막아 둔 장치가 있다는 것 자체가 그 문제가 컸다는 뜻이다.
-
어느 사본이 진짜인지 몰랐다
같은 파일이 여러 벌 있으면 어느 것이 쓰이는지부터 확인한다.
-
예외 처리가 쌓여서 구조를 바꿨다
같은 자리에 예외가 계속 붙으면 구조가 안 맞는 것이다.
-
앱이 조금씩 죽어 갔다
(수정됨)재현이 안 되는 죽음 앞에서 재현 대신 측정으로 방향을 바꿨다.
-
중계하면서 다듬었더니 안 맞았다
서버에서 받은 아이템 목록을 화면에 맞추려고 다듬었다가 다시 보낼 때 서버가 거부하던 것을 좁혀 간 기록이다.
-
어떤 기기에서만 죽었다
(수정됨)로그가 남지 않아 못 찾았다.
-
같은 자원인데 경로마다 규칙이 달랐다
같은 것을 주는 경로가 둘이면 규칙도 둘이 된다.
-
세어 보니 하나뿐이었다
몇 개인지 세면 만들 것이 줄어든다.
-
무엇을 금지하는지 정확히 안 읽었다
(수정됨)이용 약관이 제한하는 대상을 확인하지 않으면 엉뚱한 것을 금지한다.
-
결과를 클라이언트가 정하고 있었다
앱이 계산한 값을 서버가 그대로 받으면 그 값을 신뢰하는 것이다.
-
후보를 두 번에 걸쳐 좁혔다
후보가 많으면 싼 기준으로 먼저 자른다.
-
어떤 기기에서만 소리가 끊겼다
(수정됨)동시에 몇 개까지 나는지 몰랐다.
-
빌드는 성공인데 고친 게 안 들어갔다
(수정됨)빌드 성공은 결과물이 실행되는 자리로 갔다는 뜻이 아니다.
-
일부러 느린 쪽을 골랐다
(수정됨)빠른 쪽이 항상 고를 쪽은 아니다.
-
규칙을 넓히지 않았다
한 경우를 막으려고 만든 규칙을 전부에 적용하지 않는다.
-
이미 쓰는 번호가 끼어 있었다
번호를 나눠 쓸 때는 이미 쓰는 것을 먼저 확인한다.
-
원인을 모른 채 우회했다
첫 추측으로 원인을 단정하면 같은 문제를 다른 곳에서 다시 만난다.
-
더 낫다고 바꿀 이유가 되지는 않았다
더 나은 것을 찾았다고 바로 갈아타지 않는다.
-
업데이트하니 저장이 깨졌다
구조가 바뀌면 못 읽는다.
-
상태를 바꾸면 값 두 개가 같이 움직였다
함께 움직여야 하는 값은 함께 바꾸는 자리를 만든다.
-
하나를 눌렀는데 여러 곳이 바뀌었다
한 동작이 여러 상태를 건드리면 중간에 끊겼을 때 어긋난다.
-
한 번 재 보고 계획을 버렸다
(수정됨)재 보기 전에는 어느 쪽이 나은지 모른다.
-
내 기기에서만 확인하고 냈다
(수정됨)한 대에서 확인한 것은 그 한 대에서 된다는 뜻이다.
-
리소스 파일명이 규칙이었다
이름 규칙으로 자료를 찾으면 규칙이 깨질 때 조용히 실패한다.
-
설계가 전제한 것이 없었다
전제가 지금 구성에 없으면 그 설계는 아직 못 쓴다.
-
코드 하나로 두 플랫폼을 낸다고 했다
(수정됨)맞는 말이었지만 그 문장이 감춘 것이 있었다.
-
저장 파일이 깨지자 앱이 안 떴다
읽는 자료가 깨졌을 때 무엇을 할지 정해 두지 않으면 시작조차 못 한다.
-
글자가 잘려서 기능이 안 됐다
(수정됨)길이 제한에 걸려 잘리면 기능 실패로 나타난다.
-
목록이 전부를 불러오고 있었다
(수정됨)화면에 열 개 보이는데 백 개를 만들었다.
-
다른 기기로 옮겨도 같은 자리에서 죽었다
(수정됨)환경을 바꿔서 증상이 사라지면 원인이 아니라 여유가 달라진 것이다.
-
이름 한 글자가 달라서 안 불렸다
(수정됨)이름 하나가 안 맞아서 못 찾았다.
-
고쳤다고 했는데 확인을 안 했다
재현 절차가 없으면 고쳤는지 아닌지도 확인할 수 없다.
-
결제 영수증을 확인해야 했다
(수정됨)앱이 성공이라고 하면 줬다.
-
한 자리에 계산값과 손으로 넣은 값이 섞였다
(수정됨)계산으로 나온 값과 손으로 넣은 값을 같은 자리에 두면 구분이 안 된다.
-
값을 하나 늘렸더니 다른 데서 안 잡혔다
상수를 늘리면 그 상수를 분기하는 모든 자리가 대상이 된다.
-
화면을 오갈수록 죽었다
(수정됨)오래 켜 두면 죽었다.
-
점수가 음수가 됐다
(수정됨)값이 담을 수 있는 범위를 넘으면 조용히 반대편으로 넘어간다.
-
애니메이션이 건너뛰었다
(수정됨)프레임 수로 움직이고 있었다.
-
빌드할 때마다 번호가 바뀌었다
(수정됨)다시 만들 때마다 값이 바뀌면 저장된 것이 어긋난다.
-
주석이 옛날 동작을 설명하고 있었다
(수정됨)코드는 고치고 주석은 안 고치면 주석이 거짓말을 한다.
-
인벤토리는 배열이 아니었다
(수정됨)아이템 목록인 줄 알았는데 정렬과 중첩과 최대치가 붙으면서 구조를 두 번 다시 짰다.
-
원인이 조건식 하나였다
여러 증상의 원인이 한 줄인 경우가 있다.
-
밸런스 수치가 코드 곳곳에 박혀 있었다
조정할 값이 코드에 흩어져 있으면 조정할 때마다 빌드가 필요하다.
-
두 규칙이 서로 다른 말을 했다
(수정됨)고정값과 비율로 각각 능력치를 올리는 두 아이템을 같이 끼웠을 때 화면마다 다른 값이 나오던 것을 좁혀 간 기록이다.
-
처음 켜자마자 전부 한꺼번에 일어났다
첫 실행에서 하는 일을 나눠 두지 않으면 한꺼번에 터진다.
-
빌드가 20분 걸렸다
(수정됨)한 줄 고치고 20분을 기다렸다.
-
한쪽은 층이 있고 한쪽은 평평했다
두 쪽의 구조가 다르면 옮길 때마다 변환이 붙는다.
-
단계마다 자료 형태가 바뀌고 있었다
형태가 바뀌는 지점을 모르면 어디서 어긋났는지 못 찾는다.
-
배포는 됐는데 아무것도 안 바뀌었다
배포 명령이 성공해도 대상이 틀렸으면 아무 일도 일어나지 않는다.
-
자바에서 받은 문자열을 안 놓아 줬다
(수정됨)경계를 넘어온 자원은 넘겨준 쪽 규칙대로 놓아 줘야 한다.
-
물려받은 규칙을 확인 없이 따랐다
이유를 모르는 규칙은 이유를 찾고 나서 따른다.
-
같은 이미지가 다르게 보였다
(수정됨)기기마다 화면이 달랐다.
-
한꺼번에 보냈더니 한도에 걸렸다
(수정됨)밀린 것을 한 번에 처리하면 그 순간의 부하가 한도를 넘는다.
-
재기동하니 세던 값이 사라졌다
(수정됨)메모리에만 있는 값은 프로세스가 끝나면 없어진다.
-
지우고 다시 깔라고 안내했다
지우고 다시 까는 것이 항상 안전한 조치는 아니다.
-
한 곳만 고쳤더니 다른 길에서 또 났다
(수정됨)고친 방식이 다른 경로에도 필요한지 본다.
-
배포 빌드가 다르게 돌았다
(수정됨)개발에서는 되는데 배포본에서 안 됐다.
-
인자 없이 실행했더니 운영에 나갔다
기본 동작이 위험한 쪽이면 실수 한 번이 사고가 된다.
-
화면 파일에 업무 로직이 있었다
고칠 곳을 못 찾았다.
-
안 보이는 문자 하나가 스크립트를 막았다
(수정됨)줄 끝의 캐리지 리턴은 눈에 안 보이지만 명령의 일부가 된다.
-
같은 값이 두 곳에 있었다
같은 값을 두 곳에 두면 반드시 갈린다.
-
같은 것이 두 개 생겨 있었다
하나뿐이라고 생각한 것이 둘이면 값이 갈린다.
-
검증이 앱 쪽에 있었다
앱이 보낸 값을 그대로 믿었다.
-
서버가 늘 때마다 코드를 고쳤다
(수정됨)환경마다 다른 값이 코드에 박혀 있으면 배포가 수정 작업이 된다.
-
몇 개인지부터 세어 봤다
전부 세어 보기 전에는 얼마나 걸릴지 모른다.
-
데이터는 넣었는데 고칠 화면이 없었다
(수정됨)넣기만 하고 고칠 방법을 안 만들면 매번 사람이 불린다.
-
같은 주소가 상태마다 다른 일을 했다
하나의 Servlet 주소가 세션 상태에 따라 세 갈래로 갈리던 것을 주소로 갈라 놓은 기록이다.
-
보상은 한 번만 줘야 했다
(수정됨)두 번 눌렀더니 두 번 들어갔다.
-
지워도 되는지 아무도 몰랐다
(수정됨)무엇을 얼마나 두는지 정해야 지울 수 있다.
-
재시작했더니 다 로그아웃됐다
(수정됨)세션이 프로세스 안에 있으면 재시작마다 사라진다.
-
성공이라는데 내용이 없었다
(수정됨)응답이 성공이어도 안에 값이 있는지는 따로 봐야 한다.
-
라이브러리가 권한을 늘렸다
(수정됨)넣지 않은 권한이 목록에 있었다.
-
커밋에 남의 파일이 딸려 갔다
(수정됨)작업 사본을 여럿이 쓰면 커밋 대상이 내 것만은 아니게 된다.
-
한꺼번에 바꿨더니 문의가 들어왔다
(수정됨)사용자 상태를 일괄로 바꾸면 그만큼 문의가 온다.
-
보낼 때와 받을 때가 달랐다
보내는 쪽과 받는 쪽의 문자 처리가 다르면 글자가 깨진다.
-
처음 세운 리눅스 웹 서버
(수정됨)로컬에서 되던 것이 서버에 올리니 안 됐다.
-
한 줄에 너무 많이 담겨 있었다
한 항목이 커지면 읽는 쪽 비용이 같이 오른다.
-
연결을 계속 잡고 있었다
(수정됨)Android에서 Apache HttpClient를 요청마다 새로 만들어 쓰다가 오래 켜 두면 느려지던 것을 공용 인스턴스로 바꾼 기록이다.
-
임시 디렉터리가 비워져 있었다
(수정됨)시스템이 관리하는 자리에 둔 파일은 언젠가 사라진다.
-
손으로 돌리면 되는데 예약으로는 안 됐다
(수정됨)예약 실행은 로그인 셸과 다른 환경에서 돈다.
-
화면 파일 안의 조회 코드
웹 화면을 만드는 파일 안에 DB 조회가 들어 있었다.
-
내 코드 때문인 줄 알았다
(수정됨)언제부터 나는 증상인지 먼저 본다.
-
처음 짚은 원인이 아니었다
(수정됨)처음 떠오른 원인부터 고치면 시간을 더 쓴다.
-
SQL이 어디에도 없었다
자바 코드에 SQL이 없었다.
-
이름과 다른 뜻으로 쓰고 있었다
(수정됨)이름이 뜻하는 것과 다르게 쓰면 그 이름을 믿은 코드가 틀린다.
-
XML로만 된 설정
파일이 계속 늘었다.
-
로그를 남기게 해 뒀는데 안 남고 있었다
log4j 설정 파일이 클래스패스에 없어 로그가 하나도 안 남던 것을 확인하고 수준 기준까지 정한 기록이다.
-
로그인은 되는데 다음 요청에서 풀렸다
(수정됨)Android에서 로그인은 되는데 다음 호출부터 세션이 풀리던 것이, 요청마다 HttpClient를 새로 만들어 쿠키가 사라졌기 때문임을 확인한 기록이다.
-
버전 관리를 처음 쓰면서
(수정됨)SVN을 처음 쓰면서 남의 변경을 덮은 일과 충돌 표시를 만난 기록이다.
-
임시로 붙인 이름이 그대로 남았다
급하게 붙인 클래스 이름이 참조가 늘면서 못 바꾸게 된 것을 SVN 이력으로 확인한 기록이다.
-
폴더가 없어서 파일이 안 만들어졌다
첨부파일 저장이 오류 없이 실패하던 것이 상위 폴더가 없어서였음을 확인하고 뜰 때 검사하게 만든 기록이다.
-
공통이 뭔지 모른 채 공통 클래스를 만들었다
(수정됨)화면마다 흩어진 Apache HttpClient 호출을 한 클래스로 모으면서, 모으는 것과 공통으로 만드는 것이 다른 일임을 확인한 기록이다.