목록JPA (2)
코딩 해파리

들어가며현재 프로젝트 목표 중에 높은 트래픽 상황을 견디며 처리하는 성능이 좋은 서버를 구축하는 부분이 있었습니다. 하지만, 기존에는 주문 생성 이벤트가 들어올 때마다 매번 DB에 쓰기 작업을 수행하도록 설계되어 있었기 때문에, 주문이 발생하였을 때 상품 재고 감소 처리 로직(재고 차감 로직)에서 심각한 성능 저하가 발생했습니다. 이렇게 많은 이벤트를 단건 단위로 처리하다 보니, 트래픽이 폭주할 때 자원 사용량 증가로 시스템 전반에 병목 현상이 생겼습니다.이 글에서는 이벤트 배치 처리 방식을 도입하여 성능을 최적화한 과정을 공유합니다. 기존 문제점N건의 이벤트에 대해 N번의 DB 쓰기주문 생성 이벤트가 1건 들어올 때마다 상품 서비스에서 재고 차감 로직을 실행 → DB에 직접 쓰기.이벤트가 폭발적으로 증..

Junit4에 익숙하시던 분들이나 예전 강의를 보게 되는 경우 예외 상황 케이스가 잘 작동하는 지 테스트를 할 때 @Test(expected = IllegalStateException.class) 이런 식으로 작성을 하셨던 분이 많으실 겁니다... 그런데 이게 Junit5로 넘어오면서 없어졌습니다... 그 대신에 Assertions.assertThrows를 쓰면 되는데요...! 이게 처음에만 보기에 어렵지 쓰다 보면 그냥 전처럼 쓰실 수 있습니다...! 굳이 fail 같은 걸 쓸 필요도 없어지고, 여러 개를 검증해 볼 수 있어서 이점이 더 많습니다! 사용방법은 @Test public void 중복회원_예외() throws Exception { Member member1 = new Member(); mem..