Skip to content
isdnetworks

Archives

All the articles I've archived.

2026 100
November 5
October 10
September 9
August 7
July 6
  • 빌드가 돈다고 있는 것은 아닌 키

    (수정됨)

    CI가 서명 빌드를 계속 성공시키는데도 조직이 원본 키를 갖고 있지 않았던 건에서, 동작 확인과 보유 확인을 가르는 방법을 정리한다.

  • 정답이 하나인 일은 코드가 한다

    (수정됨)

    언어 모델에 수치를 맡겼을 때 나온 여섯 종류의 결함을 전수로 확인하고, 코드와 모델의 경계를 판정 가능성으로 그은 근거를 정리한다.

  • 규칙에 예외가 다섯 있었다

    (수정됨)

    스키마 규칙의 예외를 찾아 정리하다가 예외 목록을 조건으로 바꾸고, 규칙이 아예 없는 자리까지 드러난 과정을 정리한다.

  • 그 방식이면 멈추는 시간이 없었다

    (수정됨)

    수백만 건 테이블에 컬럼을 추가하면서 무엇이 잠기고 무엇이 안 잠기는지 확인하고, 사본에서 시간과 공간을 미리 잰 과정을 정리한다.

  • 부분 업데이트라고 믿은 PUT

    (수정됨)

    스펙상 경로만 다른 두 API 버전이 부분 갱신과 전체 교체로 갈렸던 건과, 엔드포인트를 갈아탈 때 확인할 항목을 정리한다.

  • 반드시 보존하라던 12기가의 실체

    (수정됨)

    반드시 보존이라는 라벨이 붙은 12기가를 열어 20메가로 줄이면서, 라벨과 사실의 거리와 0건 검사의 유효성 확인을 정리한다.

June 5
  • 로그가 없을 때의 시간 근거

    (수정됨)

    감사 로그가 없는 상태에서 트랜잭션 경계로 생성 실패와 생성 후 유실을 가른 과정과, 확정 불가를 기록하는 방법을 정리한다.

  • 건너뛸 줄 알았던 자리가 내리고 있었다

    (수정됨)

    부적격 처리가 건너뛰기가 아니라 연동 해제였던 건과, 0건인 필터를 넣을지 가르는 기준을 정리한다.

  • 할 일이 없으면 침묵하는 감시

    (수정됨)

    처리 대상이 0건이면 지표를 하나도 내보내지 않는 계측을 리뷰하면서, 하트비트가 성립하는 두 성질과 감시 키를 어디서 얻어야 하는지 정리한다.

  • 0건이 증명하는 것은 무엇인가

    (수정됨)

    그 상태값이 0건이니 안전하다는 근거가 왜 틀렸는지 코드로 확인하고, 0건이 실제로 보증하는 범위와 시점 의존적인 모수 문제를 정리한다.

  • 같은 값을 바꾸는 두 경로, 결과는 다르다

    (수정됨)

    화면에서 고치는 것과 DB에서 직접 고치는 것이 편의의 차이가 아니라 부수효과의 차이였다는 것을, 정식 경로의 코드를 읽고 확인한 과정을 정리한다.

May 6
  • 결과를 만든 확인 행위

    (수정됨)

    파일이 있는지 확인하려고 호출한 주소가 없으면 만들어 주는 경로였던 건을 계기로, 조회가 대상을 바꾸는 경우들과 확인 전에 물어야 할 것을 정리한다.

  • 거의 안 여는 자리가 있었다

    (수정됨)

    코드 정리 순서를 정하려고 파일별로 여는 빈도와 참조 횟수를 세어 보고, 자주 여는 곳과 안 여는 곳을 다르게 다룬 과정을 정리한다.

  • 스스로를 봉인하는 되먹임 없는 경로

    (수정됨)

    대량 전환 작업에서 외부 경유와 DB 직접 수정 중 무엇을 고를지 판단하면서, 빠른 경로가 함께 없애는 검증 채널을 어떻게 계산했는지 정리한다.

  • 찾다가 관련 API 둘을 더 발견했다

    (수정됨)

    필요한 API 하나를 찾다가 주변의 둘을 발견하고 셋을 성격에 맞게 나눠 쓴 과정과, 규격 목록을 주기적으로 훑어 새 기능을 놓치지 않는 방법을 정리한다.

  • 다른 종류를 같게 다룬 처리

    (수정됨)

    성격이 다른 항목을 한 목록에 두고 우선순위를 정하려다 막힌 뒤, 종류를 나누고 각각 다른 기준과 시간 배분을 적용한 과정을 정리한다.

  • 우회할 수 있는 차단

    (수정됨)

    도구 이름으로 건 차단이 다른 도구로 그대로 통과한 사례들을 모아, 조건을 대상에 걸어야 하는 이유와 정당한 우회를 다루는 방법을 정리한다.

April 5
  • 기록해 뒀는데 왜 또 걸렸나

    (수정됨)

    같은 함정을 십여 번 기록하고도 매번 다시 걸린 이유를 분석해, 기록이 재발을 막지 못하는 조건과 반복 횟수에 따른 대응을 정리한다.

  • 15만 건을 막은 조건 하나

    (수정됨)

    부정으로 쓴 상태 조건이 일어나지 않는 전이를 전제하면서 15만 건의 동기화를 영구히 막았던 건과, 상태 조건을 쓸 때 확인할 항목을 정리한다.

  • 근거 네 가지가 같은 것을 가리켰다

    (수정됨)

    로그와 시점과 코드와 재현이라는 네 종류의 근거가 각각 무엇을 말하는지 나누고, 어긋나는 근거 하나가 가장 중요한 신호가 되는 이유를 정리한다.

  • 데이터를 숨긴 짧은 조회 최적화

    (수정됨)

    커버리지가 100%인데 결과가 빠져 있던 건에서, 조회 단계의 절단과 파서가 안 보는 구조가 오류 없이 부분 결과를 만드는 방식을 정리한다.

  • 해결 방법이 셋이라 골라야 했다

    (수정됨)

    외부 API 실패에 대응하는 방법이 셋 나왔을 때 무엇을 기준으로 고를지 정하고, 결국 선택이 아니라 순서 문제였다는 것을 확인한 과정을 정리한다.

March 19
February 13
January 15
2025 81
December 11
November 7
  • 축이 다른 것과 제약을 깨는 것

    (수정됨)

    제약 위반으로 보이던 것이 축이 다른 것이었고, 끊어진 참조는 원본과 대조해 누락인지 원본 결함인지 먼저 가른 과정이다.

  • 두 갈래로 갈린 같은 관용구

    (수정됨)

    같은 일을 하는 두 방식이 섞인 이유를 시기 차이에서 찾고, 통일할 값이 있는 것만 골라 점진적으로 옮긴 과정이다.

  • 조용함과 깨짐 사이

    (수정됨)

    대량 재전송을 검토하다 실제 파손 규모를 먼저 재서 1퍼센트에도 못 미침을 확인하고, 복구 대신 로그 수정이 진짜 산출물임을 정리한다.

  • 안 쓴다를 확인하는 두 축

    (수정됨)

    좁은 범위 검색의 0건을 안 쓴다로 읽지 않고 호출부와 대입 지점 두 축으로 확인해, 운영 DB 조작을 하지 않기로 한 근거를 세운 과정이다.

  • 정리가 전송 성공에 매달려 있다

    (수정됨)

    정리하려는 대상이라서 정리가 안 되는 순환을 구 경로 코드에서 확인하고, 구경로와 신경로의 기능 비대칭을 정리한다.

  • Google Play 앱 정책 위반 알림 대응 — 한꺼번에 8건 받았을 때

    Google Play에서 앱 정책 위반 알림을 한꺼번에 여러 건 받았을 때의 확인 절차와 대응 방법을 정리한다.

  • 인프라 탓이 아니었던 지연

    (수정됨)

    배치가 느린 원인을 인프라에서 찾다가 계측 로그로 서버 시간을 분리해 구조적 특성임을 확인하고, 고칠 수 있지만 안 한다고 적은 과정이다.

October 8
  • 증거가 되는 다이제스트

    (수정됨)

    직접 호출 검증이 막힌 내부 전용 서비스에서 이미지 다이제스트 3자 대조로 배포를 증명하고, 그 검증의 한계까지 명시한 과정이다.

  • 하나로 보이는 두 문제를 갈라내기

    (수정됨)

    메모리를 늘려도 절반만 나아진 것을 덜 고쳤다로 읽지 않고 두 번째 원인을 찾아, 종료 사유로 원인을 가르는 방법을 세운 과정이다.

  • 도움말이 낡는 자리

    (수정됨)

    서버 하나의 코드와 설정과 배포 스크립트를 한자리에 놓고 교차 대조해, 한 파일만 봐서는 찾을 수 없는 불일치 다섯을 찾아낸 과정이다.

  • CloudWatch 알람 노이즈 줄이기 — SNS 토픽 필터링 실전

    CloudWatch 알람이 SNS를 통해 과도하게 발송될 때, 알람 노이즈를 줄이는 실전 방법을 정리한다. 이커머스 연동 서비스의 사례를 다룬다.

  • 서명과 경계

    (수정됨)

    외부 API 문답 수십 건을 전수 검토해 얻은 넷을 정리하고, 오류 메시지가 원인을 안 가리키는 항목일수록 전수 검토가 필요한 이유를 남긴다.

  • OpsNow360 유료 전환 시 기능 제한 해제 요청 절차

    AWS 리셀러 계약 갱신 후 OpsNow360의 유료 기능 제한 해제를 요청한 과정과, FinOps 도구 운영 시 주의할 점을 정리한다.

  • 아무것도 못 찾아도 성공을 반환하는 명령들

    (수정됨)

    검증 스크립트의 판정이 항상 한쪽으로만 나온 원인을 명령별 종료 코드 규칙에서 찾고, 검사가 실제로 가르는지 확인하는 방법을 정리한다.

  • 컬렉션마다 다른 규칙

    (수정됨)

    한글 파일명을 교정해 달라는 요청의 전제를 요청 하나로 확인해, 일괄 적용이 정상 이미지 수백만 건을 깨뜨린다는 결론에 이른 과정이다.

September 8
August 7
  • AWS 리셀러 통합 빌링 계약 갱신 — 할인율 협상 실무

    AWS 리셀러(MSP) 통합 빌링 계약 갱신 시 할인 조건 재협상, OpsNow360 연계, 계약서 변경 프로세스를 실무 관점에서 정리한다.

  • 시각 없는 상태값

    (수정됨)

    아무 기록이 없는 과거 일괄 조치를 상태값과 타임스탬프의 불일치로 재구성하고, 세는 방법이 결과를 바꾼다는 것을 정리한다.

  • 검증 순서를 읽어 화면에 반영했다

    (수정됨)

    외부 API 오류가 상세 없이 돌아오던 것을, 규격의 검증 순서를 읽어 화면 입력 순서에 반영하고 어디까지 미리 막을지 정한 기록이다.

  • 경로가 둘일 때의 게이트

    (수정됨)

    연장 작업이 실패한 줄 알았으나 애초에 생성되지 않았고, 같은 기능의 두 경로가 서로 다른 게이트를 가진 구조를 정리한다.

  • 잘못이 아니라 설계였던 중복 업로드

    (수정됨)

    중복으로 보이던 수백 건이 설계였고 기준을 좁히자 진짜 중복이 드러났으며, 상대 쪽 덮어쓰기 순서까지 확인한 과정이다.

  • 변환본 둘, 규칙 둘

    (수정됨)

    이미지가 작다는 민원의 원인을 마크업이 아니라 원본 해상도와 변환 규칙 차이에서 찾고, 선택지 셋을 영향과 함께 넘긴 과정이다.

  • 없는 것을 만들어 내던 조회

    (수정됨)

    존재 확인이 항상 참을 돌려주던 원인을 조회가 대상을 생성하는 구조에서 찾고, 부작용 있는 조회를 전수로 정리한 과정이다.

July 6
  • 게이트만으로 안 되는 결정

    (수정됨)

    조건 분기를 찾고 설명이 완성된 줄 알았다가 호출부를 읽고 이론을 철회하고, 대신 미래 위험을 기록으로 남긴 과정이다.

  • 수집원마다 렌더링 방식을 잰다

    (수정됨)

    브라우저가 필요하다고 짐작하던 수집원들을 직접 요청해 재고, 브라우저의 역할을 쿠키 공급원으로 줄인 과정이다.

  • 2단계 중간의 정지

    (수정됨)

    갱신 실패로 오진했던 약 2만 건이 실은 연동 해제 2단계 중 1단계에서 멈춘 상태였고, 그 지문을 게이트로 만든 과정이다.

  • 떼어 놓고 얻은 통과의 한계

    (수정됨)

    한 단계를 떼어 내 통과시킨 것을 무죄 증거로 삼아 며칠을 잃고, 떼어 내며 바꾼 조건을 하나씩 되돌리는 방법을 세운 과정이다.

  • 상위만 옛것을 가리키던 상태

    (수정됨)

    두 화면의 금액이 다른 문의를 정책 데이터가 아니라 상품의 참조에서 풀고, 이관이 참조를 안 옮기는 패턴을 정리한다.

  • 네 번 따로 적힌 같은 결함

    (수정됨)

    증상이 달라 보이던 장애 넷의 원인이 같았고, 기록 형식을 맞춰 모아 세니 반복 결함 넷이 드러난 과정이다.

June 6
  • 보고된 슬롯 수와 실제 장착분

    메모리 증설 가능 여부를 조회했더니 시스템이 보고한 값이 이론치였음을 세 소스로 확인한 기록이다.

  • 센티널은 코드로 강제한다

    (수정됨)

    실데이터와 센티널이 같은 키스페이스를 쓰는데 충돌 방지가 주석뿐이었고, 그 충돌이 예외가 아니라 침묵으로 나타나는 구조를 정리한다.

  • 매핑표를 먼저 완성한다

    (수정됨)

    코드 체계 이전에서 값을 하나씩 바꾸는 대신 매핑표를 먼저 완성하고, 1대1이 안 되는 것과 추정한 것을 나눠 적은 과정이다.

  • 도착률 대비 처리량으로 잰다

    (수정됨)

    프로세스 수만 보고 워커 축소를 답으로 냈다가 도착률과 처리량을 실측해 결론을 뒤집고, 조건이 바뀌면 반대가 맞는다는 것까지 정리한다.

  • 링크 없음과 미응답의 구분

    (수정됨)

    자동 판정으로 뽑은 미응답 목록을 표본 교차검증에서 뒤집고, 신호와 의미를 가르는 매칭 규칙을 세운 과정이다.

  • 한 이미지의 다중 앱 지원 여부

    (수정됨)

    비슷한 이미지 넷을 공통 층으로 묶되 한 이미지에 여러 앱을 넣지 않기로 하고, 그 선택이 보안 갱신까지 바꾼 과정이다.

