> [!abstract] Introduction > 이번 글에서는 프로젝트에 필요한 업무들이 어떤 순서로 실행되어야 하는지 파악하기 위한 방법 중 하나인 CPM(Critical Path Method)를 알아봅니다. # CPM CPM(Critical Path Method)는 프로젝트에 소요되는 최소 시간을 추산하기 위해 사용되는 방법이며 스케줄 모델의 논리적 네트워크에 존재하는 유연성(여유분)을 결정하는 방법이기도 하다. CPM은 핵심 경로*Critical Path*를 구하기 위한 것이기도 한데, 여기서 핵심 경로란 일정에 따라 배치된 활동들이 형성하는 가장 긴 경로를 의미한다. 이것만 보면 감이 잘 오지 않을 테니 예시를 같이 살펴보자. ![[ExampleOfCriticalPathMethod.png]] 위 다이어그램은 CPM에 대한 예시다. CPM을 통해 핵심 경로를 구하기 위해서는 우선 각 활동마다 구해야 할 값들이 있다. - Early Start(ES): 해당 활동을 시작할 수 있는 가장 이른 시간. - Early Finish(EF): 해당 활동을 끝낼 수 있는 가장 이른 시간. - Late Start(LS): 해당 활동을 시작할 수 있는 가장 늦은 시간. - Late Finish(LF): 해당 활동을 끝낼 수 있는 가장 늦은 시간. - Duration: 해당 활동의 소요 시간. ES와 EF를 구하기 위해서는 Forward Pass를 구하고, LS와 LF를 구할 때는 Backward Pass를 구하면 된다. ## Forward Pass Forward Pass는 프로젝트의 시작점에서 출발해 각 활동을 시작하고 끝낼 수 있는 가장 빠른 시간을 구한다. 예를 들어, 활동 A의 ES 값이 1이고 활동 A의 소요 시간*Duration*이 3일이라면 $EF = ES + Duration - 1$이기 때문에 활동 A의 EF 값은 3이 된다. ## Backward Pass Backward Pass는 프로젝트가 종료되는 시점에서 출발해 각 활동을 시작하고 끝낼 수 있는 가장 늦은 시간을 구한다. 예를 들어, 만약 어떤 활동을 10일까지는 끝내야 한다면 그 활동의 LF 값은 10이다. 이 활동의 소요 시간이 4라면, $LS = LF - Duration + 1$이기 때문에 그 활동은 아무리 늦어도 7일에는 시작해야 프로젝트가 지연되지 않는다. ## Total Float 지금까지 구한 것은 바로 프로젝트를 최대한 앞당겨 실행할 수 있는 날짜와 프로젝트를 최대한 미룰 수 있는 날짜다. 이 둘의 차이가 바로 Total Float이며, 이 값은 여러가지 의미를 지닌다. 1. 핵심 경로는 Total Float가 0인 업무들을 이은 것이다. 맨 처음 제시된 다이어그램에서 A-C-D는 모두 Total Float가 0이기 때문에 핵심 경로를 이룬다. 핵심 경로에 속하는 업무들은 일정에 맞게 처리해야 한다. 2. 만약 업무들을 이어 네트워크를 만들었을 때 Total Float가 양수라면, 이러한 업무들은 어느정도 시간을 두고 처리해도 된다는 뜻이다. 3. 만약 네트워크의 Total Float가 음수라면, 예상보다 업무를 빨리 처리해야 하기 때문에 업무 처리 속도를 높이기 위한 방법들을 고려해야 한다. Total Float는 그 자체로 프로젝트의 일정을 조정할 수 있는 폭을 나타내기 때문에 핵심 경로를 구하는 것 외에도 일정의 유연성을 측정하는 데도 사용한다. 실제로는 핵심에 가까운*near-critical* 경로가 여러 개 있으며, 이를 위해 다양한 소프트웨어 도구들이 각 경로의 중요도*criticality*를 계산하는 기능을 제공한다. --- # 출처 - PMI, Project Management Institute (ed.) (2025) _A Guide to the Project Management Body of Knowledge (PMBOK® Guide) -- Eighth Edition and the Standard for Project Management_. 8th ed. Chicago: Project Management Institute (PMBOK® Guide Series).