개발기록
Locust로 부하 지점 찾기
Spring 2026. 9. 28. 00:51

배경전자계약 서비스에선 PDF의 각 페이지를 브라우저에서 보여줍니다. 기존에는 브라우저에서 한 페이지의 처리가 완료된 후 다음 페이지를 요청하는 순차 방식으로 동작했습니다. 이 때문에 페이지 수가 많은 문서일수록 전체 문서를 불러오는 데 오랜 시간이 걸렸습니다. 문제를 개선하기 위해 팀원이 여러 페이지를 동시에 요청할 수 있도록 기존 로직을 변경했고, 그 결과 단일 문서의 전체 로딩 시간은 크게 줄어들었습니다. 하지만 작업량은 그대로인데 처리 시간만 크게 줄었다면,"짧은 시간 동안 더 많은 작업이 동시에 실행되면서 서버 자원 사용량이 증가하지 않을까?"라는 생각이 들었습니다. 단일 사용자의 응답 속도는 개선되더라도 여러 사용자의 요청이 동시에 발생하면 CPU 사용량이 급격하게 증가하거나,페이지별 응답이 ..

Transactional Outbox이란? 언제 어떻게 사용할까?
Spring 2026. 8. 28. 17:49

배경https://ho0214.tistory.com/40이전에 알림 실패를 재처리하기 위해 Outbox 패턴을 적용한 경험을 포스팅한 적이 있습니다. 당시 여러 자료들을 찾아보고 작성했는데,이후 관련 내용을 더 찾아보던 중 MSA에서 자주 사용되는 패턴을 정리한 https://microservices.io/index.html와Transactional Outbox패턴에 대한 게시글을 확인할 수 있었습니다. 해당 글을 읽어보니 고민하던 부분들이 상당 부분 포함되어 있어이를 바탕으로 다시 한번 정리해보려 합니다. Transactional Outbox가 필요한 상황서비스는 데이터베이스의 비즈니스 데이터를 생성하거나 변경한 뒤,그 결과를 메시지나 이벤트로 전달해야 할 때가 있습니다. 예를 들어 주문 서비스는 ..

메일발송 처리 실패를 위한 Outbox 패턴 적용기
Spring 2026. 8. 27. 00:37

TL;DR먼저 Transactional Outbox 패턴은1.비즈니스 데이터2.수행해야할 작업에 대한 정보(ex 메일 발송, 알림처리 등)를 하나의 DB트랜잭션에서 저장하고, 저장된 작업을 별도의 처리과정에서 비동기로 처리하는 패턴입니다. 이번 프로젝트에서는 계약 처리와 메일 발송을 분리하면서도발송해야 할 작업이 유실되지 않도록 Transactional Outbox 패턴을 적용했습니다. Outbox에 저장된 발송 요청은 시스템의 배포 환경과 처리량을 고려하여Scheduler기반 Polling 방식으로 조회하고 재처리하도록 구성하였습니다. 배경기존 전자계약 시스템은 사용자가 계약서를 생성하고 서명을 요청하고,최종적으로 계약을 완료하는 기능을 중심으로 제공하고 있었습니다. 이후 문서관리 시스템과 전자계약 시..

만다라트를 작성했는데도 목표를 이루지 못하는 이유
카테고리 없음 2026. 8. 7. 17:30

"오타니 쇼헤이도 작성했다는 만다라트."한 번쯤은 들어보셨을 겁니다. 저 역시 목표를 체계적으로 관리하고 싶어서 만다라트를 작성하기 시작했습니다. 실제로 사용해 보니 생각보다 많은 장점이 있었지만, 시간이 지나면서 몇 가지 문제를 발견하게 되었습니다. 오늘은 직접 사용해보며 느낀 만다라트의 장점과 아쉬운 점, 그리고 제가 찾은 해결 방법을 이야기해보려고 합니다. 오타니 쇼헤이와 만다라트만다라트가 유명해진 이유 중 하나는 메이저리그 선수 오타니 쇼헤이의 목표관리법 때문입니다. 고등학생 시절 오타니는 '8구단 드래프트 1순위 지명'이라는 목표를 가운데 적고, 그 목표를 이루기 위해 필요한 요소들을 8개의 영역으로 나누어 정리했습니다. 단순히 "열심히 하자"가 아니라,구속 향상체력 관리멘탈변화구인간성운처럼 목..