시범적용 후 개발 이슈 정리

ZEDY·2024년 7월 8일
0

회고

목록 보기
2/9

지난 6월 29일 개발물 Mobby의 시범적용을 진행했고, 개발적인 부분의 이슈 사항을 정리해보려고 합니다.


현재 개발 사항 정리 및 문제점 분석

1. 위치 문제

현황

프론트엔드에서는 사용자의 현재 위치를 파악하기 위해 HTML5 Geolocation API를 사용하고 있습니다. 이를 통해 경로 검색 시 출발지를 자동으로 사용자의 현재 위치로 설정하는 기능이 구현되어 있습니다. 사용자는 지도 어플리케이션에서 경로 검색을 시도할 때 별도의 위치 입력 없이 현재 위치를 출발지로 설정할 수 있습니다. 이는 사용자 편의성을 크게 높이는 기능입니다.

문제점

현재 구현된 로직은 사용자가 경로를 검색할 때 한 번만 위치를 가져오는 방식으로 동작합니다. 그러나 사용자가 이동하면서 실시간으로 자신의 위치를 지도 상에 확인하고, 경로를 따라갈 수 있도록 하는 기능은 아직 개발되지 않았습니다. 이는 사용자가 길을 잃지 않고 목적지까지 안전하게 도달하는 데 중요한 요소입니다. 이동 중 실시간 위치 추적 기능이 없다면, 사용자는 현재 위치를 수동으로 파악해야 하며, 이는 매우 불편하고 비효율적입니다.

원인 분석

  • 지속적인 위치 업데이트 부족 : Geolocation API를 지속적으로 호출하여 위치를 업데이트하는 로직이 개발되지 않았습니다. 실시간 위치 추적을 위해서는 주기적으로 위치를 갱신하고, 이를 지도 상에 반영해야 합니다.
  • 이벤트 핸들러 미구현 : 사용자가 이동할 때마다 위치 변화를 감지하고 이를 지도에 반영하는 이벤트 핸들러가 구현되지 않았습니다.
  • 지도 라이브러리 활용 미흡 : Google Maps, Mapbox 등의 지도 라이브러리를 통해 사용자의 현재 위치를 중심으로 지도를 이동시키는 기능이 부족합니다.

해결 방안

  1. 지속적인 위치 업데이트 구현

    • Geolocation API의 watchPosition 메서드를 사용하여 사용자의 위치가 변경될 때마다 위치를 업데이트합니다. 이는 사용자가 이동하는 동안 실시간으로 위치를 추적할 수 있도록 합니다.
    • 위치 업데이트 주기를 최적화하여 배터리 소모와 성능 간의 균형을 맞춥니다.
  2. 이벤트 핸들러 구현

    • 사용자의 위치가 변경될 때마다 지도 중심을 새로운 위치로 이동시키는 이벤트 핸들러를 구현합니다. 이를 통해 사용자는 이동 중에도 자신의 현재 위치를 쉽게 파악할 수 있습니다.
  3. 지도 라이브러리 최적화

    • Google Maps, Mapbox 등의 지도 라이브러리에서 제공하는 기능을 활용하여 사용자의 위치를 나타내는 마커를 실시간으로 업데이트합니다.
    • 이동 경로를 따라 지도를 자동으로 이동시키는 기능을 추가합니다.

2. 검색 문제

현황

현재 장소 검색 기능은 프론트엔드에서 사용자가 입력한 텍스트를 기반으로 백엔드 검색 API를 비동기적으로 호출하는 방식으로 개발되어 있습니다. 사용자가 장소를 검색하면, 입력된 텍스트를 백엔드로 전송하고, 백엔드에서 해당 텍스트를 기반으로 검색 결과를 반환합니다.

문제점

현장에서 가장 크게 느껴진 문제는 검색 기능의 불안정성과 일관되지 않은 결과입니다. 사용자가 동일한 검색어를 입력해도 결과가 다르게 나타나거나, 전혀 관련 없는 결과가 반환되는 경우가 빈번했습니다. 이는 사용자 경험을 크게 저하시킵니다. 특히, 검색어에 대한 처리와 예외사항에 대한 처리가 미흡하여, 사용자가 원하는 정보를 정확히 찾기 어렵습니다.

원인 분석

  • 검색어 처리 미흡 : 백엔드에서 입력된 검색어를 처리하는 로직이 충분하지 않습니다. 예를 들어, 오타 수정, 동의어 처리, 문맥 이해 등의 기능이 부족합니다.
  • 예외사항 처리 부족 : 검색어가 유효하지 않거나 데이터베이스에 없는 경우에 대한 예외 처리가 미흡합니다. 이는 사용자에게 혼란을 줄 수 있습니다.
  • 데이터베이스 인덱싱 문제 : 검색 성능을 최적화하기 위한 데이터베이스 인덱싱이 제대로 되어 있지 않아, 검색 속도가 느리거나 정확성이 떨어질 수 있습니다.
  • 검색 알고리즘 한계 : 현재 사용 중인 검색 알고리즘이 단순한 키워드 매칭 방식에 의존하고 있어, 사용자 의도를 정확히 파악하지 못하고 관련 없는 결과를 반환할 수 있습니다.

해결 방안

  1. 검색어 처리 로직 개선

    • 자연어 처리(NLP) 기술을 도입하여 검색어의 의미를 더 정확하게 이해하고, 관련 결과를 반환할 수 있도록 합니다. 예를 들어, 오타 수정, 동의어 처리, 문맥 이해 등을 포함한 검색어 전처리 기능을 구현합니다.
    • 사용자 입력에 대한 실시간 제안 기능을 추가하여, 올바른 검색어를 입력하도록 유도합니다.
  2. 예외사항 처리 강화

    • 검색어가 유효하지 않거나 데이터베이스에 없는 경우에 대한 예외 처리를 강화하여 사용자에게 적절한 안내 메시지를 제공합니다.
    • 검색 결과가 없을 경우, 유사한 검색어 또는 관련 검색어를 제안하는 기능을 추가합니다.
  3. 데이터베이스 최적화

    • 검색 성능을 최적화하기 위해 데이터베이스 인덱싱을 개선하고, 정기적으로 최신 정보를 반영하도록 데이터베이스를 관리합니다.
    • 중복 데이터 및 잘못된 데이터를 정리하여 데이터베이스의 일관성을 유지합니다.
  4. 검색 알고리즘 개선

    • 기계 학습 알고리즘을 도입하여 사용자의 검색 패턴을 학습하고, 더 정확한 검색 결과를 제공할 수 있도록 합니다.
    • 검색어와 장소 정보 간의 매칭 알고리즘을 고도화하여, 단순 키워드 매칭이 아닌 의미 기반 매칭을 구현합니다.

결론

지도 어플리케이션에서 내 위치 추적과 장소 검색 기능은 사용자 경험을 크게 좌우하는 핵심 요소입니다. 위치 추적 문제를 해결하기 위해서는 Geolocation API의 지속적인 호출을 통해 실시간 위치 업데이트를 구현하고, 지도 라이브러리를 최적화하여 사용자가 이동할 때마다 지도가 자동으로 업데이트되도록 해야 합니다. 장소 검색 문제를 해결하기 위해서는 검색어 처리 로직을 개선하고, 예외사항 처리를 강화하며, 데이터베이스와 검색 알고리즘을 최적화해야 합니다. 이러한 개선 사항을 통해 어플리케이션의 신뢰성과 사용자 편의성을 높일 수 있습니다.

profile
Spring Boot 백엔드 주니어 개발자

0개의 댓글