May 6
  • 정렬 옵션이 없는 조회

    (수정됨)

    수정 시각 정렬이 없어 4만 건을 받던 것을, 다른 이름의 API와 필드 선택과 해시 비교로 단계별로 줄인 과정이다.

  • 다른 키를 먼저 세어 본다

    (수정됨)

    특정 불가로 남아 있던 잔여 몇 건을 옆 컬럼의 카디널리티 한 번으로 풀고, 매칭용 키와 판별용 키를 나눈 과정이다.

  • 수만 건을 한꺼번에 바꾸지 않고 나눠서 하는 법

    (수정됨)

    수만 건 재전송을 웨이브로 나누면서 대상 고정과 응답 불신과 실패 사유 분류까지 절차로 굳힌 과정이다.

  • 알려진 버그부터 검색한다

    (수정됨)

    설정을 몇 시간 뒤진 뒤에야 공개 이슈를 검색해 여섯 개가 겹쳐 있음을 확인하고, 조사 순서를 바꾼 과정이다.

  • 플랫폼마다 다른 식별자 타입

    (수정됨)

    한 대에서 먹힌 처방을 나머지 여섯 대에 퍼뜨리기 전에 조건을 확인해, 결론이 수정 없음으로 끝난 조사다.

  • 언어판마다 다른 문서 목록

    (수정됨)

    한 언어판만 보고 기능이 없다고 판단해 며칠을 우회한 뒤, 규격 파일과 갱신 날짜로 문서를 대조하는 절차를 세운 과정이다.

April 5
  • 값 하나에 테이블 여섯

    (수정됨)

    일괄 보정 전에 정식 수정 경로가 건드리는 테이블을 전수 추적해 여섯으로 확정하고, 직접 SQL 대신 커맨드를 고른 근거를 정리한다.

  • 프로젝트마다 다른 방식과 표준

    (수정됨)

    배포 방식이 제각각인 프로젝트 넷을 방식이 아니라 조건으로 통일하고, 조건을 못 채우는 하나는 그 사실을 기록으로 남긴 과정이다.

  • 단일 요청과 동시성이라는 두 축

    (수정됨)

    타이밍 창이 없다고 반박했다가 반문 한 줄로 조건이 바뀌면서 결론이 정반대가 된 조사다.

  • 읽기 패턴 재사용으로는 안 된다

    (수정됨)

    기존 패턴 재사용으로 잡았던 작업이 쓰기 경로 부재로 신규 구현이 되면서, 코드와 권한과 정책과 캐시가 함께 가야 했던 과정이다.

  • 스케줄이 없다고 기능이 없는 것은 아니다

    (수정됨)

    정리 대상으로 올린 기능이 cron에 없어 죽은 것으로 보였다가 다른 실행 경로에서 살아 있던 것을 확인하고 판정 기준을 고친 기록이다.

March 6
  • 롤링 저장소를 동결한다

    (수정됨)

    마이너 고정 트리가 없는 부가 저장소를 아카이브 스냅샷으로 동결하고, 주소 유효성과 설치 패키지 존재를 각각 검증한 과정이다.

  • 반복되는 급한 조치

    (수정됨)

    반년간 반복한 수동 조치를 시간으로 환산해 근본 수정 비용과 비교하고, 조치 횟수 자체를 지표로 삼은 과정이다.

  • 추가는 안전하고 변경은 아니다

    (수정됨)

    매핑 작업을 추가와 변경으로 가르고, 포괄적 분류의 매핑 가능 여부를 네 건 대조로 판정한 기준을 정리한다.

  • 설치와 셸 통합의 분리

    (수정됨)

    우클릭 메뉴가 안 나오는 것을 설치 실패로 오해했다가, 파일 유무로 미제공과 미적용을 가르는 절차를 정리한 과정이다.

  • 이관이 빠뜨린 부속 레코드

    (수정됨)

    한 업체 문제로 보이던 연동 실패가 이관된 백여 개 업체 전원의 문제였고, 그 사실이 보정 계획 전체를 바꾼 과정이다.

  • 미결을 닫고 다음으로 갔다

    (수정됨)

    미결을 남긴 채 다음 문서로 넘어갔다가 그 위에 쌓인 것이 전부 흔들린 뒤, 무엇을 닫고 무엇을 진행할지 가르는 방법을 정리한다.

February 5
  • 성공이 아니었던 성공 목록

    (수정됨)

    일괄 API가 처리하지 않은 건을 성공 목록에 담은 것을 청크별 되읽기로 잡아내고, 그 건을 어떻게 분류할지 정한 과정이다.

  • 작업 공간 둘의 통합 여부

    (수정됨)

    전부 합치거나 전부 나누는 대신 무엇을 합칠지를 갈라서 도구만 합치고 자료와 자격 증명은 나눈 과정이다.

  • 멱등은 전제 위에 선다

    (수정됨)

    멱등 로직이 이미 있는데도 매번 재업로드가 일어난 이유를 추적해, 식별자가 매번 바뀌면 멱등이 원리적으로 성립하지 않는다는 것을 정리한다.

  • 중간에 받은 지적의 자리

    (수정됨)

    진행 중에 받은 지적을 이미 한 것이 아까워 넘겼다가 결국 더 큰 비용을 치른 뒤, 판단 순서를 정한 과정이다.

  • 같은 것을 가리키던 식별자 셋

    (수정됨)

    내부 키와 화면 번호와 API 입력값이 전부 다른데 조사에 쓴 값을 그대로 회신에 넣었다가 상대가 못 찾은 건을 정리한다.

January 6
  • WHERE에 들어간 결론

    (수정됨)

    검증 쿼리의 조건에 검증하려는 결론을 넣어 순환논증이 된 건과, 결과가 가설과 일치할 때가 더 위험한 이유를 정리한다.

  • 상태를 안 바꾸던 컨슈머

    (수정됨)

    외부 처리는 끝났는데 우리 상태만 요청으로 남아 있던 건을 단계별로 그려서, 빠진 마지막 단계와 그 단계의 주인을 찾은 과정이다.

  • 제외를 적용하고 센다

    (수정됨)

    다음 검증 대상을 고르려고 규모를 다시 세면서, 제외 조건을 넣기 전과 후가 완전히 다른 그림을 보여 준 건을 정리한다.

  • 예외를 다 흡수하려던 표준 모델

    (수정됨)

    여섯 채널의 주문을 한 모델로 담으려다 필드가 서른 개 가까이 된 뒤, 공통과 예외를 나누고 무엇이 공통인지를 세어서 정한 과정이다.

  • 주 계정을 기준으로 잡은 구조

    (수정됨)

    최상위 계정을 어떻게 다룰지 정하고 나니 역할 분리와 권한 축소와 담당자 교체 절차까지 그 결정에서 따라 나왔다.

  • 문서에 없는 제약의 출처

    (수정됨)

    공식 문서에 없고 Q&A에만 있는 제약들을 전수로 훑어 정리하면서, 사전 검증에 반영할 것과 운영 문서에 넣을 것을 갈랐다.

2024 72
December 5
  • 터널 앞에는 L4를 쓴다

    (수정됨)

    프록시 통합 설계의 초기 가정 둘이 착수 전 읽기 전용 조사에서 모두 뒤집힌 과정과, 인바운드와 아웃바운드를 가르는 기준을 정리한다.

  • 만들어진 적 없는 미연동

    (수정됨)

    화면의 미연동 라벨이 실패가 아니라 작업 없음을 뜻한다는 것을 코드로 확인하고, 질문의 전제까지 바로잡은 과정이다.

  • 기간 없는 미처리 집계의 과대

    (수정됨)

    화면 이름만 아는 상태에서 테이블을 찾아 들어가 기간 조건 없는 미처리 집계가 레거시로 부풀려져 있음을 확인한 과정이다.

  • 넓힌 catch가 여는 안쪽

    (수정됨)

    예외 범위를 넓히는 한 줄짜리 패치의 2차 검토에서 새 실행 경로와 진단 코드의 자멸과 패치의 자기 재현 셋을 찾은 과정이다.

  • 고급 기능의 도입 시점

    (수정됨)

    떠오른 기능 다섯을 나중에 넣기 어려운 것과 아닌 것으로 갈라 둘만 지금 넣고, 안 넣은 것의 종료까지 관리한 과정이다.

November 6
  • 마켓마다 다른 중지의 뜻

    (수정됨)

    상태 불일치 수만 건을 채널별로 갈라 원인이 셋 다 다르고 매핑 누락은 0건임을 확인해, 백로그로 읽지 않기로 한 과정이다.

  • 피해 반경은 부분집합이다

    (수정됨)

    8일치가 다 깨진 것 아니냐는 지적에 대상 조건을 읽고 모집단을 정의해, 수십만 건 중 0.1퍼센트 아래로 좁힌 과정이다.

  • 이미 두 겹이던 검증

    (수정됨)

    새 기능에 붙일 검증을 짜기 전에 기존 범위를 읽어 십여 개를 안 짜고, 대신 정해야 할 정책 하나를 찾아낸 과정이다.

  • 인프라 정의에서 떼어 놓은 코드

    (수정됨)

    인프라 정의에 들어 있던 배포를 떼어 내면서 경계를 바뀌는 빈도로 정하고, 나눈 뒤 드러난 의존과 되돌리기 순서까지 정리한 과정이다.

  • 재생성을 막은 스킵 조건

    (수정됨)

    같은 주소를 다시 넣어도 스킵 조건에 걸려 아무 일도 안 일어나던 것을 외부 경유로 풀고, 폭 문제의 원인은 가정과 달랐던 과정이다.

  • 전수 조사로 확정한 현재 상태

    (수정됨)

    비용 절감 요청을 목록 만들기부터 시작해 아무도 몰랐던 자원과 다른 계정과 안 쓰는 접근 권한까지 정리한 과정이다.

October 6
  • 그대로 둔 기본값의 비용

    (수정됨)

    검색 조회 상한을 기본값으로 두어 비용과 결과 품질이 함께 나빴던 것을 고치고, 기본값을 쓰는 자리를 전부 훑은 과정이다.

  • 한 단계 더 거쳐 조인한다

    (수정됨)

    조인 결과 0건을 없다는 뜻으로 읽고 결론 낼 뻔했다가 스키마를 확인해 정반대 결과를 얻은 과정이다.

  • 코드 추정보다 앞선 DB 사실

    (수정됨)

    코드로 좁혀지지 않던 두 후보를 생성 시각과 갱신 시각이 같다는 사실로 가르고, 복구의 선행 조건까지 확정한 과정이다.

  • 개발용처럼 보이는 이름의 운영 DB

    (수정됨)

    이름만 보고 개발용으로 판단해 운영 DB를 건드릴 뻔한 뒤, 이름 대신 실체를 확인하는 목록과 맡길 것의 경계를 정한 과정이다.

  • 0이 아니었던 슬롯

    (수정됨)

    물리 서버 점검에서 슬롯 표기와 진단 필드 부재와 팬 회전율의 의미까지 다섯 가지 장비별 사실을 확인하고 기록한 과정이다.

  • 청구서를 나누는 유일한 수단

    (수정됨)

    한 계정에 섞인 네 프로젝트의 비용을 태그로 가르면서, 태그 없이 못 만들게 막고 값까지 제한한 과정이다.

September 5
  • 꺼낸 순간 낡아 있던 값

    (수정됨)

    큐 메시지에 값을 통째로 담아 낡은 값이 나중에 덮은 사고를 고치면서, 다시 읽을 것과 스냅숏이 맞는 것을 가른 과정이다.

  • 설계를 바꾼 과금 구조

    (수정됨)

    싸 보이는 구조가 요금 구조 때문에 반대인 것을 실측으로 확인하고, 과금 단위와 비중으로 줄일 대상을 정한 과정이다.

  • 먼저 돌려도 안 줄던 총시간

    (수정됨)

    큰 채널을 먼저 돌려 나머지를 가속한다는 전략의 전제를 실측으로 무너뜨리고, 동시 실행 분산으로 바꾼 과정이다.

  • 분리된 입구, 공유된 데이터

    (수정됨)

    운영 서버 한 대를 떼어 시험하려다 큐가 공유된다는 것을 확인하고, 성공하면 원복이 없는 시험은 하지 않기로 한 과정이다.

  • 실패가 아니라 안 지워진 표시

    (수정됨)

    취소가 안 된다는 문의를 주문 상태와 취소 상태의 불일치로 표시 문제로 판정하고, 조사 중 드러난 요청 폭주는 따로 분리한 과정이다.

August 7
  • 바뀐 상태와 나가지 않은 요청

    (수정됨)

    패널티 이의의 근거를 확인하다 우리 시스템이 중지를 안 보낸 것을 찾아, 반영 확인 기준을 내부 상태에서 연동 상태로 바꾼 과정이다.

  • 단계 신호였던 0

    (수정됨)

    실행 초반의 작업 0건을 버그로 보고 중단할 뻔했다가 단계 진행 신호임을 확인하고, 진행률 측정을 로그에서 기록 집계로 바꾼 과정이다.

  • 빈 프로젝트가 아닌 파일 0개

    (수정됨)

    소스 파일 0개인 프로젝트를 껍데기로 판정했다가 IDE 캐시에서 업무 규칙 수백 개를 찾고, 재개발의 과제 자체가 바뀐 과정이다.

  • 마지막으로 보낸 값의 보관

    전송은 성공인데 값이 안 맞는 문의를 마지막 전송값 컬럼 하나로 진단하게 만든 기록이다.

  • 보낼 URL의 부재

    (수정됨)

    추측으로 제시한 링크가 실재하지 않는다는 되물음을 받고 라우터 정의를 확인해, 수정안 대신 결정할 것을 정리한 과정이다.

  • 결합키 제거는 교환이다

    (수정됨)

    메모리를 줄이려 결합키를 없애면서 반환 형태 변화와 동점 처리를 확인하고, 그 교환의 방향을 맥락으로 판단한 과정이다.

  • 밖에서 다시 받아 채운 값

    (수정됨)

    응답 형식 변경으로 비게 된 식별자 수백 건을 상대에게 다시 물어 복원하고, 되찾을 수 없는 값과 원인 수정까지 나눠 처리한 과정이다.

July 5
  • 해소와 통과의 차이

    (수정됨)

    링크 존재만 보던 검사가 전부 통과했는데 실제로는 안 되던 것을 대조군으로 확인하고, 검사별로 무엇을 보는지 표로 적은 과정이다.

  • 같은 데로 가는 폴백

    (수정됨)

    폴백이 있는데도 실패가 쌓인 원인이 폴백도 같은 도메인을 쓰기 때문임을 확인하고, 인프라 확인을 코드 수정보다 앞에 둔 과정이다.

  • 인증을 시행착오로 시험하지 않는다

    (수정됨)

    잘못된 인증 요청이 계정 전체를 강등시키고 복구가 최대 2주 걸리는 규격을 문답에서 미리 읽어, 시행착오 방식을 안 쓰기로 한 과정이다.

  • 표본을 제한하는 보존 기간

    (수정됨)

    만료 설정이 관측 창을 제한한 것을 확인하고, 전제를 반증한 표본이 대표성이 없어 확증도 아닌 상태를 그대로 적은 과정이다.

  • 종결이 아닌 잔존 0

    (수정됨)

    7천여 건을 처리해 잔존을 0으로 만들고도 근본 수정이 미배포라 종결이 아님을 유입 건수로 실증하고, 드레인과 수정을 나눠 보고한 과정이다.

