Clojure 연습문제 풀이 사이트 4ever-Clojure의 29번 문제를 풀던 중이었다.
해당 문제는 문자열을 받아서 영어 대문자를 제외한 문자를 제거한 문자열을 구하는 함수를 작성하는 것이었는데, 푸는 도중 로컬 머신에선 올바른 답을 구하지만, 사이트에선 제대로 동작하지 않는 문제가 생겼다.
4clojure Problem #29 Get the Caps
사이트에선 실패하나...
로컬에선 성공한다 :(
궁금해서 사이트의 깃헙 레포 이슈를 살펴보았고, 같은 방식으로 문제를 풀고 틀린 사람이 남긴 이슈에 제작자가 직접 설명을 남겼다.
요약하자면, huylv 유저와 나의 로컬 머신에선 Clojure가 JVM 상에서 돌아가기 떄문에, int 함수가 정상적으로 평가되나 사이트의 Clojure는 JS로 돌아가기 때문에 int가 제대로 평가되지 않아서 발생하는 문제라고 한다. ..맞나?
아마도 JS로 돌아간다는 의미는 ClojureScript로 사이트를 구현하면서 클로저 코드를 JS 코드로 변화하는 과정을 거치고, 도중에 JVM과 같은 결과를 보장하지 못하게 되는 것으로 추측된다. 나중에 ClojureScript도 맛보는 과정에서 좀 더 알아 볼 예정 :)