본문 바로가기
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의 위치를 찾아보자.
 

반응형

댓글0