반응형
에러내용
STS로 스프링 프로젝트를 실행중에 아래와 같은 에러가 나왔다.
해결방법을 찾다가 같은 삽질을 하지 않기위해 글을 작성한다.
문제파악
특정 API를 호출할 때, 위와 같은 에러가 나오면서 STS 가 꺼지는 문제가 발생하였다.
처음에는 메모리 문제인줄 알고 백엔드코드를 살펴보았지만 특이한 코드는 발견하지못하였다.
그러던와중 특이점을 발견했는데, 포스트맨으로 실행시 위와 같은 문제가 발생하지 않는 것을 발견하지않고, 프론트에서 실행하면 위 문제가 발생하였다.
문제확인후, 두 방법의 차이점을 분석해보였다.
POSTMAN 은 Body 에 데이터를 싣어보낼때 보기좋은 JSON 형태로 변경하여 보낸다.
[
[
{
"key1" : "value1",
"key2" : "value2",
"key3" : "value3",
"key4" : "value4",
"key5" : "value5",
...
}
],
...
[
{
...
}
]
]
프론트에서 실행할때는 이를 JSON.stringify 에 감싸서 보내기때문에 아래와 같이 보낸다.
[[{"key1" : "value1","key2" : "value2","key3" : "value3","key4" : "value4","key5" : "value5",...}],...[{...}]]
결론
- 데이터양이 많아질 경우, 대부분의 초보 백엔드 개발자들은 이를 확인하기위해 또는 로그로 남기기위해 로그를 찍거나 pirntln을 사용할 것이다.
- 나의 경우에는 println을 사용하였는데, 이때 POSTMAN의 경우에는 개행문자가 포함되어있어 STS의 콘솔창이 개행을 시켜 정상 작동을 하였지만, 프론트엔드에서 호출 할 경우, 개행문자가 포함되어있지않아 한번에 출력하다보니 위 사진과 같은 에러가 나왔다.
- println을 주석처리하고, 실행하였더니 해당문제가 발생하지 않았다.
- 물론, 저 에러가 나와 같은 케이스가 아닐 수도 있지만 누군가 똑같은 고생을 하지 않기를 바라며 이 글을 작성한다.
본 포스팅은 정답노트라기 보다는
경험과 생각을 정리한 낙서장입니다.
반응형
댓글