귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!=== PubGrub 의존성 해결 알고리즘 === pip의 기존 의존성 해결 알고리즘은 버전을 하나씩 시도하고 실패하면 되돌아가는 단순한 백트래킹 방식이었다. 복잡한 의존성 트리에서 수분이 걸리기도 했다. uv는 '''PubGrub''' 알고리즘을 사용한다. PubGrub은 원래 Dart의 pub 패키지 매니저에서 개발된 알고리즘으로, SAT 솔버의 '''CDCL(Conflict-Driven Clause Learning)''' 기법을 적용했다. 작동 방식을 쉽게 설명하면: # 의존성 요구사항들을 논리 제약 조건으로 모델링한다 # 충돌이 발생하면 단순히 되돌아가는 게 아니라 '''왜 충돌이 발생했는지 학습'''한다 # 이 학습된 정보를 바탕으로 비슷한 실패 조합을 수백만 가지씩 한번에 건너뛴다 덕분에 복잡한 의존성 그래프에서도 매우 빠르게 해결책을 찾고, 실패 시에도 '''명확한 에러 메시지'''를 제공한다. > 예: `"Failed to resolve: package-a requires requests<=2.28 but package-b requires requests>=2.29"` 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림)