본문/내용
1. 본인이 참여한 프로젝트 중 가장 난이도가 높았던 사례를 기술하고, 발생한 병목 현상이나 오류를 해결하기 위해 구체적으로 어떤 논리적 과정을 거쳤는지 서술해 주세요.
가장 난이도가 높았던 프로젝트는 여러 사용자가 동시에 접속하는 예약형 서비스의 백엔드 고도화 프로젝트였습니다. 겉으로 보기에는 단순한 기능 개선이었지만, 실제로는 특정 시간대에 트래픽이 급증하면 응답 속도가 급격히 느려지고 일부 요청이 중복 처리되는 문제가 있었습니다. 처음에는 서버 사양을 높이면 해결될 것이라 보는 의견도 있었지만, 저는 문제의 본질이 인프라 부족이 아니라 처리 구조의 비효율에 있다고 판단했습니다.
저는 우선 장애를 감으로 해석하지 않기 위해 로그를 시간대별로 분리해 분석했습니다. 그 과정에서 첫 번째 병목은 동일한 데이터를 반복 조회하는 쿼리였고, 두 번째 병목은 요청이 몰리는 순간 트랜잭션 경계가 길어지며 락 경합이 발생하는 구조라는 점을 확인했습니다. 세 번째로는 예외가 발생해도 상위 로직에서 재시도를 과도하게 수행하면서 같은 요청이 중복 실행되는 문제도 발견했습니다. 즉, 하나의 장애처럼 보였지만 실제로는 조회 …