자바스크립트 줄바꿈 버그 해결과 원인 발견
form에서 String 타입의 변수에 입력할 때 엔터키를 눌러서 줄바꿈을 했다면 DB에 들어갈 때 캐리지 리턴이 포함되어 들어갑니다. 그런데 그 데이터를 화면에 뿌릴 때 자바스크립트에서 그걸 그대로 화면에서 줄바꿈을 해버려서 배열이 이상하게 되서 화면에 그리드가 나와야 하는데 undefined 라는 글자가 찍히고 "화면에 에러가 있습니다."라고 친절하게 알려줍니다.
해결하는 방법은 간단합니다. 자바 코드에서 해당 데이터를 가져오는 게터에서 다음과 같은 코드를 추가합니다.
캐리지 리턴을 모두 찾아서 한 칸짜리 공백으로 바꿔줍니다.
replaceAll("\r\n", " ");
진짜 어려운건 대체 저 버그가 발생했을 때 저런 이유로 인해 그런 결과가 나왔다는 것을 어떻게 금방 알아내느냐 인데.. 전 그걸 못해서 거의 일주일간 이 버그를 방치해두고 있었습니다. 그런데 제 사수님께서 거의 5분만에 원인을 알아내고 해결책까지 제시하는 걸 보고(한 두 번도 아니지만..) 정말 놀랐습니다. 그래서 어떻게 찾아내는 건지 물어봤더니 에러난 화면의 HTML 소스보기로 보니까 보인다고 해서 봤더니 정말 해당 데이터가 HTML 코드에서 갑자기 줄바꿈을 해버려서 눈에 튀더군요;;;
음.. 버그를 만났을 때 대처하는 방법과 자세에서 배울 것들이 정말 많습니다. 물론 그 밖에도 배울 것들이 많지요. 장인을 보고 있는 기분이랄까요... 장인어른 말구요.