본문 바로가기

프로젝트/RanDrive20

성능개선(DB 호출 수 줄이기, DB 처리 속도 향상시키기) 1. 경로 저장시 DB 호출이 너무 많음문제 발생먼저 경로 저장시 너무 많은 DB 접근이 이뤄지는 것을 확인할 수 있었다.경로 저장시 route, bound, road, guide 총 4개의 테이블에 저장을 해야하는데, 이상적인 DB 접근을 생각해보면 총 4번만 접근하면 된다.하지만 지금은 너무 많은 접근이 이뤄지고 아래 코드를 보면 문제점을 금방 찾을 수 있다.아래는 HistoryService의 saveHistory의 문제를 일으키는 부분이다.for (KakaoRouteAllResponseDto.Section allSection : sections) { KakaoRouteAllResponseDto.Road[] roads = allSection.getRoads(); KakaoRouteAllRe.. 2023. 11. 4.
기능 개선(예외처리) 1. 출발지, 목적지 등 필요한 정보 입력하지 않았을 때redius.js, waypoints.js의 마지막 부분에 다음과 같은 코드를 추가했다.try { if (originAddress === "" || redius === "" || waypointNum === "" || secondType === "") throw new Error("값이 입력 되지 않았습니다."); }catch (e) { alert(e.message); return; }위 코드의 결과는 아래와 같다.또한 RealRandomRouteSearchService에도 해당 예외처리를 넣어줬다.코드가 변경되며 프론트에서 전달한 값은 제대로 못받을 수도 있기 때문이다.추가한.. 2023. 11. 2.
기능 개선(새로운 랜덤 길찾기 알고리즘 프론트 코드 작성) 프론트에 새로운 알고리즘 짜둔 방식을 적용시켰다.알고리즘에 대한 설명은 아래 링크를 타고 들어가면 볼 수 있다.https://hwk99.tistory.com/121 63일차 - 기능 개선(랜덤 길찾기 알고리즘)랜덤 길찾기 알고리즘을 발전시킬 것이다. 지금의 알고리즘은 단지 20km이내에 있는 관광지를 무작위적으로 추천해주는 알고리즘이다. 그 결과 T자, 8자등 만든 사람도 별로 내키지 않는 경로를hwk99.tistory.com 총 3개의 알고리즘이 나와서 이용자가 직접 어떤 방식의 길찾기를 사용할 것인지 고르게 할 것이다.사용자는 탐색 범위, 경유지 수, 경로 타입을 직접 골라야 한다.사용자들이 고르기 편하게 각각의 선택에 선택지를 줬다. 작성한 코드는 아래와 같고 randomdadius.js에 있다. .. 2023. 11. 1.
기능 개선(경유지를 가진 경로 이탈 시 처리) 기존 네비게이션은 경로 이탈 시 따로 처리를 해주지 않았다.그 결과 경로를 이탈해도 다음 안내지점을 고치지 않고, 말도 안되는 경로로 경로 안내를 해 주었다.아래의 사진을 보면 알 수 있다.이 문제를 해결하기 위해 다음과 같은 기능을 가진 코드를 작성하기로 했다.1. 경로 이탈 판정을 해주는 코드2. 경로 이탈시 새로운 경로 탐색 후 추천 2번 기능을 구현하기 위해서는 일반 네비게이션과 랜덤 네비게이션, 그리고 기록을 바탕으로 한 네비게이션을 따로 따로 구현해야 했다. 이 중 나는 랜덤 네비게이션, History 네비게이션 경로 이탈 처리 코드를 개발하기로 했다.경로 이탈 판정 코드경로 이탈 판정 코드는 모두 calculation.js에 작성되어 있다.아래와 같은 코드를 작성해서 위치 변경시 action.. 2023. 11. 1.