June 6
  • 마킹인가 실제 호출인가

    (수정됨)

    멱등일 것이라는 추정을 실행기 코드로 반증하고, 로그가 외부 응답이라는 사실을 이용해 대량 작업 대상을 좁힌 과정이다.

  • 첫 관문 통과와 완료 사이

    (수정됨)

    완료 건수를 판정 기준으로 삼아 전건 성공을 실패로 읽을 뻔한 것을 사유 이동으로 다시 재고, 보류와 실패를 나눠 보고한 과정이다.

  • 다섯 번 따로 고친 같은 문제

    (수정됨)

    같은 원인이 다섯 번 따로 기록된 것을 발견하고, 기록에 도달하지 못한 이유와 반복될수록 조사가 얕아지는 경향을 정리한 과정이다.

  • 원시 이벤트가 남기는 노이즈

    (수정됨)

    검색 로그에서 뽑은 키워드 사전에 섞인 노이즈를 다섯 종류로 분류하고, 입력과 추출과 정규화와 사후 삭제 중 어디서 막는 것이 싼지를 정리한다.

  • 이관이 바꾼 ID와 모르던 밖

    (수정됨)

    내부 이관이 발급한 새 식별자가 외부의 옛 식별자와 충돌한 경위를 추적하고, 대응된 경로와 안 된 경로의 차이까지 확인한 과정이다.

  • 버전이 아니었던 버전 필드

    (수정됨)

    상수 목록과 전혀 안 맞는 값 앞에서 목록을 의심하다가 전제를 의심하는 쪽으로 방향을 바꿔, 소스에서 30분 만에 푼 과정이다.

May 6
  • 하나에만 있던 게이트

    (수정됨)

    브라우저가 CDN으로 직접 간다는 통념을 호출 전수 조사로 확인해, 서버를 걷어내면 조용히 죽었을 경로 셋을 찾아낸 과정이다.

  • 동작을 바꾸지 않는 사전 배포

    (수정됨)

    읽기 변경을 현재 데이터에서 발동할 수 없는 조건으로 먼저 배포하고, 쓰기 플래그 하나로 전환해 위험을 카나리 한 대에 가둔 과정이다.

  • 계측은 필요한 입도에서 한다

    (수정됨)

    카테고리 매핑 실패를 세려다 결과 객체의 입도가 맞지 않던 것을, 소스를 바꿀지 별도 계측을 붙일지 견줘 정한 기록이다.

  • 라벨 말고 관계를 믿는다

    (수정됨)

    요청에 딸려 온 라벨과 데이터가 정반대인 것을 관계 컬럼으로 확인하고, 추측으로 뒤집는 대신 확인을 요청한 과정이다.

  • 어느 계층의 중복인가

    (수정됨)

    규모가 안 맞는 집계에서 세고 있던 계층이 다르다는 것을 확인하고, 삭제 대상 기준을 업무 계층 활성 레코드로 바꾼 과정이다.

  • 실제 경로를 잡아서 본 것

    (수정됨)

    설정은 새 주소인데 옛 주소로 나가던 원인을 패킷과 대체 경로에서 찾고, 도구를 못 까는 환경에서 코드로 남기는 방법까지 정리한다.

April 6
  • 규격이 허용하는 문자로 값을 채웠다

    (수정됨)

    애매한 거부 사유를 통과분과 거부분 비교로 좁히고, 뜻을 잃지 않는 치환과 사전 검증으로 거부율을 없앤 과정이다.

  • 정체와 적체를 가르는 두 시각

    (수정됨)

    프로세스 상태와 큐 조회로는 안 갈리던 두 채널을 실행 시각과 완료 시각 분포로 가르고, 조치 대상을 하나로 좁힌 과정이다.

  • 넘버링 규칙과 그것이 깨진 이유

    (수정됨)

    채널 코드 넘버링이 보이는 규칙과 어긋난 이유를 외부 규격에서 찾고, 규칙을 문서로 남겨 다음 사람이 다시 조사하지 않게 한 기록이다.

  • 정책은 이미 코드에 있다

    (수정됨)

    기획 판단으로 넘기려던 사안을 코드 검색으로 선례 둘을 찾아 근거를 세우되, 결정은 열린 채로 남긴 과정이다.

  • 계산된 화면 값

    (수정됨)

    저장 컬럼을 고쳤는데 화면이 안 바뀐 원인을 API 응답에서 갈라내고, 표시값과 정산값이 분리된 구조를 확인한 과정이다.

  • 누가 부담하나와 어떻게 걷나

    (수정됨)

    처리조건만 보고 이미 고객 부담이라고 안내했다가 지적받고, 귀책이 금전 방향을 정한다는 것을 코드에서 확인한 과정이다.

March 6
  • 조사와 만드는 것을 단계로 나눴다

    새 연동에서 조사와 구현을 섞어 하다가 둘을 단계로 나누고 조사 결과를 문서로 남긴 기록이다.

  • 읽을 때 맞출지 쓸 때 갈릴지 정했다

    (수정됨)

    외부 자료의 형태가 여럿인 것을 쓰는 자리마다 가르다가 읽는 자리에서 한 번 맞추는 쪽으로 옮기고, 우리 저장분과 송신분까지 형태를 통일한 과정이다.

  • 인코딩된 식별자의 복원

    (수정됨)

    매핑 이력이 없는 오류 9건을 인코딩 역함수로 우리 식별자에 직접 대조하고, 되돌린 식별자의 출처가 네 갈래임을 확인한 과정이다.

  • 완료를 되읽는 세 가지

    (수정됨)

    로그 마커와 프로세스 소멸과 기록 집계로 완료를 3중 검증하고, 비싼 검증은 언제 할지 정해서 미룬 과정이다.

  • 소요 시간이 유일한 신호다

    (수정됨)

    중복 제거 때문에 성공 응답이 실행과 재사용 둘을 뜻하게 된 상황에서 소요 시간을 판별 신호로 삼고, 반영 방식별로 확인 시점을 나눈 과정이다.

  • 힌트가 된 이미 깔린 목록

    (수정됨)

    무엇이 없는지를 하나씩 실행해 찾는 대신 두 서버의 명령 목록 차집합으로 한 번에 뽑고, 판 차이까지 확인한 과정이다.

February 7
  • 고치기 전의 실패 로그

    (수정됨)

    건수 불일치를 조회 축으로 풀고, 고쳤는데 여전히 실패한다는 관측이 수정 이전 타임스탬프의 로그였음을 확인한 과정이다.

  • 양쪽에 똑같이 적용해 대칭으로 맞췄다

    (수정됨)

    저장과 조회의 정규화가 어긋나 값을 못 찾던 것을 한 함수로 묶고, 들어오는 자리에서 한 번 정규화하는 형태로 옮긴 과정이다.

  • 앞 단계에서 이미 받아 둔 것

    처리 흐름이 느린 원인이 앞 단계에서 확보한 것을 뒤에서 다시 가져오는 데 있었던 기록이다.

  • 속성처럼 쓴 메서드

    (수정됨)

    오류 없이 틀린 값이 나온 원인을 꺼 둔 경고에서 찾고, 켠 뒤 쏟아진 경고를 위험도로 분류해 순서대로 처리한 과정이다.

  • 검사가 실제로 검사하고 있는지 확인하는 법

    (수정됨)

    오류 없이 0건이 나온 다섯 사례를 모아, 대조군과 개수 출력과 축 확인으로 검사의 유효성을 재는 방법을 정리한다.

  • 왜 껐는지부터 찾는다

    (수정됨)

    주석 처리된 대체 로직을 되살리기 전에 이력에서 끈 이유를 찾아, 같은 로직을 다른 경로에만 적용하기로 한 과정이다.

  • 자리마다 따로 한 열거

    (수정됨)

    여러 자리에 흩어진 설정을 한 번에 훑는 대신 자리별로 나눠 열거해, 중복과 관리 주체 없는 자리를 드러낸 과정이다.

January 7
  • 깨진 것이 아닌 410

    (수정됨)

    깨진 것으로 보이던 410 응답이 실측 메모리에 근거한 의도적 폐기였고, 되살리면 프로세스 전체가 죽는 구조였음을 확인한 과정이다.

  • 화면으로 못 푸는 상태 가드

    재배송 송장이 안 들어가는 건에서 처리 흐름의 상태 가드가 막고 있었음을 확인한 기록이다.

  • 항상 null을 돌려주는 매퍼

    (수정됨)

    빈 매퍼를 원인으로 잡고 멈출 뻔했다가 자동화 자체의 부재를 찾아내고, 수백 건이라는 규모와 추론의 강도까지 나눠 보고한 과정이다.

  • 되짚을 수 있는 익명

    (수정됨)

    문서에서 특정 서버의 정체를 지우면서 로컬 검색의 사각지대와 소거법 재구성과 개수 표현의 되돌림을 만난 과정이다.

  • 밖으로 나가는 컬럼

    (수정됨)

    기록용으로 보이던 컬럼이 실은 양방향 전송 값이었고, 직접 갱신이 화면에서만 맞아 보이는 상태를 만든다는 것을 정리한다.

  • 포크가 답이 아닐 때

    (수정됨)

    패치 방식을 포크로 바꾸려다 upstream 구조가 갈라진 것을 확인하고 전환을 접되, 조사 결과와 재검토 조건을 남긴 과정이다.

  • 스케줄러가 둘일 때의 필터

    (수정됨)

    수동으로 넣은 작업이 안 도는 원인을 두 실행 경로의 필터 차이에서 찾되, 그것이 이번 관측을 설명하지 못한다는 것까지 구분해 적은 과정이다.

2023 76
December 7
  • grep과 커버리지의 증거

    (수정됨)

    보상 로직의 범위를 키워드 검색이 아니라 호출 트리 전이 추적으로 확정하고 근거의 강도를 밝힌 기록이다.

  • 침묵을 고친 뒤의 폭주

    (수정됨)

    만료 없는 상태 영속화가 침묵 버그를 폭주 버그로 바꾼 사례와 짝으로 도입해야 하는 장치를 정리한 기록이다.

  • 건수로 갈리지 않는 것

    같은 송장이 두 건에 물린 것이 재입력인지 덮어쓰기인지를 시각과 이력으로 가른 기록이다.

  • 되살아나지 않는 정체 건

    (수정됨)

    재수집이 코드 경로상 무효임을 먼저 확인하고 복구와 정리를 가른 기록이다.

  • 컨테이너 안 파일에 쓰는 코드

    (수정됨)

    로컬 테스트는 전부 통과하고 무상태 배포에서만 틀리는 코드 유형과 그 기록 방식을 정리한 기록이다.

  • 계획에 꽂아 둔 깃발

    (수정됨)

    통합 설계 착수 직전에 미검증 가정만 골라 읽기 전용으로 실측하고 리스크와 스펙으로 갈라 낸 기록이다.

  • 대체 동작이 기본 로그 수준에 안 보였다

    (수정됨)

    외부 API 실패 시 대체 값으로 넘어가던 동작이 기본 로그 수준에 안 남아 규모를 몰랐던 것을, 수준별로 무엇을 담을지 정해 드러낸 기록이다.

November 8
  • 지름길 대신 사슬

    (수정됨)

    브라우저로만 확인해 놓친 중간 인증서 누락을 사슬 단위 검증 절차로 바꾼 기록이다.

  • 살아 있는 것과 받아 주는 것

    (수정됨)

    헬스체크가 재지 못하는 수용성 축을 구분하고 거부 응답을 지표로 뽑자고 제안한 기록이다.

  • 검토를 돌 때마다 결과를 적었다

    같은 코드를 여러 번 검토하면서 회차마다 본 범위와 찾은 것을 기록으로 남긴 기록이다.

  • 세 번 따로 적힌 같은 함정

    (수정됨)

    같은 함정이 세 문서에 흩어져 있던 것을 한 곳으로 모으고 근본을 고치기까지의 기록이다.

  • 이미 빠진 것의 이중 차감

    (수정됨)

    새 필드로 계산식을 넣기 전에 이미 반영된 값인지 대조해 이중 차감을 막은 기록이다.

  • 버그로 보이는 조용한 무시

    (수정됨)

    세 계층에서 막는 정상 차단이 아무 피드백도 주지 않아 결함으로 읽히던 구조를 정리한 기록이다.

  • 스냅샷과 근본 원인

    (수정됨)

    실시간 관측으로 단정한 병목을 누적 통계와 대조해 뒤집고 관측과 해석과 판단을 나눠 보고한 기록이다.

  • 없는 것이 정상일 수 있다

    (수정됨)

    환불 기록이 없다는 관측은 맞고 처리가 안 됐다는 해석이 틀렸던 건을 코드 경로로 확정한 기록이다.

October 6
  • 만들어지지 않은 작업

    (수정됨)

    재시도가 소용없는 실패가 있다는 것과 상태 값 하나가 두 상황을 뜻하는 문제를 정리한 기록이다.

  • 막힌 게 정책일 수 있다

    (수정됨)

    장애로 접수된 문의가 의도된 정책이었고 요청 형태를 바꿔 해소한 뒤 근거 등급까지 나눠 남긴 기록이다.

  • 등록 성공이 가린 오설정

    (수정됨)

    조회를 동반하는 작업에서만 드러나는 오설정을 작업 타입별 집계와 대조군으로 확정한 기록이다.

  • 소스로 역추적한 주석의 뜻

    (수정됨)

    조건부 안내를 필수 구성으로 읽어 없는 작업을 찾다가 소스로 역추적해 닫은 기록이다.

  • 재초기화 뒤 전수 통과 확인

    (수정됨)

    고친 건만 확인하고 끝냈다가 놓친 것을 전수 검사와 무중단 교체로 다시 세운 기록이다.

  • 경유와 참조라는 두 질문

    (수정됨)

    좁은 범위 검색으로 낸 결론을 전수 호출부 조사로 다시 세우면서 원래 물음에 없던 답까지 얻은 기록이다.

