20분
Common Pitfalls: 자주 하는 실수
Day 4: 경로 탐색 알고리즘
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* 사용 시 좌표 속성 있음? | [ ] |
| 가중치 속성 이름 정확? | [ ] |
| 그래프가 연결되어 있음? | [ ] |