- 기능 테스트 참여 인원
- 10~20명
- 그룹 위치 갱신 주기 (폴링)
- 약 5초
업무 배경과 해결 과정
- 배경
Chipster Play는 네이버 지도를 기반으로 같은 팩에 속한 사용자의 위치와 아바타 이동을 공유하는 WebApp입니다. 웹과 Android 앱이 함께 동작하는 서비스에서 로그인 상태, 앱 기능 호출과 위치 정보를 연결하는 기능을 담당했습니다. 한국항공대학교 캡스톤 디자인으로 진행했습니다.
- 어려웠던 점
웹과 Android 앱의 실행 환경이 달라 로그인 상태와 사용자 식별정보를 일관되게 유지하기 어려웠습니다. 앱에서는 로그인된 상태인데 웹에서 다시 인증해야 하거나, 위치 공유 API에서 사용자 식별정보가 맞지 않을 수 있었습니다.
- 이렇게 풀었습니다
UID를 중심으로 사용자 식별정보를 통일하고 자동 로그인과 웹·앱 간 인증정보 전달 구조를 구성했습니다. 모든 API 요청에 같은 식별정보를 쓰도록 맞춰 로그인 이후 지도와 그룹 기능을 자연스럽게 이어 쓸 수 있게 했습니다.
직접 만든 것
세션·UID 기반 자동 로그인, Android 기능 연동, 같은 그룹의 실시간 위치·아바타 이동 공유를 구현했습니다.
- 01
로그인 세션·UID 기반 자동 로그인
사용자의 로그인 세션과 UID를 활용해 웹 서비스에 자동 로그인하는 기능을 구현했습니다.
- 02
웹 화면과 Android 기능 연결
포카 Get 기능과 Android 기능을 웹에서 이용할 수 있도록 웹·앱 연동을 구현했습니다. 앱 기능이 필요한 화면의 연결 작업을 맡았으며, 다른 파트의 개발이 필요한 경우 해당 구현을 보조했습니다.
- 03
그룹 단위 실시간 위치 공유
Android에서 받은 사용자 위치를 서버와 연동하고, Naver Map API 지도 화면에 같은 팩 사용자의 위치를 표시했습니다. 약 5초 간격 폴링으로 위치를 갱신하고, 그룹 구성원별 UID를 기준으로 위치와 아바타 정보를 연결해, 위치가 갱신되면 지도 마커나 아바타가 함께 움직이도록 했습니다.
- 04
아바타 모드의 이동 연동
아바타 모드에서 사용자 간 이동을 연동해, 각 사용자의 움직임이 서비스 화면의 아바타로 표현되도록 구현했습니다.
사용 기술JavaScript · PHP · MySQL · Naver Map API · HTML · CSS · Android
화면
담당 범위
- 로그인 세션·UID를 사용하는 자동 로그인과 웹·Android 기능 연동 개발
- 같은 팩 사용자 간 위치 공유와 아바타 이동 연동 구현
- 파트 간 연동에 필요한 다른 개발 영역의 구현 보조
다시 만든다면 (개선 설계안)
구현 내용을 바탕으로 확장해 검토한 설계안입니다.
- 세션 만료 시 웹·앱 연동의 인증 경계
자동 로그인 이후 세션이 만료된 상태에서 Android 연동 기능을 호출하는 경우를 고려할 수 있습니다. 연동 요청 시점에 인증 유효성을 확인하고 재인증 후 사용자 확인을 거쳐 작업을 재개하는 흐름을 검토합니다. 만료된 세션·로그아웃·계정 변경 상황을 재현해 이전 UID로 기능이 실행되거나 재개 과정에서 같은 작업이 반복되지 않는지 검증하는 개선안입니다.
- 위치 정보의 갱신 시점과 표시 기준
앱이 백그라운드로 이동하거나 통신이 지연되면 지도에 남아 있는 위치가 현재 위치처럼 보일 수 있습니다. 위치 데이터에 갱신 시점을 포함하고 오래된 위치를 구분해 표시하며, 늦게 도착한 과거 데이터가 최신 위치를 덮어쓰지 않도록 하는 개선안을 검토합니다. 전송 순서를 바꾸거나 갱신을 중단해 지도 위치·아바타·갱신 시점 표시가 같은 기준을 따르는지 확인합니다.