토스 결제 API 테스트 코드를 작성 중이었다. 결제 승인 후 callback이 제대로 오는지는 로컬 환경에서 확인할 수가 없어서 후딱 ec2로 배포해서 확인해보려는 상황이었다.
근데 배포가 안 된다. 서버 세팅 다 제대로 해두고 권한도 다 있고 톰캣 버전, 자바 버전 다 이상이 없는데 webapps에 있는 war파일이 절대 풀리질 않는다. 권한도 만져보고 war파일을 직접 풀어서 폴더로도 올려보고, war파일을 intellij로 만들었는데 아직 내가 익숙하지가 않아서 war파일이 뭐가 이상한가? gradle로 build한 건데 뭘 해줘야되나? 별 거 별 거 다 찾아봤다. 도저히 안 돼서 STS도 깔고 Spring, Maven으로 hello World 띄우는 war파일 만들어서 배포해봤는데 이것조차 안 된다. 뭐지... 그러다 문득 가장 먼저 봐야할 log 확인을 하나도 안 해봤구나 하는 생각이 들어서 로그를 확인했다.
java.util.zip.ZipException:](java.util.zip.ZipException
에러 로그는 굉장히 길었지만 핵심은 이거였다. 왤까.. 구글링해보니 라이브러리 파일이 손상되었을 때 이런 에러가 난다고 한다. 원본 라이브러리 파일과 war파일에 든 라이브러리 파일이 동일한지 확인해보라고 한다. 확인해봤더니 이상이 없다. 이렇게 하루를 날리고...
다음 날 알게 된 문제점은 굉장히 허무했다.
오피스 키퍼... 오피스 키퍼가 내가 파일질라를 이용해서 war 파일을 ec2 서버로 올리는 걸 방해했기 때문이었다.. 이런 문제도 있을 수가 있구나. 하루를 날리고 얻은 값진 교훈. 오피스 키퍼를 조심하자.
오피스 키퍼가 안 돌고 있는 PC에서 war 파일을 업로드해보니 webapps에 war파일이 아주 잘 풀린다. callback도 잘 왔다. 해피.. 나는 다시는 이런 문제를 겪을 일이 없을 것 같지만 하루동안 참 답답했던 마음에 공유한다. 어디 언젠가 누군가는 나처럼 답답할 일이 있겠지.