Gantt Chart
chartAlso known as: project timeline, schedule chart, timeline bar chart
설명 / Description
간트 차트는 작업, 이벤트, 또는 활동을 타임라인을 따라 가로 막대로 표시하며, 각 막대의 왼쪽 끝은 시작 시각을, 오른쪽 끝은 종료 시각을 나타내고, 막대의 길이는 기간을 나타냅니다. 작업은 보통 범주, 단계, 또는 자원별로 그룹화되어 세로로 쌓이며, 무엇이 언제 일어나는지, 얼마나 걸리는지, 활동이 어디서 겹치는지를 보여주는 시각적 일정표를 만들어냅니다.
A Gantt chart displays tasks, events, or activities as horizontal bars along a timeline, where each bar's left edge marks the start time, the right edge marks the end time, and the bar's length represents duration. Tasks are stacked vertically, typically grouped by category, phase, or resource, creating a visual schedule that shows what happens when, how long it takes, and where activities overlap.
이 차트는 헨리 간트(Henry Gantt)가 1910년경 산업 생산 일정을 관리하기 위해 개발했으며, 이후 프로젝트 관리를 위한 지배적인 시각화 도구가 되었습니다. 간트 차트의 강점은 시간적 관계를 즉시 눈에 보이게 만든다는 데 있습니다: 병렬 작업, 순차적 의존관계, 마일스톤, 병목 현상 모두 타임라인 위 막대의 공간적 배열에서 드러납니다. 가로 시간 축은 공통 척도를 제공하여 기간 비교를 직관적으로 만들고 작업 간 타이밍을 쉽게 읽을 수 있게 합니다.
The chart was developed by Henry Gantt around 1910 for managing industrial production schedules and has since become the dominant visual tool for project management. Its strength lies in making temporal relationships immediately visible: parallel tasks, sequential dependencies, milestones, and bottlenecks all emerge from the spatial arrangement of bars on the timeline. The horizontal time axis provides a common scale that makes duration comparison intuitive and cross-task timing easy to read.
현대의 간트 차트는 종종 의존성 화살표(다른 작업이 시작되기 전에 완료되어야 하는 작업을 표시), 진행률 표시기(작업이 얼마나 완료되었는지 표시), 마일스톤(주요 날짜를 나타내는 다이아몬드 마커), 자원 배분(할당된 사람이나 팀에 따라 막대를 색칠)을 포함합니다. 인터랙티브 버전은 드래그로 일정 재조정, 시간 척도 간 확대/축소, 접을 수 있는 작업 계층을 지원하여 강력한 계획 및 모니터링 도구가 됩니다.
Modern Gantt charts often incorporate dependency arrows (showing which tasks must complete before others can start), progress indicators (showing how much of a task is complete), milestones (diamond markers for key dates), and resource allocation (coloring bars by assigned person or team). Interactive versions support drag-to-reschedule, zoom across time scales, and collapsible task hierarchies, making them powerful planning and monitoring tools.
언제 사용하나 / When to Use
- 작업 기간, 의존관계, 마일스톤이 있는 프로젝트 일정 시각화
- Visualizing project schedules with task durations, dependencies, and milestones
- 역사적 타임라인을 따라 이벤트나 활동이 언제 발생했는지 표시
- Showing when events or activities occurred along a historical timeline
- 범주 간 프로세스의 기간과 타이밍 비교(제조 단계, 입법 회기, 임상 시험)
- Comparing the duration and timing of processes across categories (manufacturing steps, legislative sessions, clinical trials)
- 중복과 순서 파악이 중요한 작업의 계획 및 모니터링
- Planning and monitoring work where understanding overlap and sequencing is critical
- 시간에 따른 자원 배분 표시(누가 무엇을 언제 하는지)
- Displaying resource allocation across time (who is working on what, and when)
이럴 땐 피하세요 / When NOT to Use
- 연속적인 시계열 데이터의 경우 -- 선 그래프나 영역 그래프를 사용하세요
- For continuous time series data -- use a line graph or area graph
- 작업이 수백 개여서 차트가 읽을 수 없는 막대의 벽이 될 때 -- 먼저 집계하거나 필터링하세요
- When there are hundreds of tasks and the chart becomes an unreadable wall of bars -- aggregate or filter first
- 주된 질문이 타이밍보다 수량에 관한 것일 때 -- 막대 차트를 사용하세요
- When the primary question is about quantities rather than timing -- use a bar chart
- 의존관계가 복잡하고 순환적일 때 -- 대신 네트워크 기반 PERT 차트나 임계 경로 다이어그램을 사용하세요
- When dependencies are complex and cyclic -- use a network-based PERT chart or critical path diagram instead
- 특정 시점의 값을 비교할 때 -- 막대 차트나 점 도표를 사용하세요
- For comparing values at a single point in time -- use a bar chart or dot plot
구조 / Anatomy
- 작업 막대: 작업이나 이벤트마다 하나씩, 시작 시각부터 종료 시각까지 뻗은 가로 막대. 너비가 기간을 인코딩합니다.
- Task bars: Horizontal bars, one per task or event, spanning from start time to end time. Width encodes duration.
- 작업 레이블: 각 막대의 왼쪽(또는 내부)에 있는 이름이나 설명으로, 각 활동을 식별합니다.
- Task labels: Names or descriptions on the left side (or inside) each bar, identifying each activity.
- 시간 축: 날짜, 주, 월, 또는 기타 시간 단위를 보여주는 가로 축.
- Time axis: The horizontal axis showing dates, weeks, months, or other time units.
- 작업 그룹화: 단계, 범주, 또는 자원에 따라 세로로 정리된 작업으로, 그룹 헤더나 들여쓰기가 함께 쓰이는 경우가 많습니다.
- Task grouping: Tasks organized vertically by phase, category, or resource, often with group headers or indentation.
- 의존성 화살표: 한 작업의 끝과 다른 작업의 시작을 잇는 선으로, 선행 관계를 보여줍니다.
- Dependency arrows: Lines connecting the end of one task to the start of another, showing prerequisite relationships.
- 마일스톤: 주요 날짜(마감일, 검토, 산출물)에 표시되는 다이아몬드나 특수 마커.
- Milestones: Diamond or special markers at key dates (deadlines, reviews, deliverables).
- 진행률 채우기: 완료 비율을 보여주기 위해 각 막대 안에 더 진하거나 다른 색으로 채운 부분.
- Progress fill: A darker or differently colored fill within each bar showing the percentage of completion.
- 오늘 선: 일정 추적을 위해 현재 날짜를 표시하는 세로선.
- Today line: A vertical line marking the current date for schedule tracking.
변형 / Variations
- 단순 간트: 의존관계나 진행률 없이 단순 막대로 표시된 작업으로, 개요용으로 사용됩니다.
- Simple Gantt: Tasks displayed as plain bars without dependencies or progress, used for overviews.
- 의존관계가 있는 간트: 화살표가 선행 작업과 후행 작업을 연결하여 임계 경로를 보여줍니다.
- Gantt with dependencies: Arrows connect predecessor tasks to successors, showing the critical path.
- 자원 간트: 행이 작업이 아니라 자원(사람, 기계)을 나타내고, 막대는 각 자원이 무엇을 하고 있는지 보여줍니다.
- Resource Gantt: Rows represent resources (people, machines) rather than tasks; bars show what each resource is working on.
- 마일스톤 차트: 마일스톤만 표시되며(기간 막대 없음), 상위 수준의 일정 커뮤니케이션에 유용합니다.
- Milestone chart: Only milestones are shown (no duration bars), useful for high-level schedule communication.
- 워터폴 일정: 작업이 엄격하게 순차적이어서 계단 형태를 만드는 간트 차트.
- Waterfall schedule: A Gantt chart where tasks are strictly sequential, forming a staircase pattern.
- 다단계 간트: 복잡한 프로젝트 관리를 위해 작업이 접을 수 있는 계층(프로젝트 > 단계 > 작업 > 하위 작업)으로 정리됩니다.
- Multi-level Gantt: Tasks are organized into a collapsible hierarchy (project > phase > task > subtask) for managing complex projects.
코드 레퍼런스 / Code Reference
// Observable Plot - Gantt-style timeline
Plot.plot({
marks: [
Plot.barX(tasks, {
x1: "start",
x2: "end",
y: "task",
fill: "phase",
tip: true,
rx: 4
}),
Plot.ruleX([new Date("2025-01-01")], {
stroke: "red",
strokeDasharray: "4,4"
})
],
x: { type: "time", label: "Date" },
y: { label: null },
color: { legend: true, label: "Phase" },
marginLeft: 150
})