21.07 / 서비스 기능 확장 실패담

정적 웹 호스팅으로 서비스 하던 때 시도한 기능 확장

순탄한 네이버

처음 서비스에서 지원하는 지도 포맷은 네이버 뿐이었다. 네이버 지도 API에서 Static Map 이미지를 불러오기 위해 XMLHttpRequest를 사용했는데, 어렴풋이 에러 코드를 본 기억이 있다. 네이버 지도는 Image 클래스를 사용해서 불러오고 있었는데,

img.crossorigin = "*";

라는 코드를 넣으면 에러가 사라질 것이라는 답변에 그대로 실행했고, 잘 되길래 그냥 넘어갔다. 이 때는 몰랐었다. 앞으로의 기능들은 저 방식으로는 하나도 해결이 안 될 것이라는 걸.

레이어는 말이없다

서비스가 한참 잘 운영되던중, 새로운 기능을 넣어보고 싶었다. 도시의 도로 윤곽만 있는 사진이라던가, 농업 지구, 계획 지구 등을 표시한 도시 계획 레이어 정보를 얻어올 수 있는 곳을 찾았고, 이 기능을 당장 넣어보기로 했다. 당연히 CORS 관련 에러가 떴고, 나는 그 전에 썼던 코드를 넣었으나, 에러는 여전했다. 그제서야 이 에러에 대해 자세히 찾아보았고, 서버에서 조치를 취해주지 않으면 그 당시 정적 웹 호스팅를 사용하던 내 쪽에서는 사실상 할 수 있는게 없었다. 그런데 내가 이 기능 쓰자고 이미지 보내주는 국가 관련 기관에 대뜸 설정을 바꿔달라고 할 수도 없고, 웹 서비스인데 브라우저를 안 거칠 방법도 없고, 머리가 아파서 나와 비슷한 상황의 사람들이 있었는지 문의 게시판을 찾아보았다. 그 사람들에게 돌아온 대답은 자체 프록시 서버를 구축하라는 대답이었다.

개발만 한다고 될일이 아니구나

그래서 열심히 서버를 구축했다. 정보를 대신 전달해주고, 이미지 바이트 파일을 대신 받아오는 형식으로 만들었다. 레이어 서비스는 처음에는 Heroku라는 서버 호스팅 업체를 통해서 운영을 시도했다. 레이어 기능을 추가하고 잠이 든 날, 문득 새벽 5시에 일어났고, 갑자기 기분이 이상해서 레이어 기능을 테스트해봤다. 근데 이게 뭔일? 동작을 안 한다. 곧 알게 된 사실인데, 해외 서버로의 한국 지리 관련 정보 반출은 전부 막혀있는 상태였다. 나는 급히 모든 기능을 롤백하고, 아침부터 다시 해결책을 찾기 시작했다.

분명 서울 리전인데?

이 때 발견한 것이 오라클의 무료 클라우드 서버였다. 무료로 인스턴스를 2개까지 발급이 가능했고, 서버 위치로 서울을 선택한 후 코드를 다시 올려보았다. 이때도 도메인 문제로 많이 헤메긴 했지만, 우여곡절 끝에 세팅을 완료했다. 그런데, 여전히 작동을 안한다. 서버 문제인가 싶어서 구글 블로그의 아무 이미지나 가져와 봤는데 매끄럽게 작동했고, 도대체 뭔 일인가 싶어서 아이피 위치추적 사이트에 들어가서 서버 아이피를 찍어보았다. 아이고, 국내에서 관리되는 아이피가 아니라고 나온다. 그래서 다른 해외 서비스로 위치를 확인해보았는데, 위치는 분명 서울로 뜬다. 아마 국내 발급, 관리되는 아이피가 아니면 다 차단되는 듯 했다. 결국, 국내 클라우드 업체를 찾아보았고, 최종적으로 선정한 곳은 네이버 클라우드였다.

이런 로그는 필요없어요

네이버 클라우드 서비스 중에서도 Cloud Function이라는 기능을 사용했는데, 간단하게 코드만 업로드 하면 굳이 리눅스 서버를 세팅할 일도 없거니와, 무료 제공량으로도 충분할 것이라는 판단에서였다.

그렇게 레이어 기능을 한 달 정도 운영했고, 나는 과금 폭탄과 함께 레이어 서비스를 종료했다. 분명 무료 사용량 만으로 충분했다. 그런데, 부가 서비스로 따라오는 Cloud Log Analytics라는 서비스가 있었는데, 해지도 안되고, 선택적으로 로그를 남길 수 도 없었다. 덕분에 내 이미지 바이트 코드들이 왕창 서버에 로그로 쓸데없이 누적되었고, 여기서 돈 폭탄을 맞게 되었다. 첫 기능 확장에 대한 꿈은 과금의 추억으로 끝났다.

Last updated