본문 바로가기
Stack Overflow/스프링

[스프링] Internal Server Error 예외 오류가 났을 때 원인 찾는 방법

by Lich King 2022. 2. 22.

스프링에서 개발을 하고 테스트를 하다가 Internal Server Error 예외가 발생하는 경우가 있다.
이 오류는 500 Internal Server Error 외부 네트워크 송수신 문제로 생각할 수 있다. 
실제로도 해당 오류를 찾아보면 네트워크 500 에러코드가 많이 나오며 어느 사이트는 다음과 같이 정리하고 있다.

500 내부 서버 오류는 정책을 실행하는 동안 발생한 오류 또는 대상/백엔드 서버의 오류로 인해 발생할 수 있습니다. 
HTTP 상태 코드 500은 일반적인 오류 응답입니다. 
즉, 서버가 예기치 않은 상태에 직면하여 요청을 수행할 수 없음을 의미합니다.


뭔가 내용이 서버에러를 총칭하고 있는 구체적이지 않고 원인을 알 수 없는 response이다. 
결과적으로 말하면 나의 WAS나 웹서비스 부분의 송수신 이슈로 크게 볼 수 있고, 작게 보면 나의 백엔드 단 코딩의 실수이다.

백엔드 단에서 코딩을 하는데 Internal Server Error 에러가 날 수 있다.
DB, API 송수신 등 다양한 방면에서 오류가 나는데 이 경우 해결방법은 다음과 같다고 본다.

1. try, catch 처리 잘못해서 상세 메세지를 볼 수 없는 경우가
2. DB 를 select 해서 데이터가 없는데 예외처리를 잘못해서 자바 런타임 오류

그렇다. 외부와 송수신하는 어느 서버에 전혀 문제가 없다면 내가 코딩을 잘 못한 것이다.
대개 코딩을 잘못하거나 쿼리를 잘 못짜서 데이터가 없는데 데이터를 처리해주려고 하니까 정상적으로 처리가 되지 않고 거기다 예외처리도 잘못해서 정확한 원인을 파악하기 힘들어진 것이다.

try, catch 예외처리 방식 구조를 바꿔보고 데이터가 없는 NULL의 위치를 찾아보자.
 

댓글