Daily iOS
CS 기초·알고리즘

의존성 그래프와 위상 정렬

30개 모듈로 나뉜 앱에서 DI 컨테이너가 서비스들을 초기화하는데, 초기화 순서를 손으로 관리하다 "A 는 B 를 필요로 하고 B 는 A 를 필요로 한다"는 크래시가 났습니다. 의존성 그래프에서 안전한 초기화 순서를 구하는 알고리즘을 설명해 주세요.

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

의존성은 방향 그래프(DAG)로 보고, 위상 정렬(Kahn 의 진입 차수 큐 또는 DFS 후위 순서 뒤집기)로 초기화 순서를 구한다. 같은 원리가 SPM 의 모듈 그래프이며, 허브 모듈 변경이 하류 전부를 재컴파일시킨다.

받은 질문 공유