#운영의기술
43편
결제수단을 다 더하면 순매출이 됩니다 — 하나만 빼고 전 매장이 원 단위로 맞았습니다
#결제수단#순매출#손익계산서#POS연동수정 API에서 비밀번호를 추방했더니, 부분 업데이트 사고 세 가지가 같이 드러났습니다
#비밀번호변경#PATCH#부분업데이트#크리덴셜취소 로직 공통화를 검토했더니, 바꾼 코드는 0줄이었습니다
#공통화#추상화#RuleOfThree#취소처리잘 되는 환율 API 를 두고 중앙은행 원본을 직접 치기로 했습니다 — 감싼 것을 쓰면 과거가 바뀝니다
#환율API#데이터원천#재현성#외부의존막으려던 누수는 0.62%, 그 필터가 같이 버린 건 85.7%였습니다
#SQL#NULL처리#3값논리#지표설계공공데이터의 '표준 코드'를 유니크키로 믿기 전에 세어 봤더니, 107건이 겹쳤습니다
#유니크키#공공데이터#오픈API#데이터적재「하루 한 번」을 메모리에 적었더니, 배포마다 한 번이었습니다
#스케줄러#상태관리#재시작#테스트설계「bcrypt 때문」이라고 말하고 나서 쟀다 — 3분 6초가 7.5초, 가드는 깨뜨려 봐야 가드였다
#테스트속도#bcrypt#작업계수#pytest테스트 격리를 두 번 놓쳤더니, 둘 다 에러 없이 통과했습니다
#테스트격리#pytest#conftest#LLM계측안 쓰는 개념 하나 지우는 일인 줄 알았습니다 — DB 컬럼 DROP까지 갔습니다
#도메인모델링#레거시정리#기술부채#DB컬럼제거위치정보법 대응을 해보니, 핵심 작업은 좌표 컬럼 삭제였습니다
#위치정보법#컴플라이언스#데이터최소화#DROPCOLUMN반품은 주문 화면에 없습니다 — 매입 집계가 부풀었던 이유
#데이터집계#거래원장#원천전환#회귀검증스크린샷 찍으려 릴리스 빌드를 처음 돌렸더니 앱이 죽었습니다
#릴리스빌드#코드축소#리플렉션#안드로이드출시접근 권한을 사본 테이블로 판정했더니, 떠난 담당자 35명이 그대로 남았습니다
#접근권한#단일출처#데이터모델링#마이그레이션인덱스를 타고 있는데 4.1초 상세히 뜯어봤습니다
#상관서브쿼리#인덱스#EXPLAINANALYZE#쿼리튜닝늘 1.37% 부족했습니다 — 그게 오차가 아니라 원천에서 빠진 매출이었습니다
#데이터정합성#POS연동#모니터링설계#인덱스튜닝테스트를 돌렸더니 운영 DB에서 349건이 지워졌습니다
#테스트격리#운영DB사고#upsert#deleteinsert배포도 안 했는데 500이 떴다고?
#MyBatis#NULL#NPE#합성키같은 목록을 세어봤더니 백엔드 19개, 프론트 18개였습니다
#카탈로그API#단일진실#하드코딩드리프트#설정vs사실워커 잡 하나가 35시간을 돌자, 아침 매출 데이터가 사라졌습니다
#headofline블로킹#레인분리#백프레셔#BoundedSemaphoreREQUIRES_NEW를 썼더니 자기 자신과 데드락이 났습니다
#트랜잭션#REQUIRES_NEW#데드락#스프링9일 묵은 차단, 알고 보니 우리가 매일 갱신하고 있었습니다
#ratelimit#백오프#크롤링#재시도전략브랜드별 매출을 다 더했더니 전체보다 커졌습니다
#집계#데이터정합#코호트#파티션인증은 걸어놨는데, 새로 만든 API 주소만 로그인 없이 열려 있었습니다
#인증#보안#API설계#deny-by-default환불이 두 번 됐을까 걱정한 사용자, 실은 한 번도 안 됐습니다
#결제환불#멱등성#데이터복구#채널비대칭공간 예약 마감, 예약과 취소를 같은 선에 묶었습니다
#예약시스템#마감정책#불변식#정책설계푸시 알림이 미구현인 줄 알았는데 코드는 다 있었다
#Firebase#FCM#푸시알림#Flutter테스트 설정 한 줄이 운영 DB 테이블을 지웠습니다
#ddlauto#JPA#데이터베이스#운영사고외부 API를 트랜잭션 안에서 불렀다가 DB 전체가 멈출 뻔했습니다
#트랜잭션#커넥션풀#외부API#타임아웃외부 코드 리뷰가 잡아낸 사각지대 — 모든 계정의 동일 임시 비밀번호
#보안#코드리뷰#하드코딩제거#SecureRandom로그인 자동 풀림의 두 원인 — refresh 미사용과 외부 4xx 오인 매핑
#JWT#refresh토큰#axios인터셉터#에러매핑엑셀 다운로드 패턴을 만들었는데, 진짜 완성은 운영하면서 드러났습니다
#엑셀다운로드#FastExcel#RFC5987#CORS점진 마이그레이션 중간 상태, 뭘 먼저 정리해야 할까?
#리팩토링#점진마이그레이션#deprecated#RBAC6개월 운영 후 Tag 시스템을 완전 폐기했습니다 — 데이터가 말한 결정
#도구폐기#데이터기반의사결정#분류시스템#미니멀리즘16건이 모두 마감일 미정이었습니다 — 정체성이 흐려진 도메인 노드를 살리는 5축 보강하기
#도메인모델링#정체성재정의#제품설계#시스템리팩토링추천이 매번 같은 5건이었습니다 - 사용자가 추론하기 전에 시스템이 먼저 말해야 합니다
#UX#추천시스템#사용자경험#메타데이터노출보안 가드의 적정 강도 — 위협 모델링으로 결정한 회고
#보안#위협모델링#DefenseInDepth#백엔드가드"AI 평가" 빈 박스를 발견했을 때 채우지 않고 지운 이유 — 의도 중복의 진단
#기능폐기#UI정리#의도중복#제품설계데이터를 두 곳에 두지 마라 — 옵시디언 친화 설계를 폐기한 회고
#SOT#데이터관리#단일진실원천#지식그래프야간 광고 푸시, 합법적으로 보내는 3가지 길 — 정보통신망법 50조를 제품에 녹이는 법
#정보통신망법#야간푸시#광고동의#규제대응거래처 코드 한 줄을 어떻게 둘까 — 모던 트렌드와 한국 운영 현실 사이
#데이터모델링#SaaS#식별자#비즈니스코드기능 하나 빼는 데 4시간이 들었습니다 — 도메인 제거의 도미노
#도메인모델링#리팩토링#영향분석#제거작업잔고 없는 사용자가 무료 서비스도 못 썼습니다 - 0원 결제가 폭로한 시스템의 숨은 가정
#0원결제#엣지케이스#결제시스템#일관성가드
다른 주제 보기
글이 3편 이상인 주제만 따로 모아 둡니다.