개발하고 있던 프로그램에서 그리드를 변환하여 엑셀로 다운로드할 때 무한 로딩이 걸리는 문제가 발생했습니다. 특이점은 개발, 검증에서는 문제가 없는데 운영만 문제가 있었습니다.
소스의 문제는 아닐 것으로 판단 되었습니다. 왜냐하면 운영에서만 해당 문제가 발생하였기 때문입니다. 그래서 우선 로그를 살펴봤습니다. 운영서버의 로그가 기록되어 저장되는 catalina.log 파일을 찾아 tail -f 명령어로 열고 상황을 재연해보았습니다. Java 단에서 예외 로그가 발생하였고, 주요 로그는 InvocationTargetException와 그 하위에 NullPointerException이 FontConfiguration 부분에서 발생한 것으로 확인 되었습니다. 개략적으로 해석해 보았을 때, FontConfiguration이 없다는 거였습니다. 검색을 해보니 다음과 같은 에러는 리눅스 운영체제에 폰트가 설치되어있지 않을 때 발생하는 문제였습니다. fc-list 명령어로 설치된 폰트를 확인해보니 개발/검증 서버와 달리 운영서버에만 내역이 전혀 나오지 않았습니다.
운영서버에 폰트를 추가적으로 설치하였고 정상 작동 시킬 수 있었습니다.
로그를 꼼꼼히 보고 대략적으로 해석할 수 있는 능력이 얼마나 중요한가에 대해서 느낄 수 있는 경험이었습니다. 여러 경우의 수를 테스트 해보는 것보다 중요한 것은 우선 주어진 로그를 꼼꼼히 읽어보는 것부터 인 것 같습니다. 그리고 소스코드 외에도 개발환경, 서버환경에 따라 여러 변수가 프로그램의 작동에 영향을 줄 수 있음을 알 수 있었습니다.