NOWIL's Dev Blog
Preview Image

AI 대화 후처리를 요청 트랜잭션에서 분리하기

AI 대화 후처리를 요청 트랜잭션에서 분리하기 AI 요청을 처리한 후에는 추가 분석이나 데이터 갱신처럼 사용자 응답과 바로 관계없는 작업이 이어질 수 있습니다. 이 작업을 모두 같은 요청에서 실행하면 외부 API를 기다리는 시간까지 응답이 늦어집니다. 이번 글에서는 요청 데이터가 저장된 후 Coroutine으로 후처리를 실행하고, 외부 API 호출...

Preview Image

리워드 생성·수령·충전 책임을 분리한 과정

리워드 생성·수령·충전 책임을 분리한 과정 리워드 기능을 하나의 메서드에서 처리하면 처음에는 구현하기 쉽습니다. 하지만 생성, 상태 변경과 실제 반영이 한곳에 모이면 수정할 때마다 여러 책임을 함께 확인해야 합니다. 이번 글에서는 리워드의 생성·수령·충전 책임을 나누고, 각 단계의 결과를 다음 유스케이스로 전달하는 구조를 정리해보겠습니다. ...

Preview Image

[MCP] Blog Generator MCP 개발기 — AI로 기술 블로그를 자동 생성하는 MCP 서버 만들기

[MCP] Blog Generator MCP 개발 심층 분석: AI로 기술 블로그 자동 생성 서버 구축기 안녕하세요. 백엔드 개발자 정지원입니다. 현재 AI를 활용한 개발 자동화 도구 개발에 몰두하고 있습니다. 이 글은 Blog Generator MCP의 설계부터 6번의 메이저 버전 업그레이드까지의 여정을 심층적으로 다룹니다. 재미있는 점은, 이 글...

Preview Image

중복 리워드 처리를 막기 위해 상태 조건 UPDATE를 선택한 이유

중복 리워드 처리를 막기 위해 상태 조건 UPDATE를 선택한 이유 상태를 확인한 후 엔티티를 저장하는 코드는 한 요청만 들어올 때에는 문제없이 동작합니다. 하지만 같은 자원을 여러 요청이 동시에 변경하면 두 요청이 모두 이전 상태를 읽을 수 있습니다. 이번 글에서는 이 문제를 재현하고, Spring Data JPA의 상태 조건 UPDATE로 중복...

Preview Image

TIL #1 [JAVA] Static 키워드에 대해

계기 스프링 프로젝트를 진행하면서 임시 데이터베이스 구현할때, MySQL과 같은 데이터베이스 서버를 사용하지 않고, 임시로 인메모리에 데이터를 저장하는 방식을 구현하였다. 이때, Database 클래스의 맴버 변수로 엔티티 리스트를 저장할 때 static 키워드를 사용하는 예제를 보고 static 키워드의 의미와 언제 사용해야 하는지 정리하였다. ...