Hoonapps

백엔드 글에서 다룰 주제들

백엔드 글은 프레임워크 사용법에서 멈추기 쉽다. 컨트롤러를 만들고, ORM을 붙이고, Docker로 띄우는 글은 필요하지만 그 자체로 깊이를 만들지는 못한다. 실무에서 중요한 질문은 보통 그 다음에 나온다. 트랜잭션은 정확히 어디까지 보장하는가? 장애가 나면 중복 요청은 어떻게 처리되는가? 큐가 밀릴 때 시스템은 어떻게 느려지는가? ...

Transactional Outbox: 이벤트 발행과 DB 트랜잭션 사이의 틈

서비스가 커지면 “DB에 저장하고 이벤트를 발행한다”는 코드가 자주 나온다. 주문을 저장한 뒤 결제 이벤트를 보내고, 사용자 가입을 저장한 뒤 환영 메일 이벤트를 보내는 식이다. 문제는 DB 트랜잭션과 메시지 브로커 발행이 같은 원자성 안에 있지 않다는 점이다. 흔한 코드 await dataSource.transaction(async manager...