Log2 [트러블슈팅] 504 Gateway Timeout : 15초→0.1초 성능 개선기 💡 입사 6개월 차, 당시 사내 유일한 백엔드 개발자였던 제가 실제 커머스 서비스 장애를 겪고, 아키텍처 개편과 쿼리 최적화를 통해 서비스를 개선한 경험을 정리한 회고록에 가까운 글입니다. 공포의 "504 Gateway Timeout"문제는 앱 서비스를 웹 플랫폼으로 전환하여 서비스를 오픈한 지 보름정도 된 시점에 발생했다. 본격적으로 서비스를 운영하기 위해 고객들에게 이벤트성 쿠폰을 보내며 플랫폼 접근성을 높여가던 때, 상품 페이지 접근이 되지 않는다는 문의가 다수 발생하였다. 게다가 원인을 찾을 새도 없이 504 Gateway Timeout이 발생하여 서버가 다운되고 말았다.삽질의 서막: 이거 서버 문제 아냐?당시 경험이 부족한 6개월 차 개발자였던 나는 대표님의 말씀"이거 서버 문제 아니야? 서.. 2025. 11. 5. [트러블슈팅] 트랜잭션이요? 알죠! o.o (... 전혀 모르겠어) 💡 이 글은 트랜잭션을 사용하면서 겪은 지극히 개인적인 일(초보적인 실수)에 대해 정리한 글입니다.이론적인 설명보다는, 실무에서 부딪히고 깨지며 얻은 날것의 깨달음을 중심으로 작성했습니다.문제의 시작: 단순했던 나의 생각대량 등록 API를 개발하던 중, 다음과 같은 요구사항이 생겼다..“작업의 성공 여부와, 실패한 경우 그 원인을 DB 로그로 남겨야 한다.” 나는 아주 단순하게 생각했다.'전체 로직을 try-catch로 감싸고, 예외가 터지면 catch 블록에서 실패 로그 상태를 업데이트하면 되잖아?'@Transactionalfun postBatchProduct(...) { val bulkUploadLog = bulkUploadLogService.createBulkUploadLog(... PEND.. 2025. 8. 17. 이전 1 다음