물에 살고싶은 개발자

[NaverMap SDK] 네이버맵 Bearing 관련 문제해결 삽질기록 본문

Android

[NaverMap SDK] 네이버맵 Bearing 관련 문제해결 삽질기록

돼지사랑 2022. 9. 5. 23:54

이 글은 삽질과정 기록을 위한 글이다. 동시에, 같은문제를 겪는 이들을 위한 한줄짜리 심플한 해결책임을 사전에 밝힌다. 많은사람이 읽진 않을거라고 생각하지만..읽은사람들만이라도 나처럼 멍청한 삽질과정을 거치질 않길 바라며 글을 쓴다.

 

선결론 : 네이버맵 구현 시 이것저것 UI 다 치워놧더니 setLocationTrackingMode()를 face로 했음에도 Bearing 의 상태가 시원찮을 경우엔 locationSource.isCompassEnabled = true 한줄이면 해결된다. 

 

============== 문제발생 ==============

  1. 문제발생 : 네이버맵sdk에서 face 추적 시 bearing(이하 베어링)이 자연스럽게 돌아가는걸 요청받음
  2. 상태파악 : 뻑뻑하게 돌아가는데다가 방향도 잘 안맞는걸 확인
  3. 원인파악 : 베어링 관련해서는 따로 세팅한게 없는걸 알고있었지만 확인차 코드 확인

============== 솔루션 찾기(삽질) ==============

  1. 일단 네이버지도앱을 켜서 확인해보니 자연스럽게 돌아감. 즉 네이버맵 sdk의 문제는 아닌걸 확인
  2. 네이버맵 가이드문서를 샅샅이 뒤지다보니 데모앱이 있어 바로 받아서 실행해봄 -> 내가 적용방식이 틀린게 있나 확인하기 위함
  3. 아무리봐도 특별한 코드는 없는걸 확인 (이 시점에서 위에 언급한 솔루션 발견했으면 얼마나 좋았을까..)
  4. 이쯤에서 개발중이던 프로젝트는 덩치가 큰 탓에 빌드시간이나 테스트 등 자잘한시간이 오래걸려 새로 프로젝트(이하 연습) 만들어서 네이버맵만 칼같이 테스트 -> 여기서 빌드문제가 생겨서 또 시간낭비..
  5. 데모랑 연습을 열심히 비교해가면서 액티비티와 프래그먼트의 퍼포먼스차이인가 싶었는데도 아니었고, 네이버 가이드에 안드로이드x 이전버전인 v7서포트를 이용한다기에 설마 그게 원인인가 싶어 다시 연습을 이전버전으로 돌리느라 시행착오 -> 아무리 비교해봐도 서포트버전 외엔 차이가 없었음. 아니 발견을 못했음
  6. 불행하게도 당연하게도 이전버전으로 돌렸음에도 해결이 안됨
  7. 너무 맨땅헤딩하는거같아 정보가 없나 검색쪽으로 전략변경
  8. 일단 네이버 가이드문서와 데모앱 깃헙에서 검색해볼생각이었는데 데모앱 깃헙엔 뭐 없었고, 가이드문서에도 문의만 있을뿐 개발자들을 위한 질문게시판은 없었다. 아니 있었지만 검색결과가 좀처럼 나오지않았음. -> 어리석게도 이쯤부터 계속 안드로이드 네이버맵 “locationTrackingMode” 으로 검색함..(원인의 주체가 트래킹모드에 있을거라고 생각했었기에 해당검색어를 핵심키워드로 잡고 검색. 중간쯤부턴 트래킹모드의 주석이나 설명에 내가 원하는 내용이 있길 바라면서...ㅎ locationSource의 isCompassEnabled 도 존재는 알고있었으나 단순히 지도 ui를 표시하는거라고 생각했음. 이걸 봣을때 왜 locationSource에 있었는지 생각해봤었으면 이렇게 오래끌지 않았을지도..)
  9. 구글과 네이버,유튜브에서 나오는 거의 모든자료를 다 봐갈때쯤(최소 구글검색결과 3페이지까지 전부 보라색됨..약 2시간동안 검색만..ㅠㅠ) 타겟sdk버전 31부터는 위치데이터를 깐깐하게 준다는 글을 발견
  10. 일단 연습에서 버전낮추고 실행해봣는데 차이가 없었고, 관련내용을 검색해봐도 명확히 근거삼을만한 자료는 없었음
  11. 다시 검색하던 중 구글은 얼추 다 본거같아 네이버글들을 뒤적거리다 진짜 마지막글에서 혹시 이건가!? 싶은것을 발견..그것이 위에 스포한 locationSource.isCompassEnabled = true …
  12. 혹시나 설마 이것만으로 가능한가 하고 반신반의하면서 기도하면서 연습에다 코드추가하고 실행해봤는데 자연스럽게 돌아가는걸 확인! 
  13. 허탈하면서 기쁘면서 꼴받으면서 여러 복합적인 감정이 들었지만, 일단 왜 이런 사소한(?) 설정하나가 이렇게 큰 차이를 보이나 싶어 네이버sdk쪽 코드를 파고들었으나 암호화가 되어있어 알아볼수 없었음..
  14. 복호화방법이 있긴있었던걸로 알고있었지만 이미 새벽2시반..일단 개발하던 프로젝트에 적용 후 테스트해보니 정상적으로 되는걸 확인해서 설명주석과 함께 코드 푸시 및 결과물 공유하고 종료 
  15. 너무 열받는 경험인데다 누군가에게 도움이 될까 싶어 이것을 글로 공유함.

 

Comments