September 5
August 7
  • 전수 스캔 대신 헤더

    (수정됨)

    몇 시간짜리 전수 점검을 헤더 확인으로 대체하고, 표본 구간이 결론을 바꾼다는 것을 확인한 기록이다.

  • 소진된 작업과 재현 불가

    (수정됨)

    꺼내면 사라지는 큐에서 실패한 작업을 재현할 수 없던 문제를 기록과 예약 방식으로 바꾸고 멱등까지 붙인 기록이다.

  • 재현 못 하는 걸 다시 쓰지 않는다

    (수정됨)

    본문 정규화 계획을 재직렬화 비동일성 때문에 접고, 원래 목적으로 돌아가 훨씬 좁은 작업으로 바꾼 기록이다.

  • 셸이 바꾼 경로와 실패한 호출

    (수정됨)

    특정 셸이 경로 인자를 자동 변환하던 문제를 환경별로 확인하고, 스크립트에서 흡수해 재발을 막은 기록이다.

  • 문서와 실제 응답의 어긋남

    (수정됨)

    새 채널 어댑터를 만들기 전에 문서와 실제 응답이 어긋나는 지점을 목록으로 만들어 설계를 확정한 기록이다.

  • 아무것도 증명하지 않는 통과

    (수정됨)

    결과 비교 검사기를 넣고 기준선 통과에서 멈추지 않고 음성 시험으로 유효성을 확인한 뒤 순차로 바꾼 기록이다.

  • pending은 오류가 아니다

    (수정됨)

    실패가 예외가 아니라 대기 상태로 남아 영구 정지한 구조를 성공 건과 대조로 찾아내고 대응을 나눈 기록이다.

July 6
  • 잠긴 것이 아니라 기다리는 중

    (수정됨)

    두 상태 플래그가 서로 다른 경로를 막는다는 것을 확인하고, 추가 작업이 필요 없다는 결론에 이른 기록이다.

  • 출력에 남은 해시로 한 복원

    (수정됨)

    지운 브랜치를 출력에 남은 해시로 되살리고, 남는 기간과 되살릴 수 없는 범위까지 정리한 기록이다.

  • 인코딩해서 통째로 넘긴 스크립트

    (수정됨)

    여러 계층을 거치며 따옴표가 깨지던 원격 실행을 인코딩 전달로 바꾸고, 임시와 반복의 경계를 정한 기록이다.

  • 설치 전에 재는 uid

    (수정됨)

    호스트에 도구를 깔기 전에 데이터 디렉터리와 사용자 번호의 점유 상태를 실측하고, 사후 확인까지 나눈 기록이다.

  • 환경 이름은 코드에 있는 걸 쓴다

    (수정됨)

    검사되지 않는 환경 값에 새 이름을 붙였을 때 화이트리스트 분기에서 빠지며 실호출이 나가는 구조를 정리했다.

  • 옛 클론과 잃어버린 저장소

    (수정됨)

    내용이 전혀 다른 옛 클론의 삭제 가능 여부를 파일 대조가 아니라 커밋 보존으로 판정한 기록이다.

June 6
  • 파일 안의 지문

    (수정됨)

    폴더명으로 구조를 판정했다가 두 번 반려된 뒤, 파일 안의 환경 지문으로 대상을 식별한 기록이다.

  • 도는 디렉터리와 고치는 디렉터리

    (수정됨)

    멈춘 수집을 찾아가면서 실행 경로를 확인하지 않으면 고쳐도 반영되지 않는 구조를 정리한 기록이다.

  • 단방향이 설계다

    (수정됨)

    역전파를 넣어 달라는 요청을 받고 없는 기능이 의도인지 빠뜨림인지를 가른 뒤, 대안과 상신 경로까지 낸 기록이다.

  • 조건에 안 걸린 것의 통과

    (수정됨)

    미들웨어의 마지막 분기가 사양이 아니라 빠뜨림이었던 사례와, 매핑과 응답 복원까지 정리한 기록이다.

  • 안 나온다와 없다는 다르다

    (수정됨)

    저장소가 둘로 갈린 환경에서 한쪽의 0건을 없다로 답하지 않고, 확인 범위를 명시해 회신한 기록이다.

  • 쓰는 길과 읽는 길이 다르다

    (수정됨)

    보낸 상태가 조회에 안 나타나던 건에서 쓰기와 읽기의 경로를 그리고, 필드의 출처를 끝까지 따라간 기록이다.

May 7
April 6
  • 스케일링 기준은 액세스 로그에 있다

    (수정됨)

    대수를 정하기 전에 시간대별 부하를 재고, 예약과 추적을 병행하며 지정 가능한 범위까지 확인한 기록이다.

  • 캐시를 지우고 재시작하는 것이 답일 때

    (수정됨)

    지우고 재시작으로 풀린 배포 문제의 원인을 캐시 생성 시점에서 찾고, 확인과 기록까지 절차로 만든 기록이다.

  • 높이 대신 고정한 아래

    (수정됨)

    계산한 높이가 조건에 따라 어긋나던 화면을 배치 구조로 바꾸고, 동적 높이와 위치 복원까지 다룬 기록이다.

  • 지운 DNS와 계속 도는 동작

    (수정됨)

    삭제를 죽음으로 단정한 추론을 실측으로 끊고, 이름 해석 경로가 여럿이라는 것을 확인한 기록이다.

  • 범위를 적고 시작하는 스윕

    (수정됨)

    일괄 치환에서 다른 시스템과 문자 단위로 결합된 값을 가려내고, 제외 범위와 이유를 함께 남긴 기록이다.

  • 의미의 정본은 코드다

    (수정됨)

    공통 코드를 옮긴 뒤 원본에서 거꾸로 훑어 다섯 가지 어긋남을 찾고, 의미의 정본을 코드로 잡은 기록이다.

March 6
  • 중복되는 말단 코드

    (수정됨)

    계층 코드의 말단이 트리 전체에서 중복되는 것을 확인하고, 전체 경로로 대조해 신규만 뽑은 기록이다.

  • 아무도 강제하지 않으면 안 깨진다

    (수정됨)

    변환 생성 조건을 바꾸기 전에 의존 관계를 세고, 변경의 자유도와 반대 방향의 부담을 함께 확인한 기록이다.

  • 모양이 달라도 오는 200

    (수정됨)

    요청이 성공했는데 화면이 비던 원인을 응답 모양에서 찾고, 타입 선언과 실제 응답을 라우트 단위로 대조한 기록이다.

  • 알아서 퍼지지 않는 변경

    (수정됨)

    대량 변경 뒤 자동 전파를 전제했다가 커버리지를 재고, 배치의 실제 대상과 발화 조건을 확인한 기록이다.

  • 비교할 수 없는 것을 비교하면

    (수정됨)

    조회 스펙과 등록 스펙의 필드를 대조하려다 리소스가 다른 것을 확인하고, 비교 범위를 좁혀 확정한 기록이다.

  • 하나씩 빼서 가른 원인

    (수정됨)

    여러 계층을 거치는 느린 응답에서 바깥부터 하나씩 빼며 구간을 좁히고, 재현 조건을 먼저 고정한 기록이다.

February 6
  • 영향 범위와 활성 건수

    (수정됨)

    영향 범위를 전체 건수 하나로 답했다가 기준별로 다시 세고, 시험과 백업의 기준을 갈라 정한 기록이다.

  • 쿼리 하나로 파이프라인 검증하기

    (수정됨)

    두 컬럼 조합으로 실행 여부와 성패를 판정하고, 실패 0이 두 단계를 함께 검증한 구조를 정리했다.

  • 도착한다는 전제를 조회로 확인했다

    (수정됨)

    발송 로그가 전부 성공인데 못 받는다는 문의를 응답 확인과 단계 분리로 풀어낸 기록이다.

  • 데이터로 가르는 책임 소재

    (수정됨)

    입력 분쟁을 데이터로 판정하기 전에 저장 순서를 코드로 확인하고, 근거를 회신에 함께 적은 기록이다.

  • 다른 곳에 있던 방아쇠

    (수정됨)

    취소 코드에 없던 외부 전송의 호출 지점을 역추적하고, 구조적으로 불가능한 건을 회신으로 닫은 기록이다.

  • 이름이 같은데 다른 것

    (수정됨)

    같은 이름의 분류가 두 트리에 병존하던 상황에서 이름 기반 판단을 버리고 최소 변경으로 해결한 기록이다.

January 6
  • 복제가 데려가야 하는 것들

    (수정됨)

    상품 복제에서 무엇까지 복제할지를 정하고, 그대로 두면 안 되는 값과 분류 강제까지 다룬 기록이다.

  • 한 겹 대신 여러 겹

    (수정됨)

    화면 한 겹으로 막던 권한을 층마다 다르게 나누고, 두께와 조회 비용을 분리해 다룬 기록이다.

  • 고치다 떨어뜨린 검증분

    (수정됨)

    외주 개발자용 이관 지시서가 반복 실패한 원인이 대상이 아니라 내 재작성 과정에 있었던 경위와, 그 뒤에 표준으로 삼은 대조 절차다.

  • 게이트가 둘일 때의 절반 통과

    (수정됨)

    내부 상태와 외부 전송을 각각 통제하는 두 플래그를 확인하고, 진단에서 배제한 것까지 남긴 기록이다.

  • 검색으로 안 잡히는 잠금

    (수정됨)

    갱신 코드가 없는데 발생하던 잠금 경합의 원인을 제약조건에서 찾고, 진단 순서와 결함의 층을 정리한 기록이다.

  • 무엇을 허용해야 하나

    (수정됨)

    허용 목록의 대상을 프록시에서 목적지로 바꾸고, 실제로 막는 계층이 어디인지까지 확인한 기록이다.

2022 70
December 6
November 6
  • 조건을 더해도 인덱스를 못 타는 형태

    (수정됨)

    인덱스가 있는데도 전체를 읽는 조건의 형태를 다섯 갈래로 나누고, 각각의 대응과 확인 순서를 정리한 과정이다.

  • 무한 반복이 된 자동 재시작

    (수정됨)

    두 계층이 함께 살리던 컨테이너의 무한 재시작을 정리하면서, 죽는 원인과 상한과 종료 코드까지 함께 다룬 과정이다.

  • 목록에 섞여 있던 내부 API

    (수정됨)

    무한 스크롤 때문에 브라우저가 필수라고 보던 설계를 요청 관찰로 뒤집고, 직렬화 제약을 없앤 과정이다.

  • 이미지 하나에 서빙 경로 셋

    (수정됨)

    본문에 박히는 이미지 주소가 프록시 경유임을 확인하고, 등록 시점에 고정되는 주소가 만드는 영구 의존과 그 대안을 정리한 과정이다.

  • 깨끗한 것과 최신인 것

    (수정됨)

    인계 문서의 워킹 트리 깨끗이라는 관측을 최신으로 읽었다가 낡은 클론임을 확인하고, 승인된 조치를 다시 정한 과정이다.

  • 이력이 없는 정상 흐름

    (수정됨)

    환불 이력이 없는 것을 누락이 아니라 미기록으로 설명하고, 이력을 만드는 근본 대응 전에 정산 영향을 먼저 확인한 과정이다.

October 6
  • 강제한 인덱스가 만든 지연

    (수정됨)

    옵티마이저가 인덱스를 안 쓰는 이유를 매칭 건수로 확인하고, 강제 대신 복합 인덱스로 푼 뒤 강제를 마지막 수단으로 둔 과정이다.

  • 설정 옆에 근거를 적는다

    (수정됨)

    기본값에서 바꾼 열 개 설정에 값과 근거를 함께 적고, 태그로 커스텀 항목을 구분해 전수 확인이 되게 만든 과정이다.

  • 같은 성공 경로의 다른 응답

    (수정됨)

    결과가 없을 때만 다른 형태를 돌려주던 코드를 고치고, 반환 타입과 결과 객체로 호출부의 확인을 강제한 과정이다.

  • 값을 비워도 남는 것

    (수정됨)

    값을 비우면 해결된다는 제안을 백 건 남짓을 여러 축으로 쪼개 무너뜨리고, 문제가 우리 쪽이 아니라 외부와의 불일치임을 확정한 과정이다.

  • 등식을 만드는 중복 제거 위치

    (수정됨)

    백테스트가 다른 신호를 잴 위험을 중복 제거 위치 확인으로 닫고, 그 등식을 깨뜨릴 리팩터링을 주석으로 막은 과정이다.

  • 할인 셋, 저장소 셋

    (수정됨)

    할인 세 종류를 가르고 담당자 소속으로 판별하되 판별이 막히는 건은 분포로 우회해, 정상 설정을 지우지 않은 과정이다.

September 6
  • 음수 재고가 실재한다

    (수정됨)

    재고가 0인지 비교하던 조건을 그대로 옮기려다 음수 재고의 실재를 세어 확인하고, 합계가 실체를 왜곡하는 구조까지 정리한 과정이다.

  • 기록을 정정한 실측

    (수정됨)

    기존 문서의 분류 개수와 식별자에 대한 비판이 실측과 달랐던 것을 확인하고, 비로그인 검증으로 계정 위험 없이 구조를 확정한 과정이다.

  • 옮길 것이 없는 이관

    (수정됨)

    매핑을 컬럼에서 못 찾아 스키마에서 테이블을 검색해 찾고, 73건 중 66건이 옮길 대상 자체가 없다는 것을 확인한 과정이다.

  • 조회 경로를 정하는 컬럼

    (수정됨)

    월별 조회 엔드포인트를 설계하면서 컬럼 위치와 인덱스가 조회 경로를 정하고 용도에 따라 기준 축이 갈린다는 것을 확인한 과정이다.

  • 청크마다 반복되는 즉시 로딩

    (수정됨)

    메모리를 줄이려 나눈 청크가 쿼리를 다섯 배로 늘린 것을 확인하고, 프레임워크 소스로 호출 순서까지 확정한 과정이다.

  • 옮기기 직전 상태의 기록

    (수정됨)

    이관 후 느려졌다는 말에 비교할 값이 없던 경험 뒤로, 옮기기 전 다섯 항목을 재고 그 기록이 되돌릴 때도 쓰인 과정이다.

August 6
  • 대상마다 다른 저장 자리와 형식

    (수정됨)

    채널마다 다른 것이 열네 곳에 흩어져 있던 것을 한 줄짜리 규격 표로 모으고, 종료된 채널까지 다루는 방법을 정리한 과정이다.

  • 채널 이름 하나, 시스템 둘

    (수정됨)

    확인 없이 답했다가 재조사해 한 채널 이름 아래 클라이언트가 둘임을 찾고, 어느 쪽이 사는지는 로그로 확정한 과정이다.

  • 뼈대 비교로 공통 뽑기

    (수정됨)

    비슷한 산출물이 여럿이면 뼈대를 비교해 공통을 뽑는다.

  • 이름으로 리소스를 판단하지 않는다

    (수정됨)

    자동 감사가 뽑은 정리 후보 셋이 전부 반대였던 것을 정정받고, 감사 결과를 확인 필요 후보로 내는 형태로 바꾼 과정이다.

  • 검색 결과와 DB가 다를 때

    (수정됨)

    검색 전용 색인을 따로 두면서 생긴 어긋남의 순간들을 유형별로 다루고, 밀림 감지와 무중단 재색인까지 정리한 과정이다.

  • 실제로 읽히던 두 컬럼

    (수정됨)

    연관 다섯 테이블을 같이 고칠 뻔했다가 전송 코드가 읽는 컬럼만 확인하고, 게이트로 오해할 뻔한 플래그까지 확인한 과정이다.

