만들고, 올리고,
기록합니다.
백엔드 개발자 주재범입니다. 설계 결정과 그 대가, 장애에서 배운 것, 팀에 남긴 규칙을 씁니다.
추천 읽기
- 5분 읽기
엑셀 대량 등록 시 서버 검증과 클라이언트 피드백의 분리 설계
대용량 엑셀 업로드 시 서버의 전체 검증 결과와 클라이언트의 실시간 피드백을 분리해, 사용자에게 즉시 시각화된 대조표를 제공한다. 서버 부하를 줄이면서도 사용성을 확보한 아키텍처 결정 과정.
API 설계인프라팀 규율회고 - 6분 읽기
서명은 한 장, 장부는 여섯 장
세 회사가 한 장에 서명하는 계약서를 양자 계약 여섯 장 위의 상위 문서로 얹었다. 공유 문서로 만들었다가 하루 만에 "내 장부의 기록"으로 뒤집은 기록.
도메인 모델링데이터 정합성팀 규율 - 4분 읽기
내가 그날 야근해야 했던 이유: 아웃박스, 커밋 뒤에 완성되는 세계에서 배차하기
아웃박스 소비자가 커밋 이후에 만드는 데이터를 배차 게이트가 전제해, 간편배차 운행이 전부 거부됐다. 게이트의 질문을 바꾸고 판정을 스냅샷 밖에서 읽어 풀었다.
Spring트랜잭션아웃박스회고 - 4분 읽기
사라진 이벤트 675건의 행방
배포와 큐 포화로 후속 처리가 조용히 사라지던 비동기 리스너 구조를 아웃박스 원장과 폴러로 바꿨다. at-least-once가 낳는 중복은 멱등 선점으로 막았다.
Spring트랜잭션아웃박스팀 규율 - 7분 읽기
시설의 뿌리를 찾아서
같은 사업장이 배출처와 처리장과 운송사와 국가 시스템에 제각각 등록되는 물류 플랫폼에서 시설의 뿌리를 국가 사업장 코드에 두었다. 뿌리를 모르는 시설엔 임시 계보를 주고 알게 되는 순간 하나로 합치는 설계와 그 대가를 적었다.
도메인 모델링데이터 정합성팀 규율 - 8분 읽기
가이드 안 읽는 건 사람이나 AI나 똑같다: AI 시대의 스펙 운영기
AI가 코드의 대부분을 쓰는 체제에서 규칙은 어떻게 지켜지는가. 코딩 가이드의 집행 등급, 도메인 헌법의 생명주기, 이슈 트래커와 git의 역할 분담을 정리했다.
팀 규율SDDLLM회고 - 5분 읽기
삼체문제, 발주는 한 건인데 장부는 여섯 장
세 회사가 얽히는 순간 거래 장부는 여섯 장이 된다. 반쪽 삼각형이 만들던 정산 공백을 불변식 하나와 세 시점 보급으로 막았다.
도메인 모델링데이터 정합성팀 규율 - 11분 읽기
손님이 한 명일 때도 장사는 해야 한다
고객이 적은 스타트업에서 거래의 세 당사자가 모두 우리 고객일 리는 없다. 한 테넌트만 있어도 업무가 닫히고, 다 모이면 자동으로 이어지고, 언제든 떼어낼 수 있게 운송 플랫폼에 시설 도메인을 이벤트로 이어 붙인 설계를 적었다.
아키텍처이벤트 기반도메인 모델링회고 - 3분 읽기
분산락 없이 이중청구 막는 법
분산락 대신 '사이클 멱등키'와 'PG 거래조회'를 결합해 원자성 갭을 메웠다. 운영 부담은 늘었으나 데이터 정합성을 확보했다.
Spring트랜잭션멱등성팀 규율 - 4분 읽기
LLM에게 UUID를 외우게 하지 마세요
팀 이슈 트래커를 MCP 도구로 노출하며 설계를 세 번 뒤집었다. LLM에게 UUID를 시키지 않고, 가드레일을 설명문에 심고, 겹치는 알림 책임을 한 곳으로 모았다.
LLMMCPAPI 설계