R.I.P SK Planet
요즘 스위프트로 iOS 앱을 개발하고 있다. 네이티브앱은 아니고 웹뷰로 이미 개발되어 있는 웹페이지를 띄워주는 앱인데, 열심히 개발하고 있자니 난데없이 화면이 하얗게 침묵했다. 불과 몇 초 전까지만 해도 잘 돌아가던 기능이다.
디버깅을 해보니 T맵이 문제였다. 문제의 화면은 T맵의 API를 사용해 교내 지도를 보여주고, 원하는 장소까지 도보 네비게이션을 해주는 서비스를 하고 있었다. 이 T맵의 API가 끊긴 것이다. 원인은 기존에 T맵 API 서비스를 제공하던 SK플래닛 개발자센터가 사라지면서 T맵 서비스를 모 회사인 SK텔레콤에 넘기는 와중, API서버가 일시적으로-어쩌면 영원히- 끊겼기 때문이었다. 한 때 내게 꿈의 회사였던 SK플래닛이 역사의 뒤안길로 사라지는 모습을 보니 여간 씁쓸했다. 위치기반 서비스의 열성적인 팬(?)이었던지라 SK플래닛에서 주최한 컨퍼런스에 다녀오기까지 했던 나였기에 더욱 그러했다.
아무튼 당장 뭔가 조치를 취해야했다. 끝장나버린 SK플래닛이 제공한 API키를 버리고, 새로이 SK텔레콤이 제공하는 API키를 발급받아 다시 교내 지도를 띄우는 것까지는 좋았다. 문제는 도보 네비게이션 기능이었는데, T맵의 JavaScript파일에서 오류를 뿜어내며 작동을 거부했다. 회사만 바뀔 뿐, 서비스는 동일하다며? 분명히 SK플래닛이 제공하는 API서비스를 사용할 때는 잘 동작하던 코드가, SK텔레콤의 API로는 작동하지 않았다. API가 변경된 것도 아니오, 다른 JavaScript 라이브러리와 충돌하는 것도 아니오, T맵으로 전송하는 HTTP 요청에 문제가 있는 것도 아님을 확인한 후, 이건 그냥 T맵에 버그가 있다는 결론을 내렸다.
그러거나 말거나 T맵에 무슨 문제가 있든간에, 나는 당장 도보 네비게이션 서비스를 띄워야했다. 어떻게? 물론 당장 떠오르는 방법은 없었다. 반쯤 자포자기한 심정으로 T맵 API 문서를 줄줄 읽고 있자니, 도보 네비게이션 API의 샘플 코드와 기존에 사용하고 있던 API가 달랐다. 물론 기존 API가 사라진 것은 아니었지만, 새로운 API를 사용한 이 샘플 코드는 잘 작동하고 있었다. 얼른 이런 결론을 내렸다. SK텔레콤에 오류 제보하고 답변을 기다리는데 시간을 낭비하느니, 그냥 이 샘플 코드가 사용하는 API를 사용해서 도보 네비게이션 서비스를 새로 만들자!
다행히 API문서와 샘플 코드가 훌륭하여 신속하게 개발할 수 있었다. 하지만 속 쓰린 문제는 따로 있었다. 기존 코드를 가만히 살펴보니 여간 내 취향과 맞지를 않았다. 어느 정도였느냐면 나도 모르게 이거 왜 이렇게 만들었냐는 말이 절로 튀어나올 정도. JQuery 기반으로 작성되어 있던 그 화면은 DOM 조작과 이벤트 처리를 중심으로 코드가 짜여져 있었는데, 이거 자체가 맘에 들지 않았다. 함수가 함수를 너무 많이, 그리고 자주 호출하고 있었다.
답답한 마음에 코드를 더욱 각잡고 따져보니, 딱히 너저분하지도 않고 군더더기도 없었다. 하지만 마음에 차지 않는 것은 어쩔 수 없었다. 요즘 Vue.js로 개발을 하다보니 이런 것인가 생각도 해봤지만, 저 코드를 개발하던 시점의 나는 이미 AngularJS를 제법 잘 사용하고 있었기에 FrontEnd framework 사용 여부 때문은 아닌 것 같았다. 결국 코딩 취향이 바뀌었다는 이야기인데, 나 자신이 불과 10달 만에 이렇게나 급격한 변했음을 깨달은 경우는 처음이었다. 애당초 내가 개발한 코드를 세월이 지나고 다시 마주한 경험이 많지 않았기에 더욱 그러했다. 도대체 내게 무슨 일이 일어나고 있는 것일까? 급변하는 JavaScript의 세계가 나를 이렇게 몰고 간 것일까? 이게 좋은 건지, 그렇지 않은건지, 도무지 모르겠다. 미래는 더욱 모르겠다.
어찌됐건 SK플래닛 개발자센터는 마지막 가는 그 순간까지 내게 적지 않은 생각거리를 남겨주었다. 고이 잠드소서.
20180403
Leave a comment