지도의 getCenter(), getBounds() 출력변수는 왜 자꾸 변하나요!?!?!?!?!?!?

금일 map.getBounds() 함수를 써서 콘솔로 출력한 결과값입니다.

fa {ca: 126.95081772100662, ja: 37.551093490354575, ha: 126.99427287782335, ia: 37.56263636138038}

각각 지도의 좌측위도값이 ja, 우측위도값이 ia, 상단경도값이 ha, 하단경도값이 ca 인것을 확인할 수 있습니다.
갑자기 이렇게 변한것때문에 클라이언트에게 지도에 마커들이 표시되지 않는다는 피드백을 듣고 알아낸것입니다.

이걸 확인하고 수정하기전에는 분명히
지도의 좌측위도값이 ha, 우측위도값이 ga, 상단경도값이 ba, 하단경도값이 fa 였습니다.

getBounds() 함수 뿐만아니라 getCenter() 도 마찬가지입니다… 이것만으로도 클라이언트 요청에 의해
서너번은 바꾼듯합니다. 가운데 값과 지도 변두리 좌표를 반환해주는 변수명이 자꾸 바뀌는 이유가 뭔가요??

구체적인 답변부탁드립니다.

사용하신 변수는 그냥 보기에도 가독성이 떨어지는데,
그 이유는 당연히 직접 접근하여 사용하지 말라는 데에 있습니다.

내부 정보 은닉화에 취약한 자바스크립트 특성 + API의 구조상
객체 내부에서 사용하는 멤버 변수에 접근이 가능하기 때문에 사용하셨을 겁니다.
하지만 이것은 잘못된 사용법입니다.
보다 빠른 서비스 제공을 위해 코드 압축을 하고 있는데 압축 할 때마다 해당 값은 무작위로 변경되게 됩니다.
때문에 저희는 사용자분들께 직접 저 변수에 접근하여 사용하라고 가이드 하지 않습니다.
문서에 적시한 API말고 직접 내부 변수를 접근하여 사용하시다가 생기는 문제에 대해서는 도움을 드릴 수가 없으니 참고 부탁드리겠습니다.

그리고 원하시는 영역값을 얻는 올바른 방법에 대해 말씀드리자면,
문서를 보시면 해당 값들은 API를 통해 보다 가독성 있는 코드로 얻을 수 있게 되어 있습니다.
http://apis.map.daum.net/web/documentation/#Map_getBounds
http://apis.map.daum.net/web/documentation/#LatLngBounds
map.getBounds()는 LatLngBounds 객체를 리턴하는데
LatLngBounds 객체는 getSouthWest(), getNorthEast() 라는 메소드를 가지고 있습니다.
이것들을 통해 상하좌우 위경도값을 얻으실 수 있습니다.

해당 변수는 전혀 가독성이 떨어지지도 않고,
문제의 핵심이 전혀 빗나가 있네요.

자바스크립트는 OOP 언어이고, 그래서 encapsulation 기능이 있는겁니다.
사용되어서는 안되는 변수나 값들은 내부에 은닉 되어야 하는데 버젓이 노출되어 있는 것이지요.

js가 은닉화에 취약하다니…
js를 제대로 모르면 은닉화에 취약하다는 표현으로 이해하겠습니다.
js책 한권만 사서 보시면 은닉화 기법이 얼마나 많은지 아시게 될겁니다.

이정도 규모의 API를 만들면서 기본적인 은닉화에 실패한 객체를 설계되어 있는데 사용자가 잘 못 이라는 글이 달리다니,
참담하네요.
이정도의 위험도가 있는 객체인데, 도저히 은닉화 할 자신이 없었다면 해당 객체를 직접 사용하지 말 것을 아마도 붉은 색으로 해당 API 문서에 표시 해 두었어야 할 겁니다.
이런 상황에 '가독성이 떨어지는 이유가 당연히 직접 접근하여 사용하지 말라’는 뜻이라니,
무슨 점쟁이 집단 입니까?

게다가 getCenter() 는 bound가 아님에도 아마도 '내부적인 이유’로 키값들이 변하지요.
내부적인 이유들도 분명 알면 창피한 일이 되겠지만, 충분히 오해 할 수 없는 형태로 Ga/Ha, Ia/Ja 가 키값만 변형되어 튀어나온다니.

개인 단위로 운영 되는 오픈소스 API도 이런식으로 오해 할 수 있는 형태로 만들고 사용자 책임으로 나몰라라 하진 않습니다.

위에 댓글 다신 @doji.doo 님이 카카오 직원인지 뭔진 모르겠으나,
API 설계 / 문서 작성에 구멍 낸 건 그냥 챙피한 일이겠지만,
'문서에서 제공하지 않는 방법으로 제공 한 걸 썼으니 사용자 책임’이라는 수준의 답변을 한다면,
이건 그냥 처참한 수준이네요.

카카오, API가 예전보다 좀 꾸리해졌다 했더만.
CTO 바꼈나?

1개의 좋아요

일단 API사용에 불편을 드린 점에 대해서 죄송하단 말씀 드리며
위의 제 답글에서 안내해 드린 방법대로 사용해 주시길 부탁드리겠습니다.