연우, 장을 열다.

오늘 만났던 오류는 

Uncaught RangeError: Maximum call stack size exceeded

at RegExp.[Symbol.replace] (<anonymous>)

    at String.replace (native)


이런 에러였습니다. 




너무나 슬픕니다. 왜 이런 오류들이 뜨는지에 관련해서 이유를 찾아보니, 


자바스크립트의 함수의 재귀호출로 인해 스택영역의 사이즈가 오바했단 의미였습니다. 


"그럼 대체 왜 자바스크립트의 호출이 재귀로 여러번 혹은 무한 루프가 돌았을까?"  라고 생각해보고, 마우스 우클릭 - 소스 보기를 눌러서 소스코드를 확인해보았습니다. 


위 경우에는 


<head> a source code </head>

<body></body>


이렇게 태그가 마치고 난 다음 다시 


<head>b source code </head>

<body></body>



이렇게 시작하여 헤드 태그가 중복되어 나열되어 있었습니다. 


따라서 현 사이트에 알맞게 하나의 태그만 존재하게끔 제거 하고 나니, 


무한 재귀 호출따위는 사라졌습니다.


Uncaught RangeError: Maximum call stack size exceeded 의 경우에는 무한으로 함수가 호출이 된다는 의미이므로, 


현재 같은 오류가 발생했다면, 어떤 함수가 국소적으로 자꾸 호출되는지 검사해야하며, 동시에 필자처럼 태그들이 정상적으로 선언되어 있는지 


확인해봐야합니다.