증상 파악·로그 기반 원인 추적·수정·팀 공유·결과 확인 중심으로 푸는 결
학부 캡스톤 프로젝트에서 Node.js 기반 API 서버를 팀과 같이 구축하다 배포 직후 특정 엔드포인트에서만 간헐적으로 500 에러가 발생하는 현상을 겪었습니다. 로컬에서는 재현이 안 됐고 배포 환경에서만 나타나서 원인을 특정하기가 어려웠습니다. 처음에는 코드 문제라고 봤지만 로직을 여러 번 읽어봐도 이상이 없었습니다.
서버 로그를 타임스탬프 기준으로 정렬해서 보니, 특정 시간대에 DB 연결 지연이 겹칠 때 에러가 집중되는 패턴이 보였습니다. 원인은 연결 풀 설정이 기본값 그대로였고, 동시 요청이 몰리면 풀이 고갈되는 구조였습니다. pg 라이브러리의 max 옵션을 환경에 맞게 조정하고 쿼리 타임아웃을 명시적으로 설정했더니 에러가 사라졌습니다. 팀원에게 연결 풀 개념을 설명하면서 같이 수정 범위를 검토했고, 이후 배포에서는 같은 현상이 없었습니다.
로그를 보는 방향을 잡는 것 자체가 트러블슈팅의 절반이라는 걸 그때 배웠습니다.