July 5
  • 같은 증상의 네 가지 모양

    (수정됨)

    취소 대기 292건을 채널과 주문별로 분해해 원인이 셋으로 갈린 것을 확인하고, 대응을 각각 다르게 잡은 과정이다.

  • 안정성을 정하는 드라이버 계층

    (수정됨)

    설정 화면만 보고 다 봤다고 한 뒤 드라이버 계층을 빠뜨렸다는 지적을 받고, 워크로드에 따라 권고가 반대인 항목까지 정리한 과정이다.

  • 중복을 만드는 철회 후 재요청

    (수정됨)

    주문 중복이라는 문의를 클레임 전이 이력에서 풀고, 코드 미확인 부분을 미검증으로 표시한 과정이다.

  • 커밋과 배포 사이

    (수정됨)

    커밋 존재만으로 배포를 판단하지 않고 코드와 이미지 빌드 시각과 외부 실적 세 축을 교차해, 과제 자체를 다시 가른 과정이다.

  • 인증처럼 보이는 범위 불일치

    (수정됨)

    등록만 성공하고 수정과 중지만 실패하는 패턴을 조회 범위 불일치로 확정하고, 잠재 대상 1,300여 건까지 센 과정이다.

June 6
  • 우리 밖에서 끝난 결제

    (수정됨)

    브라우저 복귀에만 의존하던 결제 완료 처리를 서버 통보와 사후 조회까지 세 겹으로 만들고, 대조와 실패 기록까지 붙인 과정이다.

  • unstable에서 패키지 하나만 가져온다

    (수정됨)

    벤더 저장소에 맞는 계열이 없어 불안정 계열을 쓰되 출처 한정 핀으로 번짐을 막고, 그 판단의 근거를 실측으로 붙인 과정이다.

  • 컬럼 값과 정책의 대응표

    (수정됨)

    숫자만 있는 컬럼에 딸린 정책을 표로 적으며 코드와의 불일치를 찾고, 정책에 적용 시점을 넣어 과거 재계산까지 맞춘 과정이다.

  • 외부 서비스 키의 소유 프로젝트

    (수정됨)

    용도를 모르는 외부 서비스 키 다섯을 앞자리 대조와 사용 기록으로 가려내고, 지우기 전에 막아 보다 숨은 실패를 발견한 과정이다.

  • 드롭다운에서 조용히 사라지는 항목

    (수정됨)

    가장 유력한 가설을 컨트롤러와 동일한 쿼리로 배제하고, 원인을 못 찾은 조사도 종결 리포트로 남긴 과정이다.

  • 원인을 확정한 시각 뭉침

    (수정됨)

    사전 스냅숏 없이 갱신 시각 분포만으로 전송 기인성을 확정하고, 무사고 실적을 안전 근거로 삼지 않기로 한 과정이다.

May 7
  • 상태 변경 하나가 만든 수만 건

    (수정됨)

    건별로 맞는 관찰자 동작이 대량 처리에서 건수만큼 반복돼 필요 없는 작업 12만 건을 만든 것을 고친 과정이다.

  • 원인이 아니었던 회귀

    (수정됨)

    메모리 초과의 범인으로 지목한 변경이 전체의 8퍼센트뿐임을 실측으로 확인하고, 겨냥할 대상을 비중으로 다시 정한 과정이다.

  • 둘을 빠뜨린 하드코딩 목록

    (수정됨)

    한 건 문의에서 시작해 저장소에 없는 일회성 배치의 하드코딩 목록 누락을 찾고, 전사 5천여 건 규모를 확인한 과정이다.

  • 저장된 값은 다음 배포용이다

    (수정됨)

    설정 어긋남 검사기가 지금 상태가 아니라 다음 배포 후 상태를 보고 있다는 지적을 받고, 검사가 못 잡는 범위까지 명시한 과정이다.

  • 값은 같고 중복은 아닌 것

    (수정됨)

    값이 전부 같아 중복으로 보이던 취소 두 건이 서로 다른 라인의 것이었음을 피벗 매핑으로 확인하고, 앞선 판단까지 정정한 과정이다.

  • 다시 돌지 않은 초기화 스크립트

    (수정됨)

    값을 바꿔 재실행을 유도하는 흔한 기법이 통하지 않은 이유를 갱신 방식에서 찾고, 이전 관찰의 한계까지 함께 적은 과정이다.

  • 이상이 아니었던 0행

    (수정됨)

    백업 스냅숏에서 나온 예상 밖의 두 값을 각각 확인해 정상임을 밝히고, 그 판단을 반복 배치의 기록으로 남긴 과정이다.

April 5
  • 설정이 쌓인 층의 지도

    (수정됨)

    고쳐도 안 바뀌던 설정의 출처를 여섯 층으로 그려 찾고, 층마다 무엇을 둘지 정해 겹침을 줄인 과정이다.

  • 하위 할인을 지우는 상위 수정

    (수정됨)

    전 필드 복사 전파가 할인 없음까지 전파해 하위 할인을 지우는 구조를 확인하고, 정책을 먼저 정해야 한다는 결론까지 낸 과정이다.

  • 프로젝트별 설정 차이를 비교했다

    (수정됨)

    여러 Laravel 프로젝트의 환경 설정을 키 단위로 모아 비교하고, 공통으로 뺄지 그대로 둘지를 정한 기록이다.

  • 처음 보는 대형 코드베이스를 읽는 순서

    (수정됨)

    문서 없는 수천 개 파일을 전부 읽을 수 없어서 데이터와 진입점과 한 흐름과 이력과 오류 순으로 읽는 순서를 정한 과정이다.

  • 끝난 것과 남은 것의 한자리

    (수정됨)

    끝난 것만 보고해 다 됐냐는 질문에 답을 못 한 뒤, 지금 상태와 되돌림 비용과 완료 예정일을 한 표에 담은 과정이다.

March 6
  • 맞는 것을 확인하는 헬스체크

    (수정됨)

    후속으로 미뤄 둔 검증이 실은 선행 조건이었다는 지적을 받고, 하나의 엔드포인트로 게이트와 동작 검증과 로그 노이즈를 함께 해결한 과정이다.

  • 헬스체크가 닿지 않는 프록시 포트

    (수정됨)

    대상 유형 선택이 클라이언트 IP 보존을 가르고 포워드 프록시에는 일반 헬스체크를 못 보낸다는 것을 확인해, 설계 결정을 줄줄이 정한 과정이다.

  • 장애 전환 지연 공식

    (수정됨)

    네 설정값을 하나의 공식으로 묶어 최악 전환 지연을 계산하고, 대칭 설정과 기본 계정 삭제까지 함께 정리한 과정이다.

  • 직접 접속이 아니었던 구성

    (수정됨)

    연결 거부를 네트워크 문제로 보고 뒤지다 대상이 호스트 포트를 게시하지 않는다는 것을 확인하고, 인프라의 일관된 패턴을 따른 과정이다.

  • 반증된 가설과 막힌 검증 경로

    (수정됨)

    결정적 표본으로 가설을 반증하고 새 가설의 검증 경로마저 막힌 상태를 그대로 기록해, 다음 사람의 할 일을 정한 과정이다.

  • 상한을 산술로 계산한다

    (수정됨)

    발동한 적 없는 안전망을 표본과 산술 상한 양쪽으로 확정해 제거하고, 표본 편향을 중간에 잡아낸 과정이다.

February 5
  • 백로그를 만든 스킵 규칙

    (수정됨)

    애매하면 스킵한다는 안전해 보이는 규칙이 정상 건을 영구 미처리로 만든 것을 과거 성공 사례 조회로 확인한 과정이다.

  • 부분 일치가 인덱스를 못 탔다

    (수정됨)

    상품명 부분 일치 검색이 인덱스를 못 타 느리던 것을, 복합 인덱스 조정과 OpenSearch 이관을 비용까지 놓고 견줘 정한 기록이다.

  • 채널 라벨과 우리 모델의 거리

    (수정됨)

    가능하다고 답한 정합 전환이 상태 모델의 전제 때문에 불가능함을 확인하고 정정 회신하면서, 라벨 불일치의 처리 방법을 정리한다.

  • 비활성화된 버튼을 우회하지 않는다

    (수정됨)

    화면에 없는 기능을 API로 직접 부르려다 이력에서 의도적 비활성화를 확인하고, 그 이유를 백엔드 코드로 검증한 과정이다.

  • SSE 프록시와 WebSocket 프록시의 차이

    (수정됨)

    주기적으로 끊기던 스트리밍 연결의 원인을 다른 프로토콜용 설정 복사에서 찾고, 계층별 타임아웃까지 정리한 과정이다.

January 6
  • 영역마다 다른 이관 진행

    (수정됨)

    몇 달째 진행 중이던 이관을 영역별 표로 갈라 담당 공백과 임시 연결과 막힌 영역까지 드러낸 과정이다.

  • 돌고 있던 폴백

    (수정됨)

    두 테이블을 다 고치려던 것을 응답 계산부를 읽어 하나로 줄이고, 원본을 안 건드리는 것이 안전이라는 점까지 정리한다.

  • 코드 체계 교체에 필요한 대응표

    (수정됨)

    단계 수부터 다른 새 분류 체계로 옮기면서 관계 종류를 담은 대응표를 만들고, 전환 뒤에도 그것이 자산으로 남은 과정이다.

  • 교집합에 하나뿐인 버전

    (수정됨)

    손으로 쌓인 패치 스택의 이유를 의존 요구 범위의 교집합에서 찾고, 실제 설치로 확정한 뒤 패치를 전부 없앤 과정이다.

  • 값과 판정을 같이 고친다

    (수정됨)

    이름 정정 로직을 넣었는데 복구가 안 된 원인을 앞단 판정에서 찾고, 아무것도 없는 대상으로 통과한 사전 실행까지 짚은 과정이다.

  • 안 보이는 주문 유형

    (수정됨)

    주문 조회 API가 특정 유형을 아예 반환하지 않는다는 것을 문답에서 찾고, 연동 구조에 미치는 영향까지 정리한 과정이다.

2021 70
December 6
  • 저장할 것과 조회할 것

    (수정됨)

    장비 작업 레코드에 설정 값을 담을지 참조만 담을지를 도메인 기준으로 정하고, 참조가 여는 문제까지 다룬 기록이다.

  • 토큰이 만료되고 아무도 안 알려 준다

    (수정됨)

    포팅 중 인증 계층을 훑으며 코드가 처리하는 만료와 사람이 처리해야 하는 만료를 갈라 표로 만들고, 달력과 알림으로 나눠 대응한 기록이다.

  • 큐를 공유하는 컨슈머

    (수정됨)

    성격이 다른 ffmpeg 작업이 한 큐를 공유해 서로를 막던 구조를 소요 시간 기준으로 나누고 그 대가까지 정리했다.

  • 조용히 무시되는 설정 키

    (수정됨)

    Redis 데이터베이스 번호를 정하는 비슷한 설정 키 셋 중 조용히 무시되는 것을 쓴 사례에서, 경고 없음이 근거가 안 되는 이유를 정리했다.

  • 넘기기 전 확인 목록

    (수정됨)

    유지보수 계약이 끝난 서비스를 넘기면서 확인한 것과 못 한 것을 나눠 적고, 결정의 이유와 함께 돌려 보는 절차까지 붙인 기록이다.

  • 두 번 도착한 메시지

    (수정됨)

    처리를 ActiveMQ 큐로 미루면서 새로 생긴 중복 배달과 순서와 지연 문제를 각각 어떻게 다뤘는지 정리했다.

November 6
  • 한 곳뿐이던 메시지 중계

    (수정됨)

    ActiveMQ 한 대의 재시작으로 붙은 서비스가 전부 멈춘 뒤, 견디는 쪽과 failover 목록과 복제 범위와 재시작 절차를 정리했다.

  • 다음 사람에게 남기는 것

    (수정됨)

    계약이 끝나 넘길 시스템의 인계 문서를 쓰면서 무엇을 어디에 적을지와 다 못 채운다는 전제로 순서를 정한 기록이다.

  • 다루지 않은 토큰 만료 시점

    (수정됨)

    장비 에이전트를 JWT 인증으로 바꾼 뒤 만료 시점에 전부 실패한 원인을 정리하고, 선제 갱신과 실패 분류까지 다룬 기록이다.

  • 양쪽을 다 읽는 이관

    (수정됨)

    ASP.NET 의 정산 기능을 CodeIgniter 로 옮기면서 양쪽 방식 차이를 표로 잡고, 옛 결과와 대조해 무엇을 지킬지 정한 기록이다.

  • 아무도 안 보는 보고서

    (수정됨)

    인수한 시스템에서 몇 해째 나가던 일일 요약 메일이 읽히는지 확인하고, 알림과 보고서를 갈라 빈도와 내용을 다시 잡은 기록이다.

  • 플래그로 시작해 테이블이 됐어야 했다

    (수정됨)

    회원 예외 하나에 컬럼을 만들었다가 조합에 무너진 구조를 예외 테이블로 옮기면서, 전환 시점의 기준을 정한 회고다.

October 5
  • 주인이 없는 시스템을 받았을 때

    (수정됨)

    만든 사람이 없는 미디어 시스템을 인수하면서 돌고 있는 것을 명령으로 먼저 세고, 모르는 것을 모른다고 남긴 기록이다.

  • 파일이 커지면 깨지는 것들

    (수정됨)

    포팅 중인 PHP 서비스의 큰 파일 업로드가 계층마다 걸리는 지점을 한 번에 훑고, 스트림과 분할 업로드와 정리 규칙까지 정리했다.

  • 큐 구성이 바뀌자 소비가 멈췄다

    (수정됨)

    인수받은 미디어 시스템에서 큐 구성을 바꾼 뒤 일부 컨슈머가 조용히 멈춘 것을, 문서와 실제 동작을 대조하며 우회한 기록이다.

  • 다른 런타임으로 옮길 때 먼저 보는 것

    (수정됨)

    ASP.NET 서비스를 CodeIgniter 로 옮기면서 코드보다 경계가 작업량을 정한다는 것을 확인하고 순서를 세운 기록이다.

  • 설정은 같고 노드 조합만 다르다

    (수정됨)

    설정이 같은 nginx stream 포트 셋이 존재하는 이유를 상대의 허용 IP 개수에서 찾고, 신규 연동 절차와 전환 제약을 정리했다.

