백엔드릴리스 노트에 '수정됨' 대신 재현 조건과 확인 방법을 쓰는 이유백엔드 릴리스 노트는 '버그 수정됨' 한 줄로 끝나기 쉬워요. 재현 조건·기대 응답·확인 명령을 적으면 회귀 테스트와 롤백 판단까지 한 번에 풀려요.2026년 10월 14일·5분 읽기
백엔드카드 한쪽 액센트 바를 테스트로 차단하기: no-one-sided-accent디자인 금지 규칙을 문서 대신 테스트로 강제하는 법. 한 변 액센트 바를 정규식 3종으로 잡아 CI에서 fail-closed로 막는 과정을 정리했어요.2026년 10월 13일·5분 읽기
백엔드같은 경기 두 번 안 만드는 dedupe 키: 날짜·장소·상대팀동호회 경기 일정 등록 API에서 날짜·장소·상대팀을 묶은 유니크 키와 ON CONFLICT로 중복 등록을 DB 층에서 막는 방법을 정리했어요.2026년 10월 12일·5분 읽기
백엔드앱스토어 스크린샷 현지화, 네모(□) 글자를 렌더 전에 잡는 글리프 검사 게이트폰트에 없는 글자가 네모(□)로 찍히는 사고를 렌더 전에 cmap 조회로 막고, 잡 상태와 HTTP 422 응답으로 사람에게 드러내는 백엔드 게이트 설계예요.2026년 10월 10일·6분 읽기
백엔드Workers 응답 후 로그가 사라질 때 ctx.waitUntil 점검법Workers 엣지 게이트웨이에서 응답 뒤 로그 전송이 누락되는 floating promise 문제와 ctx.waitUntil 적용 기준을 정리해요.2026년 10월 2일·4분 읽기
백엔드법률정보 출처 변경과 응답 정합성 설계법령·판례 데이터의 출처가 갱신될 때, 문서 개정 이력과 검색 응답을 일관되게 관리하는 백엔드 설계를 정리해요.2026년 10월 1일·4분 읽기
백엔드oklch 시맨틱 토큰으로 상태 배지 API 설계하기클린맥 스캔 결과처럼 상태가 많은 화면을 위해 DB 상태값, API 응답, oklch 시맨틱 토큰을 분리하는 방법을 정리해요.2026년 9월 30일·4분 읽기
백엔드MCP 토큰은 있는데 스킬이 실패한 env 이름 문제MCP 서버와 스킬이 같은 외부 서비스를 써도 환경 변수 이름이 다르면 인증이 조용히 실패하는 이유와 점검 순서를 정리해요.2026년 9월 29일·5분 읽기
백엔드Supabase Free 프로젝트 7일 비활성, Workers Cron으로 관리하기Supabase Free 프로젝트의 비활성 일시정지 조건을 이해하고 Workers Cron과 인증된 DB 요청으로 점검 흐름을 구성합니다.2026년 9월 27일·5분 읽기
백엔드FastAPI 응답 camelCase 통일로 프론트 변환 레이어 없애기Pydantic alias_generator로 FastAPI 응답을 camelCase로 통일하면 프론트의 snake→camel 변환 코드가 사라져요. 설정 2줄과 주의점 3가지를 정리했어요.2026년 9월 25일·4분 읽기
백엔드감정 기록 API에서 '아직 안 씀'과 '기록 없음'을 나눈 이유플랜티 감정 기록 API가 null 하나로 뭉개던 두 상태를 날짜 경계·상태 enum·인증 오류로 나눠 돌려주게 된 설계 이유를 정리했어요.2026년 9월 24일·5분 읽기
백엔드LLM 출력은 shell 문자열 아닌 argv로: execFile 배열과 allowlist에이전트가 만든 값을 exec 문자열에 붙이면 명령 인젠션이 열려요. execFile 배열, verb allowlist, 인자 정규식으로 막는 백엔드 래퍼를 정리했어요.2026년 9월 23일·4분 읽기
백엔드git status 미추적 14개: 자동 발행이 커밋을 빼먹은 걸 찾은 방법매일 글을 쓰는 자동 발행 파이프라인이 파일만 만들고 커밋은 안 한 채 성공으로 보고했어요. git status로 잡은 원인과 마지막 단계를 검증하는 방법을 정리했어요.2026년 9월 22일·5분 읽기
백엔드큰 테이블에 인덱스 추가하다 쓰기를 막은 뒤 배운 3원칙운영 중인 Postgres 테이블에 인덱스를 그냥 추가하면 쓰기가 멈춥니다. CONCURRENTLY, NOT VALID, 배치 backfill 세 가지 원칙을 실습으로 정리했어요.2026년 9월 21일·7분 읽기
백엔드이벤트 필드 하나 바꿨더니 소비자가 조용히 죽었어요발행 로그는 전부 성공인데 소비자가 멈춰 있던 이유와, payload 스키마를 바꾸기 전에 확인해야 할 인벤토리 절차를 정리했어요.2026년 9월 20일·7분 읽기
백엔드분류기에 unknown 레인 없으면 오분류가 조용히 통과한다API 요청 타입 분류에서 매칭 실패를 else로 흘려보내면 장애가 로그 없이 사라져요. unknown 레인을 명시적으로 두는 백엔드 설계를 정리했어요.2026년 9월 19일·6분 읽기
백엔드감정 태그를 5개로 줄이니 기록 완료율이 달라졌어요선택지가 많을수록 기록이 끊깁니다. 감정 태그를 5개로 고정하면서 바뀐 스키마 설계와 API 응답 구조를 정리했어요.2026년 9월 18일·6분 읽기
백엔드1인 회사 콕핏 데이터를 오늘 화면으로 모으는 백엔드 설계여러 서비스의 데이터를 하나의 오늘 화면에 안전하게 모으기 위한 API, DB, 인증 설계를 정리합니다.2026년 9월 16일·5분 읽기
백엔드MCP 서버 env는 스킬 런타임에 안 간다: 3일 조용히 실패한 자동화MCP 설정에 넣은 환경변수가 스킬 프로세스엔 전달되지 않아 3일간 조용히 실패한 사례와, 부팅 검사·로그·실표면 확인으로 막는 방법을 정리해요.2026년 9월 11일·6분 읽기
백엔드pnpm minimumReleaseAge, 글로벌 설정이 안 먹힌 이유와 워크스페이스 이동pnpm minimumReleaseAge를 글로벌 config에 넣었다가 효과가 없어 pnpm-workspace.yaml로 옮긴 과정과, 백엔드 빌드에서 그게 맞는 자리인 이유를 정리했어요.2026년 9월 10일·5분 읽기
백엔드AI가 만든 각주는 인용이 아니다 — 추출과 검증을 분리한 백엔드 파이프라인LLM이 뽑은 출처를 그대로 저장하면 없는 논문이 DB에 남습니다. 추출 API와 검증 API를 분리하고 unknown 레인을 두는 백엔드 설계를 정리했어요.2026년 9월 9일·7분 읽기
백엔드한 화면 = 한 API로 바꾸니 모바일 로딩이 정리됐다화면 하나에 API를 여러 번 부르던 구조를 집계 엔드포인트 하나로 합친 과정과, 어디까지 합치고 어디서 멈춰야 하는지 판단 기준을 정리했어요.2026년 9월 8일·7분 읽기
백엔드1인 개발자의 NestJS vs FastAPI 선택 기준, 분기선 3개NestJS와 FastAPI를 같이 굴리는 1인 개발자가 핵심 의존성·타입 계약·동시성 모델 세 질문으로 정한 프레임워크 분기선을 정리했어요.2026년 9월 7일·6분 읽기
백엔드Supabase RLS 두고 서버에서 권한을 한 번 더 검증하는 이유RLS는 마지막 방어선으로 남기고, 분기가 많은 인가 로직은 단위테스트 가능한 서버 코드로 옮기는 백엔드 설계 정리.2026년 9월 6일·6분 읽기
백엔드pnpm minimumReleaseAge 7일 설정, 글로벌 config는 조용히 무시돼요pnpm minimumReleaseAge로 새 패키지 7일 지연을 걸었는데 글로벌 config에서는 조용히 무시됐어요. pnpm-workspace.yaml에 옮기고 검증한 과정을 정리했어요.2026년 9월 5일·5분 읽기
백엔드Railway 재배포 때 뜨는 500 에러, SIGTERM 핸들링으로 없애기Railway 재배포 순간에만 발생하는 500 에러의 원인과 SIGTERM 핸들링, graceful shutdown 구현을 Node.js 예제로 정리했어요.2026년 9월 4일·4분 읽기
백엔드결제 webhook 중복 처리, HMAC 서명검증과 idempotency 키로 막기결제 webhook은 재시도 때문에 같은 이벤트가 두 번 올 수 있어요. HMAC 서명검증과 DB UNIQUE 제약 기반 idempotency 키로 중복 처리를 막는 구현을 정리했어요.2026년 9월 3일·5분 읽기
백엔드재배포마다 사라지는 FastAPI BackgroundTasks, 큐 없이 살리는 법Railway 재배포 때마다 FastAPI BackgroundTasks가 증발하는 이유와, Celery 없이 Postgres 테이블 하나로 잡을 지키는 설계를 정리했어요.2026년 9월 2일·5분 읽기
백엔드cron이 조용히 멈출 때: launchd 데드맨 스위치로 감지하기잡이 돌다 실패하면 로그가 남지만 아예 안 돌면 로그조차 없어요. launchd 데드맨 스위치로 조용히 멈춘 cron 자동화를 감지하는 방법을 정리했어요.2026년 8월 23일·6분 읽기
백엔드무중단 Postgres 마이그레이션 잠금 피하는 법Postgres에서 CREATE INDEX CONCURRENTLY와 NOT VALID를 써서 쓰기 잠금 없이 마이그레이션하는 흐름을 정리했어요.2026년 8월 22일·5분 읽기
백엔드Expo 55에서 57로 한 번에 올리다 라우터와 인증이 같이 깨진 날Expo 57 업그레이드로 expo-router import가 깨지면 딥링크 인증 콜백까지 막혀요. 백엔드 관점의 원인과 점검 순서를 정리했어요.2026년 8월 21일·5분 읽기
백엔드크론 두 번 실행 방지, Postgres advisory lock으로 잠그기서버 2대에서 크론이 겹쳐 돌아 알림이 중복 발송될 때, Postgres advisory lock으로 실행을 하나로 잠그는 방법을 정리했어요.2026년 8월 16일·5분 읽기
백엔드Upstash Redis 무료 플랜 DB 1개, prefix로 나눠 쓰는 법Upstash Redis 무료 플랜은 DB가 1개예요. 여러 서비스가 키 prefix 규칙 하나로 한 Redis를 안전하게 나눠 쓰는 방법을 정리했어요.2026년 8월 15일·4분 읽기
백엔드Supabase 무료 플랜 7일 일시정지, Workers Cron으로 막기Supabase Free 프로젝트가 7일 비활동으로 잠드는 문제를 Cloudflare Workers Cron Trigger keepalive로 해결하는 방법을 정리했어요.2026년 8월 14일·4분 읽기
백엔드크레딧이 두 번 차감되는 버그, SELECT FOR UPDATE로 잡는 법동시 요청에 크레딧이 두 번 빠지는 race condition의 원인과 SELECT FOR UPDATE 락, 단일 트랜잭션으로 잡는 과정을 정리했어요.2026년 8월 13일·4분 읽기
백엔드다크모드 브랜드 색, 순수 반전 대신 서버 토큰으로 지키기다크모드에서 순수 반전을 걸면 브랜드 색상이 틀어져요. 시맨틱 토큰 2벌 저장과 서버측 초기 테마 주입으로 브랜드를 지키는 백엔드 관점을 정리했어요.2026년 8월 12일·4분 읽기
백엔드빈 일기장 첫 화면, 백엔드에서 초대장으로 바꾸기마음기록 앱의 텅 빈 첫 화면을 프론트가 아니라 백엔드에서 세 가지 상태로 나누고 초대장으로 바꾸는 과정을 정리했어요.2026년 8월 11일·4분 읽기
백엔드'사기 정리앱' 소리 듣는 앱, 백엔드로 정직함 증명하기계산기·정리 도구처럼 흔한 유틸리티 앱이 오해받는 이유와, 인증·API·데이터 구조로 정직함을 증명하는 백엔드 설계 이야기예요.2026년 8월 10일·5분 읽기
백엔드1인 개발도 '우리'라고 써도 될까 — 백엔드 actor로 정직하게혼자 만드는데 공지에 '저희가'라고 쓰기 애매할 때, 인원수 대신 시스템 주체를 로그·DB·발신자 필드에 정직하게 담는 백엔드 설계 이야기예요.2026년 8월 9일·5분 읽기
백엔드되돌릴 수 없는 삭제, 백엔드 안전장치는 어디까지?되돌릴 수 없는 하드 삭제 앞에서 소프트 삭제·유예 기간·감사 로그를 어디까지 넣을지 백엔드 관점으로 정리했어요.2026년 8월 8일·5분 읽기
백엔드캐시 만료 순간 DB로 몰리는 요청, single-flight로 막기캐시가 만료되는 찰나 수많은 요청이 한꺼번에 DB로 쏟아지는 Cache Stampede를, single-flight로 한 번만 계산하게 막는 백엔드 패턴을 정리했어요.2026년 8월 5일·5분 읽기
백엔드timestamptz vs timestamp, KST로 하루 밀린 날짜 버그 잡기포스트그레의 timestamp와 timestamptz 차이 때문에 KST 새벽 데이터가 하루 밀리던 집계 버그를 UTC 저장·표시 변환으로 잡은 방법이에요.2026년 8월 4일·5분 읽기
백엔드FastAPI를 Railway에 올렸더니 Supabase 커넥션이 고갈된 이유FastAPI를 Railway에 배포한 뒤 Supabase 커넥션이 금방 바닥나는 이유와 Supavisor 트랜잭션 풀링으로 해결한 과정을 정리했어요.2026년 8월 3일·5분 읽기
백엔드AI 요약 API 비용 폭탄 막기: max_tokens 하드캡과 Redis 레이트리밋클라이언트 제한만 믿으면 AI 요약 엔드포인트는 언제든 비용 폭탄이 돼요. 서버에서 max_tokens를 하드캡으로 고정하고 Redis로 호출 횟수를 막는 방법을 백엔드 관점으로 정리했어요.2026년 8월 2일·5분 읽기
백엔드FastAPI 응답을 camelCase로: Pydantic alias_generator 실전백엔드는 snake_case, 프론트는 camelCase. FastAPI에서 Pydantic alias_generator로 응답 키를 자동 변환해 프론트 계약을 맞춘 과정을 정리했어요.2026년 8월 1일·5분 읽기
백엔드감정 데이터 필드 암호화, pgsodium 대신 앱 레이어 AES-GCM을 택한 이유감정·건강 데이터 필드레벨 암호화를 DB 확장 대신 앱 레이어 AES-GCM으로 구현한 이유와 IV·키 관리 규칙, 트레이드오프를 정리했어요.2026년 7월 30일·5분 읽기
백엔드offset 페이지네이션이 느려지는 이유와 커서 전환기목록 API에서 offset 페이지네이션이 깊은 페이지일수록 느려지는 이유와, 커서(keyset) 방식으로 바꾸며 얻은 것과 포기한 것을 정리했어요.2026년 7월 29일·5분 읽기
백엔드크론 중복 실행, Postgres SKIP LOCKED와 advisory lock으로 막기인스턴스를 늘렸더니 크론이 두 번 도는 문제를, 새 라이브러리 없이 Postgres 잠금 두 가지로 막은 방법을 정리했어요.2026년 7월 28일·5분 읽기
백엔드결제 webhook 소비자 하드닝: HMAC·replay·멱등 3겹 방어결제 webhook을 안전하게 받으려면 HMAC 서명검증, replay 윈도우, 멱등 처리 세 겹이 필요해요. 백엔드에서 직접 붙이며 정리한 순서와 함정을 담았어요.2026년 7월 27일·5분 읽기
백엔드승인 버튼을 두 번 눌러도 안전한 이유: CAS와 멱등키승인 버튼을 두 번 눌러도 중복 처리되지 않게 막는 백엔드 패턴 — 멱등키(nonce)로 같은 요청을, CAS로 같은 상태 변경을 한 번만 처리하는 방법을 정리했어요.2026년 7월 26일·5분 읽기
백엔드중복 게시 0을 노리는 outbox 패턴외부 API 성공과 DB 기록 사이의 빈칸 때문에 생기는 중복 게시를 outbox 상태머신과 reconcile로 줄이는 실전 구조를 정리했어요.2026년 7월 25일·4분 읽기
백엔드FastAPI로 AI 요약 기능 붙이기: 실전 코드와 배포 체크리스트FastAPI에 AI 요약 엔드포인트를 붙이는 최소 코드와 배포 전 점검 항목 5가지를 1인 개발자 경험으로 정리했어요.2026년 7월 6일·4분 읽기
백엔드환율 API 추천과 연동 방법: 무료 API 비교부터 FastAPI 사용법까지무료 환율 API(한국수출입은행·한국은행 ECOS)를 비교해 어떤 걸 골라야 하는지 답하고, FastAPI로 연동하는 코드와 캐싱·예외 처리·통화 단위 함정까지 정리했어요.2026년 7월 2일·12분 읽기
백엔드n8n dataTable로 외부 DB 없이 자동화 데이터 쌓기자동화에 작은 저장소가 필요할 때마다 DB를 새로 띄우긴 부담스러워요. n8n 내장 dataTable로 학습 데이터를 쌓고 다시 꺼내 쓰는 실전 패턴을 정리했어요.2026년 6월 30일·4분 읽기
백엔드FastAPI와 Supabase로 만드는 로그인 예제FastAPI 백엔드에서 Supabase 인증으로 이메일 로그인을 붙이는 최소 예제를 따라 만들어봐요.2026년 6월 29일·4분 읽기
백엔드정적 블로그에 백엔드 붙이기 — Cloudflare Pages Functions + D1로 조회수·댓글·좋아요 만들기서버 없는 정적 블로그(Next.js export → Cloudflare Pages)에 조회수·좋아요·익명 댓글·방문자 통계를 붙인 방법이에요. 같은 배포에 Pages Functions와 D1만 얹어서, 따로 서버를 띄우지 않고 만들었어요.2026년 6월 27일·7분 읽기
백엔드Supabase RLS 설계 시 실제로 실수한 패턴 3가지Supabase Row Level Security를 처음 설정할 때 빠지기 쉬운 함정들이에요. CREATE TABLE이 anon 권한을 자동 부여한다는 게 가장 위험했어요.2026년 6월 25일·3분 읽기
백엔드유료 크레딧 차감을 안전하게 — SELECT FOR UPDATE와 단일 트랜잭션동시에 들어온 요청이 같은 잔액을 읽으면 크레딧이 이중으로 차감되거나 잔액이 음수가 될 수 있어요. 행 잠금과 단일 트랜잭션으로 막는 패턴, 그리고 결제 웹훅의 멱등 처리까지 정리했어요.2026년 6월 24일·4분 읽기
백엔드추상 아키텍처를 매니지드 서비스로 — 1인 개발자의 백엔드 빌딩블록교과서의 백엔드 아키텍처 개념을, 1인 개발자가 실제로 쓰는 매니지드 서비스에 1:1로 매핑해 정리했어요. 추상 개념을 매번 다시 고민하지 않으려고요.2026년 6월 21일·4분 읽기