사용자 지역 설정 기능 개발하기
원티드는 국내에서 제공하던 ‘지인 추천 채용 서비스’를 2015년부터 온라인 서비스로 시작하여 꾸준히 성장해왔습니다. 특히, 올해부터 전 세계로 각 주요 도시를 거점으로 서비스를 확장해 나가고 있습니다. 현재 한국 뿐만 아니라 일본, 홍콩, 싱가포르, 대만에서 서비스가 런칭 되었으며, 더 많은 도시로 확장 예정입니다.
원티드 안드로이드앱 4.1.5 버전에서 사용자가 위에서 얘기한 이런 지역을 직접 설정하여 해당 지역에서 서비스를 이용하는 것 처럼 기능을 개선하였습니다. 또, 포지션 탐색 시 해당 서비스 지역의 좀 더 상세한 지역 필터링도 추가되었습니다. 지역설정 / 탐색 기능에서 고민했던 내용들을 정리해 보았습니다.
현재 위치로 서비스를 제공할 경우 이슈
글로벌 서비스를 시작하면서 사용자의 정보를 기반으로 서비스를 제공하는 방향으로 준비했습니다. 하지만 대만, 홍콩, 싱가포르 등에서 현재 위치가 예상과 다르게 확인되는 경우가 종종 있었습니다.
예를들어, 출장중에서 겪은 이슈로 동일한 위치에서 해당 위치의 국가를 확인해 보았을 때 그 결과가 사용하는 유심 종류에 따라 위치 정보가 원하는 예상과 같지 않을 경우가 발생되었습니다.
모바일 환경에서는 iOS와 Android가 조금 차이가 있습니다. iOS의 경우 지역과 언어의 설정이 분리되어 각각 설정이 가능하지만, Android의 경우 언어 설정에서 부가적으로 지역설정이 가능합니다. 이 때, 제조사 별로 해당 기능을 제공하지 않는경우 가 있어, 홍콩, 싱가포르 지역의 경우 주로 영어를 사용하지만 디바이스에서는 en_US로밖에 설정이 되지 않는 이슈가 있었습니다.
이러한 이슈들 때문에, 원티드에서는 사용자들이 서비스를 원하는 지역을 직접 설정할 수 있도록 기능을 제공하고, 추가적으로 포지션 검색 시에도 조금 더 구체적으로 지역을 탐색할 수 있는 필터 기능을 제공하는 것으로 해당 이슈들을 해결하는 것으로 논의 하였습니다.
지역 설정에 따른 앱 언어 설정 변경
위 화면에서 보시는 것 처럼 안드로이드에서는 지역을 변경할 경우 각 지역에서 가장 많이 쓰는 언어를 이용하여 서비스를 사용할 수 있도록 제공됩니다. 이는 현지에서 가장 많이 되는 언어를 기반으로 정리되었습니다.
- 싱가포르 (영어)
- 홍콩 (영어)
- 한국 (한국어)
- 대만 (중국어 번체)
사용자가 선택한 서비스지역에 맞춰 앱 리소스를 변경하는 방법이 있습니다. 이를 이용하여 아래와 같이 순차적으로 처리하였습니다.
1. 사용자가 설정한 지역 정보를 Preferences로 country, language를 각각 저장
2. updateConfigurations를 호출해준다.
3. 이미 동작중인 Activity들은 ACTION_LOCALE_CHANGED Broadcast를 수신하면 종료하게 처리해둔다.
4. 앱 실행 기본 URI 를 이용하여 처음부터 실행 시킨다.
5. 초기 실행되는 Activity에서는 updateConfigurations를 수행하고 서비스 액티비티를 실행시킨다.
updateConfiguration 수행 시 설정한 내용이 Fragment에는 적용되는데, Activity는 적용되지 않거나, 서비스 지역 변경에 따른 데이터 처리 등의 이슈가 있었습니다. 이를 회피하기 위해 updateConfiguration 실행 시 기존에 실행되는 Activity는 모두 종료 처리하고 처음부터 실행 되게 처리하였습니다. 그리고 초기 실행되는 액티비티에서 Preferences로 저장한 지역정보로 updateConfiguration을 수행하고 서비스가 제공되는 실제 액티비티를 실행시켜 이러한 이슈를 회피하였습니다.
검색/탐색 지역 필터 제공
글로벌 서비스를 제공하게 되면서 원티드가 제공하는 채용 정보가 점점 더 많아지기 시작하여 탐색/검색 시 조건을 더 세분화 하여 검색할 수 있어야 하며, 사용자는 해외 취업에 관심이 있거나 더 좋은 조건이 있으면 도전해 보고자 하는 니즈가 있으므로 포지션을 국가별로 탐색이 가능해야 하는 니즈가 있습니다. (저도 해외 취업에 관심이 많습니다) 이를 바탕으로 기존에 제공되던 경력 필터 외에 지역 필터가 추가 되었습니다. 2018년 06월 기준 제공되는 필터는 아래와 같습니다.
한국 | 일본 | 대만 | 홍콩 | 싱가포르 |
---|---|---|---|---|
전체 서울 강남 성남 부산 일본 싱가폴 홍콩 대만 |
All Tokyo Yokohama Nagoya Osaka |
All Taipei City New Taipei City Japan Korea Singapore Hong Kong |
All Hong Kong Singapore Korea Japan Taiwan |
All Hong Kong Singapore Korea Japan Taiwan |
기존의 모든 채용 정보는 주소 정보가 있으므로 Google의 GeoCoding API를 이용하여 기존 포지션 정보들의 주소 체계를 정리하여 각 지역에서 최적화된 필터 목록으로 사용자들이 사용할 수 있도록 처리하였습니다. 예를들어 ‘대한민국 서울 서초구’ 와 같은 주소로 등록된 포지션이라면 ‘대한민국’, ‘서울’, ‘서초구’ 3가지의 지역으로 매핑됩니다. 이렇게 약 10,000개 이상의 포지션 정보를 사용자가 좀 더 쉽게 검색/탐색 할 수 있도록 작업이 진행되었으며, 클라이언트에서는 이를 사용할 수 있는 API를 통신하여 그 목록을 표시하도록 작업되었습니다.