September 6
  • 계획을 깬 정상 메서드

    (수정됨)

    콘텐츠 분류 코드를 먼저 바꾸고 장비 전송은 나중에 하려던 계획이 서비스 계층의 부수효과로 깨진 이유와 대응이다.

  • 메모리를 쓰는 자리

    (수정됨)

    메모리를 많이 쓰는 Python 집계 배치에서 추측한 원인의 기여를 분리해 재고, tracemalloc 의 범위와 최대치·증분의 뜻까지 정리했다.

  • 죽여도 다시 뜬다

    (수정됨)

    cron 이 띄우는 ffmpeg 변환 배치를 멈추려다 실제 정지 조건과 복구 순서를 다시 잡고, 프로세스 검색 자체의 오염까지 걸러낸 기록이다.

  • 옵티마이저가 안 쓰는 인덱스

    (수정됨)

    status 컬럼이 복합 인덱스에 들어 있는데도 안 타던 이유를 선두 컬럼에서 찾고, 조회 빈도로 대응을 고른 기록이다.

  • 배치가 정상 경로와 같은 상태를 만들어야 한다

    (수정됨)

    콘텐츠 표의 잘못 남은 값을 서비스 계층을 우회해 정리하는 배치를 짜기 전에 정상 경로가 남기는 것을 세고, 콘텐츠와 현장 배포본의 차이까지 맞춘 기록이다.

  • 여러 장비에서 유지한 같은 구조

    (수정됨)

    맥과 리눅스 장비 셋의 저장소 경로와 sed 옵션 차이를 한 구조로 맞추고, 어긋남을 확인하는 습관과 장비별 역할까지 정리했다.

August 6
  • 옮길 것의 명시 목록

    (수정됨)

    인수한 서비스를 새 서버로 전부 옮긴다는 말로 시작한 이관에서 빠진 것이 닷새 동안 나온 뒤, 목록을 명령으로 뽑아 다시 세운 기록이다.

  • 무상태 환경에서 파일에 쓰면

    (수정됨)

    배포 대기 중인 기능이 컨테이너 안 JSON 파일에 값을 저장하고 있던 것을 찾고, 저장소의 선례를 재사용하며 남은 작업을 다시 나눈 기록이다.

  • 우리는 중지했는데 저쪽은 재생 중

    (수정됨)

    중앙의 중지 상태와 현장 장비의 실제 재생이 어긋난 원인을 작업 이력에서 찾고, 정리 절차에 성공 확인 단계를 넣은 기록이다.

  • 동시에 실패했다고 원인이 같지 않다

    (수정됨)

    여러 현장의 장비 기록 수집이 동시에 실패한 원인을 공통 수집기가 아니라 값의 출처 역추적으로 좁힌 기록이다.

  • 스펙과 다른 API에 맞추기

    (수정됨)

    장치 제조사 클라우드 API 의 어댑터를 짜기 전에 실제 응답을 여러 번 받아 문서와 어긋나는 지점을 목록으로 만든 과정이다.

  • 설정 파일마다의 역할

    (수정됨)

    인수한 Java 서비스에 properties 파일이 여섯 개일 때 무엇이 이기는지 확인하고, 역할과 비밀 값 처리와 시작 검사를 정리한 기록이다.

July 6
  • 저장소가 아니었던 도메인

    (수정됨)

    코인 로고 주소의 도메인을 오브젝트 스토리지 버킷으로 착각해 헤맨 조사에서 확인 순서를 세우고, 업로드 누락과 변환 실패를 갈라낸 기록이다.

  • 소유를 가르는 값

    (수정됨)

    앱에 내장한 장치 프리셋과 사용자가 만든 프리셋을 이름 접두어로 가르던 구조가 깨진 사례와, 소유를 컬럼 값으로 옮기면서 중간 성격까지 다룬 기록이다.

  • 200이 성공을 뜻하지 않는다

    (수정됨)

    은행 조회 API 가 오류를 200 응답의 본문에 담아 보내서 검사를 전송 계층과 응용 계층으로 나누고, 호출 한도와 문자 코드까지 확인한 기록이다.

  • 같은 거부의 두 원인

    (수정됨)

    신분증 이미지를 외부 확인 업체에 보내다 같은 거부 메시지 아래 원인이 둘이었던 사례에서, 부류별로 나눠 세고 부분 해결을 그대로 보고한 기록이다.

  • 상한치는 수요가 아니다

    (수정됨)

    외부 연동을 새 브랜드로 옮기는 순서를 정하려고 라우트의 throttle 값을 쓰려다, 그 값이 무엇을 재는지 확인하고 한계까지 함께 남긴 기록이다.

  • 다시 만들면 멀쩡하던 것도 달라진다

    (수정됨)

    거래소 일별 통계 표를 전 기간 다시 만들고 백업과 비교하다 바이트 비교가 거짓 경보만 내는 것을 보고, 구조 축과 변동폭 축으로 판정을 다시 세운 기록이다.

June 6
  • 처리 단계의 모듈 구성

    (수정됨)

    ffmpeg 명령 하나에 뭉쳐 있던 상품 영상 처리를 단계로 갈라 프레임이 빠지는 자리를 좁히고, 입력 다양성까지 확인한 기록이다.

  • 자동으로 채워지지 않는 데이터

    (수정됨)

    CoinSyncJob 을 돌려도 안 늘어나는 network 값의 출처를 추적해 자동화 경로가 없다는 사실 자체를 설계에 못 박은 기록이다.

  • 로그의 경로를 바꾸면 없던 일이 생긴다

    (수정됨)

    서버 이전 뒤 배포 경로 일괄 치환의 대상이 코드와 설정뿐인 이유와, 되돌릴 수 없는 로그 치환을 가려내는 순서를 정리했다.

  • 로그인과 인증 사이

    (수정됨)

    관리 콘솔의 로그인과 API 인증이 분리돼 고정 토큰으로 호출하던 구조를 확인하고, 리브랜딩 계획서의 부정확한 표현을 바로잡은 기록이다.

  • 브로커를 완충재로 쓸 때

    (수정됨)

    완충 목적의 ActiveMQ 큐에서 QueueSize 절대값 알림이 계속 울린 이유와, 유입·처리 관계와 대기 시간으로 지표를 바꾼 과정이다.

  • 세션보다 오래 사는 토큰

    (수정됨)

    모바일 앱 API 의 JWT 인증에서 로그아웃이 성립하지 않는 이유와, 갱신 토큰 분리와 회전으로 그 간극을 다룬 기록이다.

May 6
  • 체인을 이긴 관계 테이블

    (수정됨)

    외부 거래소 계정 연결 체인을 고쳤는데도 옛 API 키로 나가던 원인을 오버라이드 테이블의 폴백 구조에서 찾고, 점검 순서를 다시 정한 기록이다.

  • 블루투스로 장치를 제어하는 앱을 만들며 배운 것

    (수정됨)

    연구과제 제안 전 BLE 프로토타입 앱을 만들며, 서버를 거치지 않고 앱이 장치와 직접 통신할 때 전제가 어떻게 달라지는지를 다섯 갈래로 정리했다.

  • 인용한 목록이 그 목록이 아니다

    (수정됨)

    지갑 노드 감시 요약에서 application.yml 목록과 실제 순회 대상이 달랐던 사례로 커버리지 진술을 바로잡고, 감시의 한계까지 정리했다.

  • 일곱 달 요청과 한 달치 로그

    (수정됨)

    Docker 로그 회전과 Elasticsearch 보존 정책이 조사 범위를 정한다는 것을 확인하고, 확인 불가를 결론으로 적으면서 다른 소스를 찾은 과정이다.

  • 컬럼 하나로 답이 안 나온다

    (수정됨)

    체결의 정산 반영 여부를 settlement_id 컬럼 하나로 판정하려다 경로가 셋인 것을 확인하고 판정 규칙을 다시 세운 기록이다.

  • 들여왔다고 켜진 게 아니다

    (수정됨)

    Hibernate 의 @SQLDelete 소프트 삭제가 켜진 줄 알았던 엔티티가 실제로는 하드 삭제였던 사례와, 우회 삭제 절차를 정리했다.

April 6
  • 한쪽만 막으면 다른 쪽으로 샌다

    (수정됨)

    수수료 정책 전파에 확인 절차를 붙이다 같은 이벤트를 내는 둘째 저장 경로를 찾고, 경로를 빠짐없이 세는 방법을 정리했다.

  • 표본에 섞인 삭제 표시

    (수정됨)

    푸시 토큰 무작위 표본이 실제와 다른 값을 낸 이유를 deleted_at 에서 찾고, 조건이 빠질 자리를 구조적으로 없앤 과정이다.

  • 스스로 정할 범위의 경계

    (수정됨)

    프리랜서 건에서 다음 할 일을 매번 고객사에 묻느라 멈추던 시간을 없애기 위해 결정 범위와 BACKLOG 목록과 끼어들기 규칙을 정한 기록이다.

  • 초기값 상수가 라우팅을 정한다

    (수정됨)

    텔레그램 알림 봇에서 조건부 삽입 때문에 낡아도 증상이 안 보이던 chat_id 초기 데이터 상수를 정리하고, 주석을 규칙으로 바꾼 기록이다.

  • 방금 넣은 걸 못 읽는다

    (수정됨)

    MaxScale 로 읽기와 쓰기가 갈린 구성에서 삽입 직후 조회가 간헐적으로 실패한 이유를 세션 단위까지 내려가 확인한 기록이다.

  • 부수효과를 원하는지로 도구를 고른다

    (수정됨)

    주문 상태 일괄 정정에서 JPA 리스너 발화가 2차 사고가 되는 구조를 보고, 도구 선택 기준을 전파 의도 하나로 정리했다.

March 6
  • 검증과 매핑이 다른 필드를 본다

    (수정됨)

    코인 조회 응답을 등록 요청으로 쓸 수 없던 이유와, 코드 추론보다 request_logs 의 실제 성공 요청이 권위 있는 답인 근거다.

  • 두 곳에 살아 있던 매핑

    (수정됨)

    외부 거래소 주문 상태 매핑이 코드 enum 과 테이블에 각각 있어 서로 다른 항목을 누락하던 구조와, 그 어긋남을 다루는 방법이다.

  • 문서에 없고 동작에만 있는 규칙

    (수정됨)

    외부 거래소 주문 취소 연동에서 문서에 없는 규칙을 관측으로 모으고, 그 목록을 다른 사람에게 대조받은 과정이다.

  • 부르지 말고 로그로 확인한다

    (수정됨)

    은행 API 로 나가는 프록시 경로를 검증용 호출 대신 이미 흐르는 트래픽의 로그로 확인하고, 판정 기준을 먼저 정한 기록이다.

  • 이미 있던 길

    (수정됨)

    시세 제공사 분류 매핑에서 불가능하다고 답하려던 문의가 데이터 분포를 보고 뒤집힌 과정과, 그 뒤에 남은 활성 여부 확인을 정리했다.

  • 억지 대분류와 번호 접두의 배제

    (수정됨)

    개발본부 문서 공간에서 미리 만든 대분류가 안 맞아 기타로 몰린 구조를 실제 갈래로 다시 잡고, 번호 접두와 깊이를 정리한 기록이다.

February 5
  • 망 안에 없으면 제약이 반대가 된다

    (수정됨)

    서버리스 알림 함수가 어느 VPC 에도 붙어 있지 않다는 사실에서 기능 배치와 이벤트 보존 기간을 도출한 과정이다.

  • 수락했지만 실행은 못 한다

    (수정됨)

    출금 요청을 받는 조건과 워커가 처리하는 조건이 갈려 있어 실패가 뒤로 밀리던 구조를 버튼 노출 조건까지 올려 맞춘 기록이다.

  • 완료가 끝났다는 뜻이 아닐 때

    (수정됨)

    원화 입금 미처리 전수조사에서 실패 표시만 훑다 놓친 부류를 찾고, 판정을 상태값이 아니라 장부 기록의 존재로 바꾼 과정이다.

  • 착수 전에 미해결을 세어 본다

    (수정됨)

    모바일 앱용 API 를 붙이기 전에 설계 문서와 코드를 대조해 미해결 여섯 항목을 세우고, 전부 닫지 않고 수직 슬라이스로 착수한 기록이다.

  • 이름만으로 판정하지 않은 파일

    (수정됨)

    이름 충돌만 보던 KYC 서류 업로드 저장에 SHA-256 해시와 서명 검사와 저장 확인을 순서대로 붙인 과정이다.

January 6
  • 다시 하려면 무엇이 0이어야 하나

    (수정됨)

    명품몰 일괄 등록의 반복 테스트를 위해 중복 검사 조건을 읽고, 참조 역순 삭제와 공유 자원 확인까지 절차로 만든 기록이다.

  • 검색이 만든 목록과 요구사항의 거리

    (수정됨)

    리브랜딩으로 관리자 콘솔을 새로 만들며 기능 목록을 코드에서 뽑았을 때 빠지는 것과 남는 것을 로그와 관찰로 메운 과정이다.

  • 화면에 없고 전송에는 있던 값

    (수정됨)

    명품몰 화면 목록과 몰 플랫폼 전송 목록이 각자 다른 조건을 쓰고 있던 사례에서, 잔재를 가르는 기준과 삭제 절차를 정리했다.

  • 고정값인 줄 알았는데 매번 다시 만든다

    (수정됨)

    시세 제공사에 보내는 마켓 분류를 직접 바꾸려던 우회안의 전제를 코드로 확인하다 정반대 사실을 찾고, 그 사실을 이점으로 뒤집어 쓴 과정이다.

  • 저장된 필드의 의미를 바꾸면

    (수정됨)

    일별 거래 통계의 volume 필드 의미를 건수에서 거래대금으로 바꾸는 변경이 과거 데이터에 남기는 문제와 세 선택지를 정리했다.

  • 구조만 보고 한 분류의 오류

    (수정됨)

    스토리지 이전 준비에서 확장자와 크기로 나눈 영상 분류가 어긋난 이유와, ffprobe 로 내용을 읽는 비용을 감당하면서 정확도를 올린 방법을 정리했다.

2020 72
December 6
  • 스키마 변경은 코드 배포가 아니다

    (수정됨)

    Jenkins 병렬 배포에서 Flyway 마이그레이션이 한 서비스에서만 도는 구조를 확인하고, 스키마 적용을 배포에서 분리한 기록이다.

  • 확정과 제안의 표시 구분

    (수정됨)

    코로케이션 전환 설계 문서에서 확정과 제안과 미정을 표시로 나누고, 추정과 뒤집힌 결정까지 남긴 기록이다.

  • 같은 종류 작업의 같은 모양

    (수정됨)

    병행하는 프리랜서 건 넷을 각기 다른 형태로 적다가 STATUS.md 한 틀로 통일하고, 막힌 것과 결정을 분리해 관리한 기록이다.

  • 있다는 것이 맞다는 것은 아니다

    (수정됨)

    썸네일 이름의 존재만 확인하던 점검이 치수 불일치를 통과시킨 사례에서 검사 축을 나누고, 차이와 결함을 구분한 기록이다.

  • 이미 복구돼 있던 상태

    (수정됨)

    헤지 취소 실패 기록만 보고 장애로 판단할 뻔한 건에서 재시도 구조를 확인하고, 복구 구간의 가시성 문제를 남긴 기록이다.

  • 느린 것이 아니라 줄 선 것

    (수정됨)

    CPU 에 여유가 있는데 느리던 상품 이미지 등록을 순차 업로드 구조에서 찾고, 주석의 근거를 실측으로 확인한 기록이다.

