개발은 처음이라 개발새발

ERR_CONNECTION_RESET → 실제 원인 찾기 본문

개발기초

ERR_CONNECTION_RESET → 실제 원인 찾기

leon_choi 2026. 6. 1. 16:42
반응형

증상

브라우저/Swagger에서 API 호출 시 Failed to fetch + net::ERR_CONNECTION_RESET 발생. 다른 API는 정상 동작.


1단계 — 서버 생존 확인

다른 API가 되니까 서버 자체 문제는 아님. 이 엔드포인트 호출 시 서버 내부에서 터지는 것으로 판단.


2단계 — 로그 확인

 
 
bash
journalctl -u data3 -n 100

응답은 왔는데 500 Internal Server Error 확인:

 
 
"GET /data3V1/livescore/volleyballPlayerSeasonStat" 500 Internal Server Error

ERR_CONNECTION_RESET처럼 보였던 이유는 500 에러 시 미들웨어가 응답을 제대로 못 돌려줬기 때문.


3단계 — 정확한 원인 추출

 
 
bash
journalctl -u data3 -n 200 | grep -A 5 "Error\|Exception\|Traceback"

실제 에러:

 
 
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42000',
"저장 프로시저 'SP_TB_LS_GAME_RESULT_VOLLEYBALL_SEASON_PLAYER_INFO_SELECT'을(를) 찾을 수 없습니다. (2812)")

4단계 — 원인 분석

프로시저는 DB에 존재함. 그런데 못 찾는 이유:

  • API 코드에서 프로시저를 SP_... 형태로 DB명 없이 호출
  • FastAPI의 DB 연결 문자열(DATABASE=)이 프로시저가 실제로 있는 DB와 다른 DB를 바라보고 있음
 
 
bash
grep -r "DATABASE\|Initial Catalog" /usr/local/api_server/data3/

로 연결 DB 확인 후 프로시저가 있는 DB명으로 수정하면 해결.


핵심 요약

단계내용
겉 증상 ERR_CONNECTION_RESET
실제 증상 500 Internal Server Error
실제 원인 저장 프로시저를 찾지 못함
근본 원인 DB 연결 컨텍스트 불일치

ERR_CONNECTION_RESET이 항상 네트워크 문제는 아니다. 500 에러로 인해 미들웨어가 응답을 정상적으로 반환하지 못할 때도 동일하게 나타난다.

반응형

'개발기초' 카테고리의 다른 글

[SVN] VS Code에서 SVN 연동하기 - 2  (0) 2025.04.20
[SVN] VS Code에서 SVN 연동하기 - 1  (0) 2025.04.20