#backend
관련 글 16건
- velog수집됨 · 12일 전
[기획] 3개월만에 iOS & Android 기획부터 런칭까지
안녕하세요. 개발 동아리 프로그라피에서 5인 팀으로 활동하고 있는 '하이파이브’ 팀입니다! > 이 앱은 팀원 한 명의 위장에서 시작됐습니다. 저희 백엔드 팀원이 역류성 식도염이 있는데, 회식 자리나 회의때마다 메뉴판을 보며 음식 하나하나를 GPT한테 매번 검사맡거나
backendspringspringboot♡ 7 - 우아한형제들수집됨 · 12일 전
한꺼번에 짊어지던 배치를 내려놓고, 하나씩 흘려보내는 워크플로로
Temporal 도입은 부담스러웠고, 그렇다고 배치를 그대로 둘 순 없었습니다 – 입맛대로 골라 Claude로 뚝딱 만든 워크플로 엔진 개발기 ℹ️ 이 글에 등장하는 수치와 설정값(대기 시간, 타임아웃, 재시도 횟수 등)은 이해를 돕기 위한 예시이며, 실제 운영 설정과는 다릅니다. 들어가는 말 배달의민족 사장님이 사용하는 포스(POS)의 백엔드를 만들다 보
backend
- 우아한형제들수집됨 · 13일 전
문서로만 지키던 아키텍처 규칙, 테스트 코드로 강제하기
들어가며 제가 속한 파트너셀프서비스팀은 코딩 컨벤션을 사내 위키 문서와 AI 에이전트가 참조할 수 있는 규칙 문서에 정의해놓고 개발하고 있습니다. 하지만 그 규칙을 잘 지키고 있는지 확인하는 방법이 코드 리뷰뿐이었다는 점이 문제였습니다. 문서에 있는 규칙은 팀원들이 의식적으로 인지해서 코드를 작성하거나 리뷰를 받는 과정에서 반영해야 했습니다. AI 에이전트
-backendarchunit - velog수집됨 · 8월 18일
CQRS란? 읽기와 쓰기를 분리하는 이유
백엔드 개발을 하다 보면 데이터를 조회하는 작업과 변경하는 작업을 하나의 서비스와 모델에서 처리하는 경우가 많아요.그런데 시스템이 복잡해질수록 조회와 변경은 서로 다른 요구사항을 가지게 돼요.이때 등장하는 대표적인 설계 방식이 CQRS예요.CQRS는 Command Qu
backendcqrsdesignpattern♡ 5
강경원· 8월 9일 · 2분 읽기크론 작업 설계 — 멱등성이 전부다
크론 작업은 "한 시간에 한 번 실행된다"고 믿고 짜기 쉽다. 현실은 다르다. 겹쳐 돌고, 건너뛰고, 중간에 죽는다. 이 셋을 전제하고 설계하면 크론은 평화롭다. 전제 1 — 두 번 실행된다 재시도, 배포 중 중복 스케줄, 수동 실행… 같은 작업이 두 번 돌 경로는 얼마든지 있다. 대응
cron배치backend`크론 작업 설계 — 멱등성이 전부다- 우아한형제들수집됨 · 8월 6일
기술블로그 세 번째 책 《요즘 우아한 백엔드 개발》 출간
우아한형제들의 기술블로그 글을 엮은 책, 《요즘 우아한 백엔드 개발》을 소개합니다. 《요즘 우아한 개발》(2023)과 《요즘 우아한 AI 개발》(2025)에 이어 백엔드 분야 이야기를 담은 세 번째 책을 출간했습니다. 🎉 우아한형제들이 실제 서비스에서 마주한 아키텍처 고민과 대규모 트래픽 대응 노하우, 데이터 실무 경험은 물론, GPT와 MCP를 서비스에
aibackenddata
강경원· 8월 5일 · 2분 읽기RSS 수집기를 만들며 겪은 현실적인 문제들
UA 차단, 소스마다 다른 스키마, 재수집 멱등성, 엔티티 디코딩 — RSS 수집기의 본체는 fetch가 아니라 정규화다.
backendrss`RSS 수집기를 만들며 겪은 현실적인 문제들
강경원· 8월 5일 · 2분 읽기결제 웹훅은 반드시 두 번 온다 — 멱등성 설계
웹훅은 최소 1회 전달 = 중복 각오. 이벤트 ID 유니크 제약 + 같은 트랜잭션, 상태 기계 조건부 UPDATE, 그리고 중복엔 200 응답.
backendpayment`결제 웹훅은 반드시 두 번 온다 — 멱등성 설계
강경원· 8월 4일 · 2분 읽기실시간 게임 서버에서 배운 것 — 클라이언트를 믿지 마라
클라이언트가 보낸 이벤트를 그대로 믿으면 devtools가 치트키가 된다. 서버 권위 모델과 순수 함수 상태머신으로 정리한 실시간 게임 설계.
backendwebsocket`실시간 게임 서버에서 배운 것 — 클라이언트를 믿지 마라
강경원· 8월 3일 · 2분 읽기소셜 로그인 버튼 뒤에서 일어나는 일 — Authorization Code Grant
code는 왜 브라우저를 거치고 토큰은 왜 서버끼리만 주고받는가. 콜백 URL, state, secret rotate까지 — OAuth 흐름을 장애 대응 가능한 수준으로.
backendoauth`소셜 로그인 버튼 뒤에서 일어나는 일 — Authorization Code Grant
강경원· 8월 2일 · 2분 읽기캐시 무효화, TTL만 믿으면 안 되는 이유
틀리면 안 되는 데이터는 TTL로 못 지킨다. afterCommit 삭제가 주 방어, TTL은 보험 — 캐시 무효화의 레이스 컨디션 정리.
backendredis`캐시 무효화, TTL만 믿으면 안 되는 이유
강경원· 8월 2일 · 1분 읽기Redis 캐싱 전략 — Cache-Aside만 알아도 충분한 이유
캐싱 전략 글을 보면 Write Through, Write Behind, Read Through 같은 패턴이 쏟아진다. 결론부터 말하면 웹 서비스의 95%는 Cache Aside 하나로 충분하다. Cache Aside 기본형 읽을 때 캐시를 먼저 보고, 없으면 DB에서 읽어 채운다. 쓸
캐싱backendredis`Redis 캐싱 전략 — Cache-Aside만 알아도 충분한 이유- 우아한형제들수집됨 · 7월 28일
BFF 서버에 SSE를 도입한 이유: 전시 서버의 통신 구조 재설계
들어가며 배달의민족에서 음식을 주문할 때 카테고리를 누르면 만나는 화면, 바로 가게목록입니다. 사용자가 가게를 탐색하는 첫 관문이자, 가장 트래픽이 많은 지면 중 하나입니다. 이 글은 그 가게목록 지면의 통신 구조를 재설계한 이야기입니다. 클라이언트가 여러 서버에 각각 요청을 보내던 구조를 하나의 API로 통합하고(1지면 1API), 통합이 만들어낼 병목을
backendfrontend
강경원· 7월 26일 · 2분 읽기정산 시스템에서 1원이 사라지는 문제 — Largest Remainder Method
비율 배분 후 반올림하면 합계가 안 맞는다. 내림 + 잔여를 나머지 큰 순으로 나눠주는 Largest Remainder Method와 불변식 테스트.
backendjava`정산 시스템에서 1원이 사라지는 문제 — Largest Remainder Method
강경원· 7월 22일 · 2분 읽기재고 차감 동시성, UPDATE 한 줄로 끝내기
조회-검사-차감은 동시성에서 깨진다. 조건부 UPDATE 한 줄이면 행 락으로 원자성이 보장된다 — 비관/낙관 락과의 비교까지.
backenddatabase`재고 차감 동시성, UPDATE 한 줄로 끝내기
강경원· 7월 17일 · 1분 읽기복합 인덱스, 순서가 전부다
복합 인덱스는 (성, 이름) 전화번호부다. 등호는 앞, 범위는 뒤, 정렬은 마지막 — 순서 규칙과 EXPLAIN 확인법.
backenddatabase`복합 인덱스, 순서가 전부다