November 6
  • 한 레이어만 보면 답이 안 나온다

    (수정됨)

    주문 상태와 외부 거래소 헤지 연동 기록이 어긋난 건을 두 레이어로 나눠 보고, 회신 직전 재조회와 근본 대응까지 정리했다.

  • 그 NULL이 정말 이상한가

    (수정됨)

    멈춘 출금 건의 비어 있는 txid 가 원인처럼 보이던 건에서 정상 건을 대조군으로 세우고, 조치 전 확인 항목을 정한 기록이다.

  • 변환은 즉시 끝나지 않는다

    (수정됨)

    요청 안에서 미디어를 변환하던 구조를 큐로 분리하며 중간 상태와 실패 분류와 원본 보관을 어디까지 둘지 정한 기록이다.

  • 스토어 심사가 실제로 보는 것

    (수정됨)

    올해 초 Ionic 앱의 App Store 반려 사유가 기능이 아니라 설명과 확인 가능성이었던 경험에서 배포 경로와 일정까지 다시 잡은 기록이다.

  • 늦게 대답하는 상대

    (수정됨)

    외부 거래소 WebSocket 응답이 순서와 시간을 보장하지 않는다는 전제로 요청 id 와 타임아웃과 재시도 안전성을 다시 잡은 기록이다.

  • 요약 한 줄과 상세 자료

    (수정됨)

    일정산 배치의 텔레그램 알림 내용을 받는 사람의 판단 기준에 맞춰 다시 잡고, 긴급도와 중복 억제까지 정리한 기록이다.

October 6
  • 다시 확인할 때는 다시 재었다

    (수정됨)

    코로케이션 전환 준비로 서버 현황 문서를 갱신하면서 전부 다시 재고, 자동 수집과 수기 기록을 나눠 차이 자체를 신호로 만든 기록이다.

  • 스트림이 살아 있는지 아는 법

    (수정됨)

    데이터 없음과 연결 끊김이 구분되지 않던 체결 SSE 스트림에 주기 신호와 재연결 규칙과 순번 이어받기를 붙인 기록이다.

  • 건너뛴 조건의 전체 목록

    (수정됨)

    조용히 건너뛰던 추천 보상 정산 배치에 사유를 남기게 하고, 이유별 집계로 데이터 문제와 처리 방침까지 드러낸 기록이다.

  • 인코딩된 이름이 실제 키가 되는 자리

    (수정됨)

    오브젝트 스토리지 콘솔이 키를 디코딩해 보여 주는 바람에 판정이 틀렸던 조사에서, 원시 키 확인과 정상화 선택지를 정리했다.

  • 파일명이 같아도 경로가 갈린다

    (수정됨)

    복제한 상품의 이미지가 안 보이던 원인을 image_id 경로 규칙에서 찾고, 완료 판정을 파일 존재까지 넓힌 기록이다.

  • 나갔다 오면 사라지던 진행률

    (수정됨)

    에어드랍 배분 진행률을 SSE 한 채널에 상태 복원까지 얹었다가 재접속마다 화면이 비던 구조를 조회와 갱신으로 나눈 기록이다.

September 6
  • 확인하려던 요청이 만든 것

    (수정됨)

    썸네일 존재 확인 GET 요청이 지연 생성을 촉발해 관측이 무효가 된 사례와, 조회의 부수효과를 확인하는 순서를 정리했다.

  • 0건 수집이 0건 존재는 아니다

    (수정됨)

    De-Fi 수집 배치에서 401 인증 실패가 0건 수집으로 보이던 구조를 고치고, 실패 알림 대신 성공 부재 알림으로 바꾼 기록이다.

  • 메시지 하나가 큐를 멈춘다

    (수정됨)

    역직렬화 실패 한 건이 ActiveMQ 큐 뒤에 쌓인 전부를 막던 정지를 세 층위로 나눠 고치고, 발효 시점의 성질까지 정리했다.

  • 보안 점검 항목을 우리 코드에 대 보면

    (수정됨)

    OWASP Top 10 점검 항목을 거래소 코드에 하나씩 대 보면서 걸린 다섯 가지와 그 대응의 맞바꿈을 정리했다.

  • 절반을 제외하던 도구

    (수정됨)

    명품몰 상품 이미지 점검 도구가 전부 정상이라고 낸 결과의 범위를 확인하고, 제외된 상세 이미지를 별도 조회와 파싱으로 확인한 기록이다.

  • 훅 입력에 없던 작업

    (수정됨)

    git post-receive 훅 스크립트의 전제를 실제 입력으로 검증하다 제약 셋을 찾고, 조용한 오류의 성질을 정리했다.

August 6
  • 있었는데 안 찾아본 것

    (수정됨)

    재스테이킹 만기 정산이 미구현이라는 전제로 착수했다가 이미 도는 배치를 찾고, 없다와 안 된다를 갈라 범위를 다시 잡은 기록이다.

  • 한 작업으로 묶는 기준

    (수정됨)

    거래소 서버 다섯 대의 커널 패치를 한 작업으로 묶었다가 복제 DB 하나에 막혀 전체가 밀린 뒤, 묶고 나누는 기준을 정한 기록이다.

  • 한도에 닿기 전에 정리하는 순서

    (수정됨)

    Elasticsearch 필드 상한이 차서 새 지표가 안 들어가던 상황을 정리하고, 한도 목록과 사전 경고까지 만든 기록이다.

  • 프리셋 분해로 얻은 속도

    (수정됨)

    상품 이미지 변환에서 튜닝할 것이 없다고 단정했던 ImageMagick 프리셋을 개별 옵션으로 분해해 재고, 그 단정을 정정한 기록이다.

  • 인덱스로 좁히고 나서 훑는다

    (수정됨)

    max_execution_time 에 걸리던 작업 로그 검색을 선택도 순서로 풀고, 0을 확증하는 방법과 세대 교체 구조까지 확인한 기록이다.

  • 막힌 것이 아니라 시작 안 한 것

    (수정됨)

    De-Fi 연동 어댑터 구현이 없는 이유를 조사 부족으로 보고 조사 계획을 세우려다, 미착수임을 확인하고 스코프를 다시 잡은 기록이다.

July 6
  • 메뉴와 코드의 차이

    (수정됨)

    거래소 관리자 콘솔 점검에서 @GetMapping 구현 수와 menu.json 등재 수를 세고, 확인한 것과 세기만 한 것을 나눠 적은 기록이다.

  • 요청 생성 이후의 남은 일

    (수정됨)

    접수만 되고 처리가 멈춰 있던 구조에서 대기 감시와 워커 생존 감시를 나눠 붙인 기록이다.

  • 전부를 막던 상태 코드 하나

    (수정됨)

    네 코인의 출금 중지 이슈를 한 쿼리로 묶어 두 그룹으로 가르고, 캡처와 실제 상태의 시점 차이까지 확인한 기록이다.

  • 로그를 모으는 데 드는 비용

    (수정됨)

    ELK 로그 수집을 붙인 뒤 서버가 느려진 원인을 grok 파싱 위치에서 찾고, 보낼 것과 보관 기간과 장애 대응까지 정리했다.

  • 큐에 넣는 쪽의 부재

    (수정됨)

    수집 잡 코드가 전부 올바른데 아무것도 안 돌던 이유를 큐에 넣는 함수의 호출부 개수에서 찾고, 도달 가능성을 확인 순서로 만든 기록이다.

  • 프로필을 나누자 로그인까지 갈렸다

    (수정됨)

    브라우저 프로필을 나누자 로그인 세션까지 갈린 원인을 저장 위치에서 찾고, 계정 격리를 어디까지 할지 대가를 놓고 정한 기록이다.

June 5
  • 마이그레이션이 두고 간 이력

    (수정됨)

    회원 제재 이력이 이관에서 빠져 계속되는 수작업을 만든 구조를 확인하고, 증상 대응과 근본 해결을 함께 남긴 기록이다.

  • 뒤 클레임을 막은 앞 상태

    (수정됨)

    입금 생성 실패의 로그가 비어 있어 상태 데이터로 추론하고, 수집과 생성을 갈라 절차를 세우면서 추정 표기까지 남긴 기록이다.

  • 화면의 삭제가 부르는 것

    (수정됨)

    관리 화면의 삭제 버튼이 입금 승인 취소 API 의 조건부 호출이었던 사례에서, 조용한 실패와 실행 판단의 근거를 정리했다.

  • 의도된 차이와 동기화 대상

    (수정됨)

    보안 검토 중 두 PC 의 설치 프로그램 목록 차이를 맞추려다 용도를 확인하고, 유지할 차이와 동기화 대상으로 나눈 기록이다.

  • 새 연동 뒤에도 남은 옛것

    (수정됨)

    수수료 정책을 새로 활성화하면 끝날 줄 알았던 작업에서 버전 분기를 확인하고, 남은 두 단계를 절차로 만든 기록이다.

May 6
  • 상대가 보는 하나뿐인 주소

    (수정됨)

    은행 API 허용 IP 목록을 접속 빈도로 정리하려던 계획이 NAT 때문에 무너진 이유와, 판단 기준을 코드 경로로 바꾼 기록이다.

  • 앱이 실제로 만드는 SQL로 봐야 한다

    (수정됨)

    주문 검색에 인덱스를 넣고도 체감이 없던 이유를 앱이 실제로 만드는 SQL 에서 찾고, 거짓 전제와 조건 선택도까지 확인한 기록이다.

  • 로그인 계정을 한 곳으로 모으면

    (수정됨)

    시스템마다 흩어진 계정을 LDAP 한 곳으로 모으면서 남은 계정을 세고, 절차와 확인과 비상 경로까지 정리한 기록이다.

  • 묻기 대신 밀어 주기

    (수정됨)

    시세 화면의 주기적 조회가 부하와 신선도의 맞바꿈인 것을 확인하고 SSE 로 밀어 주는 구조로 바꾸면서 생긴 문제들을 정리했다.

  • 선행 컬럼이 없으면 인덱스가 죽는다

    (수정됨)

    체결 테이블에서 대량 스캔이 붙은 쿼리의 원인을 인덱스 정의와 대조해 찾고, LOCK=NONE 으로 인덱스를 추가한 기록이다.

  • 서비스가 둘이면 나가는 길도 둘이다

    (수정됨)

    은행 API 를 부르는 두 서비스의 나가는 경로가 프록시와 NAT 로 달랐던 사례와, 서버 정의와 소스와 망 설정을 순서대로 본 기록이다.

April 6
  • 키가 아니라 인코딩된 값

    (수정됨)

    문의에 적힌 출금 번호가 내부 키가 아니라 인코딩된 값이었던 사례에서, 판별 방법과 묶어 해석한 가정의 위험을 정리했다.

  • 기준 미달과 음수는 다르다

    (수정됨)

    스테이킹 정산 목록에서 카운트가 맞는데도 정의가 어긋나 있던 것을 샘플 행으로 잡아내고, 목록 검증 절차를 바꾼 기록이다.

  • 검증기 둘의 교집합

    (수정됨)

    차단 필터와 @Pattern 허용 목록, 성격이 반대인 검증 레이어 둘을 확인해 최종 허용 문자를 교집합으로 정리하고, 조건부 생략까지 담은 기록이다.

  • 엉뚱한 곳을 고치던 성능 조사

    (수정됨)

    거래소 자산 화면을 추측으로 최적화했다가 나아지지 않은 뒤 구간별로 재고, 평균 대신 백분위를 보게 된 과정이다.

  • 도구는 껐고 규칙은 남은 상태

    (수정됨)

    성능 측정에서 부수 기능을 껐는데도 예상 밖 DB 사용량이 섞인 원인을 패턴 둘로 좁혀 감사 규칙에 닿고, 측정의 한계를 명시한 기록이다.

  • 로그 문구가 어느 단계인지 알려준다

    (수정됨)

    Spring Boot 서비스의 긴 로그에서 시작 문구 유무로 실패 단계를 가르고, 무해한 문구를 잡음으로 분류해 패턴표로 남긴 기록이다.

March 5
  • 같은 내용을 다시 보낸 뒤의 변화

    (수정됨)

    시세 제공사 파트너 API 에서 필드의 존재만으로 상태가 바뀌는 것을 만나 요청 빌더의 기본값을 뒤집고, 필드별 표를 만든 기록이다.

  • 가설을 전부 배제한 뒤의 확정

    (수정됨)

    출금 승인은 됐는데 노드 전송 작업이 안 생기던 건에서 네 가설을 배제하고 다른 축을 찾아 정상 방어로 판정한 기록이다.

  • 조회 한 번으로 안전한지 정해진다

    (수정됨)

    체결 건의 일정산 편입 여부를 판정하는 경로를 규명해 세 테이블 탐색을 한 줄로 줄이고, 확정과 추정을 나눠 남긴 기록이다.

  • 한 번 고침에 남은 이력 셋

    (수정됨)

    수수료율 일괄 보정에서 남길 이력을 정상 경로 건과 대조해 개수와 내용을 맞추고, 이름이 거짓말하는 컬럼까지 확인한 기록이다.

  • 화면에만 남은 미처리

    (수정됨)

    노드 연동 장애로 읽히던 출금 취소 문의를 상위 상태 확인으로 표시 문제로 판정하고, 조사 방향과 답변을 함께 바꾼 기록이다.

February 6
  • 삭제하고 다시 만들면 연결이 끊긴다

    (수정됨)

    상장 코인 정보 갱신에서 삭제 후 재생성이 마켓·지갑 설정의 연결을 끊는 구조를 확인하고, 제자리 갱신 규칙으로 바꾼 기록이다.

  • 실제로 돌려 본 보안 점검 목록

    (수정됨)

    거래소 인수 시점의 OWASP 기반 보안 점검 목록에 확인 명령과 통과 기준과 대조군을 붙여 실제로 돌려 본 기록이다.

  • 큐가 준 순서와 처리가 끝나는 순서

    (수정됨)

    ActiveMQ 큐가 순서대로 줘도 결과가 뒤집히는 이유를 정리하고, 메시지 그룹과 순번을 함께 두어 막은 기록이다.

  • 못 읽는 형식은 변환해서 읽는다

    (수정됨)

    인수인계 자료를 Tika 로 색인하며 형식을 직접과 간접과 미지원으로 나누고, 변환 경로와 도구 경로까지 표로 정리한 기록이다.

  • 한 채널에서 깨진 일반화

    (수정됨)

    텔레그램 상장 공지에서 코인 심볼을 뽑는 방식이 표본 몇 개로 세워졌다가 전 채널 확인에서 깨진 과정과, 미확인 항목을 구현 전에 닫은 기록이다.

  • 제약이 답변에만 있는 API

    (수정됨)

    외부 거래소 API 의 공식 문서에 없고 질의응답에만 있던 네 가지 제약을 정리하고, 구현 전에 답변을 훑는 순서를 세운 기록이다.

