20분
Common Pitfalls: 자주 하는 실수
Day 1: 중심성 알고리즘
Common Pitfalls: 자주 하는 실수
그래프 알고리즘 > Day 1: 중심성 알고리즘
학습 목표
프로젝션 관련 오류 해결 방향성 설정 실수 방지 대규모 그래프 처리 팁
중심성 알고리즘 Common Pitfalls
Pitfall 1: 프로젝션 없이 알고리즘 실행
증상
에디터 로딩 중...
원인
GDS 알고리즘은 프로젝션된 그래프에서만 실행됩니다.
잘못된 코드
에디터 로딩 중...
올바른 코드
에디터 로딩 중...
Pitfall 2: 방향성 설정 오류
증상
- In-Degree를 계산했는데 Out-Degree가 나옴
- 친구 관계인데 한 방향만 계산됨
원인
기본 방향성은 NATURAL (원본 방향 유지)
잘못된 코드
에디터 로딩 중...
올바른 코드
에디터 로딩 중...
Pitfall 3: stream vs write 혼동
증상
- stream으로 실행했는데 나중에 결과가 없음
- write로 저장했는데 노드 속성에 접근 불가
차이점
| 모드 | 결과 저장 위치 | 사용 시점 |
|---|---|---|
| stream | 반환만 (저장 X) | 탐색, 일회성 분석 |
| write | DB 노드 속성 | 영구 저장 필요 시 |
| mutate | 프로젝션에만 | 연속 알고리즘 실행 |
잘못된 패턴
에디터 로딩 중...
올바른 패턴
에디터 로딩 중...
Pitfall 4: 대규모 그래프에서 Betweenness
증상
- 쿼리가 몇 시간째 안 끝남
- 메모리 부족
원인
Betweenness는 O(n² × E) 복잡도로 매우 느림
잘못된 코드
에디터 로딩 중...
올바른 코드
에디터 로딩 중...
Pitfall 5: 프로젝션 메모리 누수
증상
- Neo4j 메모리 사용량 계속 증가
- "Out of memory" 오류
원인
프로젝션은 메모리에 상주하며 자동 삭제 안 됨
잘못된 패턴
에디터 로딩 중...
올바른 패턴
에디터 로딩 중...
체크리스트
| 항목 | 확인 |
|---|---|
| 프로젝션을 먼저 생성했는가? | [ ] |
| 방향성이 분석 목적에 맞는가? | [ ] |
| 결과 저장 모드가 적절한가? | [ ] |
| 대규모 그래프에서 샘플링 사용? | [ ] |
| 분석 후 프로젝션 삭제? | [ ] |