20

Common Pitfalls: 자주 하는 실수

Day 4: 경로 탐색 알고리즘

학습 목표

음수 가중치 문제 방향성 설정 알고리즘 선택 오류 가중치 속성 확인

경로 탐색 Common Pitfalls

Pitfall 1: 음수 가중치 사용

증상

  • 잘못된 경로 결과
  • 무한 루프 (Neo4j가 처리할 수 있지만 결과 부정확)

원인

Dijkstra는 양수 가중치 전용

에디터 로딩 중...

잘못된 코드

에디터 로딩 중...

해결책

에디터 로딩 중...

Pitfall 2: 방향 그래프에서 UNDIRECTED 누락

증상

  • 경로가 없다고 나옴 (실제로는 있음)
  • 비대칭 결과

원인

도로는 양방향이지만, 관계는 기본적으로 단방향

잘못된 코드

에디터 로딩 중...

올바른 코드

에디터 로딩 중...

Pitfall 3: 한 쌍만 필요한데 All Pairs 사용

증상

  • 불필요하게 느림
  • 메모리 과다 사용

원인

All Pairs는 모든 쌍을 계산

잘못된 코드

에디터 로딩 중...

올바른 코드

에디터 로딩 중...

Pitfall 4: A*에 좌표 속성 누락

증상

에디터 로딩 중...

원인

A*는 위도/경도 속성 필수

잘못된 코드

에디터 로딩 중...

올바른 코드

에디터 로딩 중...

Pitfall 5: 가중치 속성 이름 오타

증상

  • 모든 경로가 같은 비용
  • 예상과 다른 결과

원인

속성 이름이 틀리면 기본값(1) 사용

잘못된 코드

에디터 로딩 중...

확인 방법

에디터 로딩 중...

Pitfall 6: 연결되지 않은 노드

증상

  • 일부 노드로 경로가 없음
  • "No path found"

확인 방법

에디터 로딩 중...

체크리스트

항목확인
가중치가 모두 양수?[ ]
양방향 도로면 UNDIRECTED?[ ]
한 쌍만 필요하면 Source-Target?[ ]
A* 사용 시 좌표 속성 있음?[ ]
가중치 속성 이름 정확?[ ]
그래프가 연결되어 있음?[ ]