January 8
  • 아무것도 가르지 못한 컬럼

    (수정됨)

    해외몰 배송비 테이블에서 이름이 동작을 암시하던 설정 컬럼을 전수로 확인해 라벨임을 확정하고, 실제 동작을 정하는 자리를 함께 남긴 기록이다.

  • 옮기면서 다시 짠 분류

    (수정됨)

    파일 이관에서 옛 구조를 그대로 가져오지 않고 분류를 다시 짜면서, 대조와 대응표와 유예 기간까지 정리했다.

  • 외주 산출물의 목적과 구성

    (수정됨)

    외주 결과물에서 왜 그렇게 만들었는지가 빠져 있던 경험을 절차로 바꾸고, 계정과 인수 회의까지 포함시킨 기록이다.

  • 중간에서 멈추는 DDL 스크립트

    (수정됨)

    재실행 가능한 스크립트와 한 번만 되는 스크립트의 차이를 정리하고, 이름과 경고와 제약 시점까지 다룬 기록이다.

  • 규제가 컬럼이 될 때

    (수정됨)

    해외 판매 스키마에서 법적 요건이 컬럼과 별도 테이블로 갈리는 기준과, 성격과 정책을 나눈 설계를 읽은 기록이다.

  • 보관물에 남겨야 하는 것

    (수정됨)

    설명 없이 보관된 프로젝트를 읽느라 이틀을 쓴 뒤, 보관 절차에 무엇을 함께 남길지 정한 기록이다.

  • 파일 사이 참조 관계

    (수정됨)

    검색으로 안 잡히는 참조를 실행 기록으로 모으고, 안 읽힘과 안 쓰임을 갈라 정리한 과정이다.

  • 매뉴얼 앞에 공통 동작을 규정하면

    (수정됨)

    매뉴얼 앞에 공통 동작을 한 번 규정한 구성이 반복과 불일치를 없애는 이유와, 캡처와 규정의 수명 차이를 정리했다.

2019 85
December 8
  • 웹 루트 아래의 업로드 폴더

    (수정됨)

    운영 가이드의 디렉터리 구조에서 업로드 경로가 nginx 로 열려 있는지 확인하고 보호 자원을 웹 루트 밖으로 내린 기록이다.

  • 모든 테이블의 감사 컬럼 네 개

    (수정됨)

    PostgreSQL 스키마의 모든 테이블에 같은 감사 컬럼 네 개가 반복되는 구조에서 방법별 트레이드오프를 정리한 기록이다.

  • 운영에 올린 dev 빌드의 대가

    (수정됨)

    당직자용 운영 가이드를 검토하다가 실시간 토론 서버의 배포 절차에서 되돌릴 수 없는 구조를 발견한 기록이다.

  • 한 테이블에 담은 이벤트 로그

    (수정됨)

    Moodle 표준 로그 저장소처럼 여러 종류의 행동 로그를 한 테이블에 담은 설계에서 얻는 것과 잃는 것을 정리한 기록이다.

  • 바꾼 기록과 돌린 기록

    (수정됨)

    배치 설정과 실행 기록을 한 표에 담고 있던 것을 성격에 따라 나눠 정리한 기록이다.

  • 다섯 번 고쳐도 그대로인 버전

    (수정됨)

    개정 이력은 쌓이는데 버전이 안 움직이는 설계서를 받아 기준부터 정한 기록이다.

  • 나란히 적은 현재와 목표

    (수정됨)

    구조 개선 제안이 안 좁혀지던 것을 현재 상태와 목표를 나란히 적어 풀어낸 기록이다.

  • 스크립트 사이의 실행 순서

    (수정됨)

    앞 배치가 끝나기 전에 시작해 실패한 것을 시간이 아니라 순서로 묶어 해결한 기록이다.

November 7
October 8
September 8
August 8
July 7
June 7
May 8
  • 받아만 오면 도는 개발 환경

    (수정됨)

    개발 환경 구축에 사흘이 걸리던 것을 받아서 한 번 실행하면 도는 상태로 만든 기록이다.

  • 다른 테이블에 부과된 감점

    (수정됨)

    과제 지각 감점 면제 요청에서 부과 레코드가 이름이 맞는 테이블에 없어 코드를 정독해 찾은 기록이다.

  • 화면 이름과 코드 이름의 통일

    (수정됨)

    화면과 코드와 DB에서 같은 대상을 다른 이름으로 부르던 것을 하나로 맞춰 나간 기록이다.

  • 에러 응답에 없는 성공 키

    (수정됨)

    인사 시스템 전송 실패 수천 건의 로그가 전부 같은 문구였던 원인이 우리 코드의 예외였음을 확인한 기록이다.

  • 실측으로 고른 배치 시각

    (수정됨)

    일배치 시각을 새벽으로 잡으려다 부하 지표를 실측해 통념과 반대라는 것을 확인한 기록이다.

  • 모듈 단위 경로 정리

    (수정됨)

    규칙 없이 400줄로 늘어난 경로 목록을 도메인 단위로 묶고 이름 규칙을 검사로 만든 기록이다.

  • 되살아나는 세 갈래 경로

    (수정됨)

    정지한 수강 등록이 Moodle 의 세 경로로 되살아난다는 것을 로그 표 그룹핑으로 확인하고 공통 지점에서 막은 기록이다.

  • 다른 층에 있던 고칠 자리

    (수정됨)

    경로 생성기를 갈아 끼우면 될 줄 알았던 문제의 해법이 실제로는 다른 층에 있었던 기록이다.

March 8
  • 승인이 거른 열두 건

    (수정됨)

    승인을 눌렀는데 작업이 안 나간 것이 오류가 아니라 필터에 걸러진 결과였음을 확인한 기록이다.

  • 작업 완료와 대상 상태의 분리

    (수정됨)

    멈춘 작업을 완료 처리하려다 그것이 대상 상태를 바꾸지 않는다는 것을 미리 확인한 기록이다.

  • 급할 때의 경로

    (수정됨)

    서버에서 직접 고친 수정이 다음 배포에서 사라진 뒤 급할 때용 경로를 따로 만든 기록이다.

  • 멈춘 상태값과 재수집의 부재

    (수정됨)

    입금이 확인됐는데 잔액에 안 들어온다는 문의에서 멈춘 것이 노드가 아니라 확인 수 컬럼이었음을 확인한 기록이다.

  • 화면이 만든 것과의 대조

    (수정됨)

    계정 생성을 스크립트로 처리하기 전에 화면이 만든 레코드 한 건과 대조해 여섯 개 필드를 바로잡은 기록이다.

  • DB 수정이 닿지 않는 경계

    (수정됨)

    정책 값을 DB에서 일괄 수정하면 끝일 줄 알았으나 외부에 이미 등록된 건에는 닿지 않았던 기록이다.

  • 실행 위치를 전제한 스크립트

    (수정됨)

    정리 스크립트를 다른 자리에서 돌려 엉뚱한 파일이 지워진 뒤 전제를 없애고 안전장치를 넣은 기록이다.

  • 다른 컬럼에 있던 금액

    (수정됨)

    조회한 출금 수수료가 0이라 누락으로 볼 뻔했으나 값이 다른 컬럼에 있었고, 수수료를 받는 방식이 컬럼을 가른다는 것을 확인한 기록이다.

February 8
January 8
2018 90
December 7
November 7
October 8
September 7
August 8
July 8
June 7
May 8
April 8
March 7
  • 상태에 머문 것만으로 부과했다

    (수정됨)

    확인 대기에 머문 시간만으로 의심 입금 보류를 자동 부과하는 구조가 txid 덮어쓰기 설계와 만나 오탐을 만들던 것을 정리한 기록이다.

  • 지금 규약과 어긋난 옛 설정

    (수정됨)

    옛 서버의 설정을 통째로 복사했다가 그 서버가 안 맞고 있던 것까지 따라온 것을 정리한 기록이다.

  • 대상이 늘면 장비가 늘어야 했다

    (수정됨)

    수집 대상을 늘리기 전에 대상당 자원을 재고 몰리는 시점과 구조를 함께 본 기록이다.

  • 성공이 아니었던 200

    (수정됨)

    상태 코드와 업무 결과가 두 층으로 나뉜 응답 규격에서 필드 생략이 호출을 늘리던 것까지 정리한 기록이다.

  • 초기화 스크립트가 소스와 어긋났다

    (수정됨)

    인계받은 초기화 스크립트의 공통 코드가 원본 소스와 값·의미·순서 세 가지로 어긋나 있던 것을 정리한 기록이다.

  • 초 단위로는 순서를 못 가렸다

    (수정됨)

    시각으로 순서를 가리려다 저장 정밀도와 시계 기준까지 다시 정하게 된 기록이다.

  • 다섯으로 수렴한 실패 사유

    (수정됨)

    오입금 반환 전송을 100건씩 반복하며 노드 오류를 분류해 사유의 수렴을 확인하고, 로그로 안 잡히는 종류까지 찾은 기록이다.

February 7
January 8
2017 92
December 7
November 8
October 8
September 8
August 8
July 7
June 8
May 7
April 8
March 7
  • 흐름표가 말하지 않은 것

    (수정됨)

    매칭 서비스 흐름표를 다 읽고 나서 거기 없는 다섯 가지를 목록으로 대조해 찾아낸 기록이다.

  • 내 쪽에서는 보이는데

    (수정됨)

    한쪽에서는 보이고 다른 쪽에서는 안 보이는 상황을 가르려고 확인 정보를 화면에 넣고 배포를 고친 기록이다.

  • 매칭의 결말이 셋이었다

    (수정됨)

    매칭 흐름표의 분기가 셋으로 갈리는 이유와 중간 해지·선결제·빈 번호가 남긴 물음을 읽은 기록이다.

  • 같은 조회를 매번 손으로 짰다

    (수정됨)

    일주일에 몇 번씩 오는 같은 확인 요청을 매번 손으로 짜다가 스크립트와 공통 조회로 옮긴 기록이다.

  • 매칭 서비스의 양쪽

    (수정됨)

    매칭 서비스의 흐름표가 두 벌인 이유와 한쪽에만 있는 화면 셋이 무엇을 말하는지 읽은 기록이다.

  • 가끔 나는 것을 잡는 방법

    (수정됨)

    재현이 안 되는 시간 초과를 발생 순간의 정보를 모아 분포로 좁히고 원인 둘을 갈라낸 기록이다.

  • 번호 체계가 비대칭을 드러냈다

    화면 흐름표의 번호 체계 자체가 설계와 그 안의 비대칭을 담고 있던 기록이다.

February 8
January 8
2016 98
December 7
November 8
October 8
September 7
August 8
July 9
June 9
May 8
April 9
March 8
February 9
January 8
2015 41
November 1
September 1
July 1
May 8
April 8
March 7
February 7
January 8
2014 91
December 8
November 7
October 8
  • 얼마나 두는지를 정하고 나서 지웠다

    커진 주문 표를 옮기기 전에 보존 기간을 정하고 CREATE TABLE ... LIKE 로 보관 표를 만든 뒤 건수와 합계를 대조한 기록이다.

  • 업로드 폴더에서 나온 낯선 파일

    업로드 폴더에 들어온 웹셸을 발견하고 확장자 검사가 왜 뚫리는지 확인한 뒤 실행 자체를 끈 기록이다.

  • 조회 스크립트에 삭제를 넣을지 말지

    (수정됨)

    안 쓰는 파일을 찾는 스크립트에 삭제를 넣자는 제안을 두고 사람이 목록을 보는 단계를 남긴 기록이다.

  • 재시도가 실패를 가리고 있었다

    (수정됨)

    안쪽에 숨어 있던 재시도가 실패를 성공으로 덮고 있던 것을 시도 횟수 집계로 드러내고 CURLOPT_TIMEOUT 까지 찾아간 기록이다.

  • 배포가 업로드 폴더를 지웠다

    (수정됨)

    rsync --delete 가 서버에만 있던 파일을 지운 사고와 -n 만 준 확인 명령이 아무것도 안 본 이유를 정리한 기록이다.

  • 설정을 저장소 밖으로 뺐다

    저장소에 들어 있던 데이터베이스 접속 정보를 밖으로 빼고 svn:ignore 가 안 막아 주는 부분과 이력에 남은 값까지 정리한 기록이다.

  • 두 가지를 한 번에 바꿨다

    성능 개선 두 가지를 동시에 적용해 무엇이 효과였는지 모르게 된 것을 나눠 재며 확인한 기록이다. 재는 조건을 고정하는 방법도 함께 정했다.

  • 같은 파일인데 한쪽에서만 404였다

    (수정됨)

    업로드 파일명의 유니코드 정규화가 저장과 조회에서 달라 같은 파일을 못 찾던 것을 이름 생성으로 고친 기록이다.

September 7
  • 응답 헤더에 남은 횟수가 있었다

    (수정됨)

    본문만 읽어 원인을 못 찾던 429 응답의 이유가 X-RateLimit 헤더에 있던 것을 확인한 기록이다.

  • 온 김에 더 고칠지 정했다

    (수정됨)

    버그를 고치러 들어간 김에 여러 개를 한꺼번에 바꿨다가 SVN 역병합으로 물리고 커밋을 나누는 방식으로 바꾼 기록이다.

  • 옵션 조합이 폭발했다

    옵션 조합을 미리 만들어 두던 방식을 재고를 넣을 때 만드는 방식으로 바꾸며 화면 구성까지 바꾼 기록이다.

  • 조건 하나가 전부를 걸렀다

    (수정됨)

    갑자기 0건이 된 통계를 WHERE 조건을 하나씩 빼서 원인을 찾고 값 체계 변경 절차를 세운 기록이다.

  • 판을 올렸더니 쓰던 기능이 없어졌다

    (수정됨)

    PHP 5.4 에서 없어진 magic_quotes_gpc 와 register_globals 에 기대던 코드가 조용히 다르게 동작한 것을 찾아낸 기록이다.

  • 다른 분기에 작업이 남아 있었다

    (수정됨)

    trunk 만 보고 없다고 답했다가 branches 에서 작업을 찾은 뒤 SVN 브랜치 정리 기준을 세운 기록이다.

  • 상품 속성이 너무 많았다

    (수정됨)

    속성이 많은 상품을 컬럼으로 담다 InnoDB 행 크기 한계에 부딪쳐 행으로 빼고 다시 일부를 되돌린 기록이다.

August 8
July 7
June 9
May 8
April 7
March 7
February 7
January 8
2013 11
December 8
September 1
July 1
April 1
2012 63
December 1
September 1
August 8
July 7
June 8
May 8
April 7
March 8
February 8
January 7
2011 38
December 8
November 8
October 7
September 8
August 7