Org chart

조직도란

조직도(organizational chart)는 조직의 공식 보고 구조를 나타냅니다 — 누가 누구를 관리하는지, 어떤 팀이 어떤 리더 아래에 있는지, 미충원 역할과 외부 자문이 어디에 위치하는지. HR 팀은 인력 계획 시 이를 활용하고, 창업자들은 이사회 미팅 전에 사용하며, 운영 관리자들은 조직 개편 시 배포합니다. 일반 플로우차트와 달리 조직도는 사람(및 직책)을 기본 엔티티로 다루고, 들여쓰기나 명시적 엣지로 계층을 표현합니다.

Schematex는 일반적인 조직도 관례를 따르면서 미충원/공석 직위, 매트릭스(점선) 보고, 보조 관계를 위한 확장 기능을 제공합니다. 조직도에 대한 단일 ISO 표준은 없습니다. 여기에 구현된 관례는 HR 실무와 소프트웨어 업계 규범에서 도출되었습니다. 학술적 배경은 Fayol (1916)위키피디아 조직도 문서를 참고하세요.

orgchart·§
↘ preview
100%
Acme Corp — Q3 2025 Organizational chart with 15 people and 12 relationships Acme Corp — Q3 2025 Jamie Torres CEO Raj Patel CTO Priya Nair Engineering Lead Alex Kim Senior Engineer Jordan Lee Engineer NEW open "TBH" Frontend Engineer Omar Hassan Engineering Lead Yuki Tanaka Staff Engineer draft "TBH" Senior Engineer $ Maria Santos CFO Nour Ahmed Finance Manager Ellen Wu CPO Tyler Brooks Product Lead Suki Ito Product Lead Dr. Alan Ford Board Advisor
UTF-8 · LF · 18 lines · 878 chars✓ parsed·5.4 ms·14.8 KB SVG

1. 첫 번째 조직도 만들기

가장 간단한 조직도: 하나의 미충원 역할이 있는 3계층 계층 구조.

orgchart·§
↘ preview
100%
Engineering Team Organizational chart with 4 people and 2 relationships Engineering Team Wei Zhang CTO Sam Obi Engineering Lead Ana Rossi Engineer open "TBH" Engineer
UTF-8 · LF · 5 lines · 209 chars✓ parsed·0.6 ms·6.1 KB SVG

80%의 사용 사례를 커버하는 네 가지 규칙:

  1. orgchart 키워드로 시작하고, 선택적으로 따옴표로 묶인 제목을 추가합니다.
  2. 각 사람은 노드입니다 — id: "이름" | "직책" | "부서" [속성]. |로 이름, 직책, 부서 필드를 구분합니다.
  3. 들여쓰기가 계층을 결정합니다 — 두 칸(또는 그 이상) 들여쓰기마다 노드가 바로 위의 덜 들여쓰인 노드 아래 한 레벨 깊어집니다.
  4. open id: 또는 draft id:로 미충원 역할을 선언하고, advisor id:로 외부 자문을 선언합니다.

주석은 독립된 줄에서 #으로 시작해야 합니다 (인라인 후행 //도 제거됩니다).


2. 노드

노드 줄의 형식은 [kind] id: fields [props]입니다. id[A-Za-z][A-Za-z0-9_-]*와 일치해야 합니다.

2.1 필드 (파이프로 구분)

:과 선택적 [props] 블록 사이의 부분은 |로 분리됩니다:

alice: "Alice Zhang"                                # 이름만
alice: "Alice Zhang" | "VP Engineering"             # 이름 + 직책
alice: "Alice Zhang" | "VP Eng" | "Platform"        # 이름 + 직책 + 부서
alice: "Alice Zhang" | "VP Eng" | "Platform" | "x@co.com"  # + 정보 줄
위치내용참고
1번째이름따옴표 있거나 없어도 됨
2번째직책/직급선택 사항
3번째부서선택 사항
4번째정보 줄선택 사항; note:, email:, phone:, location: 속성으로도 설정 가능
orgchart·§
↘ preview
100%
Field count demo Organizational chart with 4 people and 2 relationships Field count demo AL Alice BO Bob "CTO" CA Carol "Engineer" DA Dave "VP Sales" "dave@co.com"
UTF-8 · LF · 5 lines · 161 chars✓ parsed·0.5 ms·4.1 KB SVG

2.2 노드 종류

ID 앞의 선택적 종류 키워드는 노드 렌더링 방식을 변경합니다:

키워드종류의미
(없음)person일반 직원
role, openrole미충원/공석 직위
draft, tbhdraft적극 채용 중이 아닌 계획된 직위
advisor, externaladvisor외부 자문, 이사회 멤버, 또는 계약직
orgchart·§
↘ preview
100%
Node kinds Organizational chart with 5 people and 2 relationships Node kinds Jordan Kim CEO Priya Nair Engineering Lead TBH Senior Engineer HIRING TBH Staff Engineer Dr. Lee Board Advisor
UTF-8 · LF · 6 lines · 289 chars✓ parsed·0.5 ms·6.4 KB SVG

2.3 노드 속성

속성은 노드 줄 끝의 [key: value, …] 안에 입력합니다.

속성효과
role:아래 표 참고아바타에 표시되는 역할 아이콘
icon:role:과 동일role:의 별칭
department:텍스트부서 필드 재정의
status:new | leaving | on-leave카드의 상태 배지
avatar-color:16진수 색상 (예: "#7B1FA2")아바타 배경색
gender:male | female아바타 실루엣 (역할 아이콘이 없을 때 사용)
note:텍스트정보 줄 (먼저 나오는 것이 우선)
email:텍스트정보 줄
phone:텍스트정보 줄
location:텍스트정보 줄
assistant-of:노드 ID이 노드를 명명된 노드의 보조로 렌더링
matrix:공백 또는 쉼표로 구분된 노드 ID해당 노드들에서 이 노드로 점선 매트릭스 줄 추가
reports:노드 ID들여쓰기 대신 명시적 부모 재정의
open(단독 플래그)노드를 공석으로 표시; role 종류 키워드와 동일
draft 또는 tbh(단독 플래그)노드를 초안으로 표시; draft 종류 키워드와 동일
external(단독 플래그)노드를 외부로 표시; advisor 종류 키워드와 동일

역할 아이콘role: 값은 표시 아이콘으로 변환됩니다. 허용 키워드 (대소문자 무시):

키워드아이콘
ceoCEO
ctoCTO
cfoCFO
cooCOO
cmoCMO
cpoCPO
vpVP
engineer, engineeringEngineer
designer, designDesigner
salesSales
hrHR
legalLegal
ops, operationsOps
marketingMarketing
productProduct
dataData
advisorAdvisor
internIntern
vacantVacant
orgchart·§
↘ preview
100%
People directory Organizational chart with 8 people and 3 relationships People directory Jamie Torres CEO Raj Patel CTO Priya Nair Staff Engineer NEW Jordan Lee Senior Engineer $ Maria Santos CFO Nour Ahmed Finance Manager ON LEAVE Dr. Alan Ford Board Advisor TBH General Counsel
UTF-8 · LF · 9 lines · 470 chars✓ parsed·0.7 ms·8.3 KB SVG

3. 계층 구조

계층은 들여쓰기로 표현합니다 — 가장 일반적인 패턴입니다. 각 노드는 바로 위의 더 적은 들여쓰기를 가진 노드의 자식이 됩니다. 탭은 두 칸으로 처리됩니다.

ceo: "CEO"
  cto: "CTO"           # ceo의 자식 (들여쓰기 2)
    eng: "Engineer"    # cto의 자식 (들여쓰기 4)
  cfo: "CFO"           # ceo의 자식 (들여쓰기 2, cto와 같은 레벨)

또는 reports: 속성을 사용해 들여쓰기에 관계없이 부모를 명시적으로 설정할 수 있습니다:

orgchart "Flat file"
ceo: "CEO"
cto: "CTO" [reports: ceo]
eng: "Engineer" [reports: cto]
orgchart·§
↘ preview
100%
Series A Startup Organizational chart with 12 people and 8 relationships Series A Startup Lena Brandt CEO James Osei CTO Platform Lead Engineering Fatima Al-Rashid Backend Engineer Marco Ricci Backend Engineer Frontend Lead Engineering Yumi Tanaka Frontend Engineer NEW open "TBH" Frontend Engineer Diana Russo CPO Chris Obi Product Manager Kai Nakamura CMO draft "TBH" Growth Marketer
UTF-8 · LF · 13 lines · 647 chars✓ parsed·0.8 ms·12.4 KB SVG

4. 엣지

두 가지 종류의 엣지가 있습니다. 대부분의 보고 라인은 들여쓰기 계층에서 자동으로 생성됩니다. 명시적으로 작성하거나 매트릭스(점선) 라인을 추가할 수도 있습니다.

연산자엣지 종류의미
from -> toreport실선 보고 라인
from -.-> tomatrix점선 매트릭스(간접) 보고 라인

명시적 엣지는 두 노드 ID가 이미 선언되어 있어야 합니다. 명시적으로 생성된 report 엣지는 들여쓰기에 의해 이미 암시된 동일 관계가 있으면 중복 생성되지 않습니다.

엣지 레이블도 지원됩니다:

pm1 -.-> design [label: "product partnership"]
orgchart·§
↘ preview
100%
Matrix org Organizational chart with 5 people and 3 relationships Matrix org design partner Ellen Wu CPO Core PM Product Manager Growth PM Product Manager Suki Ito Design Lead Ben Park Data Lead
UTF-8 · LF · 10 lines · 378 chars✓ parsed·0.7 ms·5.4 KB SVG

5. 구성

config: 줄로 레이아웃과 방향을 조정합니다. 각 항목은 별도의 줄에 작성합니다.

구성 키기본값효과
directionTD, LRTD상하 또는 좌우 흐름
layouttree, list, directory, compacttree시각적 레이아웃 모드

레이아웃 참고:

  • tree — 분기 커넥터가 있는 표준 계층 트리. 대부분의 조직도에 최적.
  • list / directory / compact — 컴팩트한 들여쓰기 디렉토리 뷰. 트리 분기가 복잡해지는 대규모 인원 목록에 유용.

Tree 레이아웃 (기본) — 분기 커넥터와 부서 색상 코딩이 있는 아바타 카드. 약 30명 이하의 팀에 최적.

orgchart·§
↘ preview
100%
Acme Engineering — tree Organizational chart with 8 people and 5 relationships Acme Engineering — tree Wei Zhang CTO Platform Lead Engineering Amara Diallo Staff Engineer Ben Novak Senior Engineer draft "TBH" Engineer Growth Lead Engineering NEW Fatima Al-Rashid Senior Engineer Marco Ricci Engineer
UTF-8 · LF · 9 lines · 454 chars✓ parsed·0.8 ms·10.4 KB SVG

List 레이아웃 — 들여쓰기 가이드가 있는 컴팩트 디렉토리 행. 트리 분기가 복잡해지는 대규모 팀에 최적.

orgchart·§
↘ preview
100%
Engineering Directory — list Organizational directory with 8 people and 5 reporting relationships Engineering Directory — list · Wei Zhang CTO PT Platform Team 3 reports · Amara Diallo Staff Eng · Ben Novak Senior Eng · draft "TBH" Engineer GT Growth Team 2 reports · Fatima Al-Rashid Senior Eng · Marco Ricci Engineer
UTF-8 · LF · 10 lines · 421 chars✓ parsed·1.6 ms·8.4 KB SVG

6. 레이블과 주석

  • 제목: orgchart "Acme Corp" — 첫 번째 줄에만.
  • 이름 필드: 콜론 이후 첫 번째 파이프 구분 필드; 따옴표 있거나("Alice Zhang") 없어도 됨(Alice).
  • 직책/부서 필드: 두 번째와 세 번째 파이프 구분 필드.
  • 정보 줄: 네 번째 파이프 구분 필드, 또는 note:, email:, phone:, location: 속성으로 설정. 먼저 나오는 것이 우선.
  • 주석: 줄 시작의 # (선행 공백 허용). 인라인 //도 제거됩니다.

7. 예약어와 이스케이프

줄 시작 시 예약: orgchart (헤더), config:, role, open, draft, tbh, advisor, external.

예약 연산자 토큰 — ID 안에 이 시퀀스를 피하세요: ->, .->

ID 규칙: [A-Za-z][A-Za-z0-9_-]*와 일치해야 합니다. 공백이 있는 이름은 ID가 아닌 따옴표로 묶인 이름 필드에 입력합니다.

공백이 있는 문자열 (예: department: "Platform Eng")은 큰따옴표로 묶어야 합니다.


8. 자주 발생하는 실수

작성한 내용파서 반응수정 방법
alice: Alice Zhang (공백이 있는 따옴표 없는 이름)Alice를 이름으로 파싱하고, Zhang은 누락되거나 잘못 읽힘이름에 따옴표 추가: alice: "Alice Zhang"
open1 open: "TBH"ID 뒤의 open은 종류 키워드가 아님; ID 정규식 실패종류 키워드가 먼저 와야 함: open open1: "TBH"
노드가 선언되기 전에 alice -> bobOrgchartParseError: Edge references unknown node먼저 노드를 선언하고, 엣지는 마지막에 작성
config: direction = top-down알 수 없는 값으로 무시; direction이 TD로 유지됨TD 또는 LR 사용
config: layout = compact허용됨 — list 레이아웃으로 매핑맞습니다; compact, directory, list 모두 작동
alice [matrix: bob charlie]matrix:의 공백 구분 ID — 둘 다 추가됨쉼표로도 작동: matrix: "bob, charlie"
공백이 있는 노드 ID: fe lead파서가 fe를 ID로 취함; lead 실패밑줄 사용: fe_lead
중복 IDOrgchartParseError: Duplicate node id각 노드에 고유한 ID 필요

9. 문법 (EBNF)

document       = header (blank | comment | config | edge | node)*

header         = "orgchart" ( WS quoted-string )? NEWLINE
quoted-string  = '"' any-char-but-quote* '"'

config         = "config" WS ":" WS key WS "=" WS value NEWLINE
key            = "direction" | "layout"

node           = INDENT* kind? id ":" WS fields ( "[" node-attrs "]" )? NEWLINE
kind           = "role" | "open" | "draft" | "tbh" | "advisor" | "external" | "person"
fields         = field ( "|" field )*
field          = quoted-string | unquoted-text
node-attrs     = node-attr ("," node-attr)*
node-attr      = "role:" role-keyword
               | "icon:" role-keyword
               | "department:" text
               | "status:" ( "new" | "leaving" | "on-leave" )
               | "avatar-color:" quoted-hex
               | "gender:" ( "male" | "female" )
               | "note:" text
               | "email:" text
               | "phone:" text
               | "location:" text
               | "assistant-of:" id
               | "matrix:" id-list
               | "reports:" id
               | bare-flag

bare-flag      = "open" | "draft" | "tbh" | "external"

edge           = id WS edge-op WS id ( "[" edge-attrs "]" )? NEWLINE
edge-op        = "->" | ".->"  // -.-> for matrix
edge-attrs     = "label:" quoted-string

id             = [A-Za-z] [A-Za-z0-9_-]*
comment        = ( "#" | "//" ) any NEWLINE

권위 있는 소스: src/diagrams/orgchart/parser.ts. 이 문서와 파서가 다를 경우 파서가 우선입니다 — 이슈를 열어주세요.


10. 로드맵

계획 중 — 아직 파싱 불가. 오늘 생성된 DSL에서 이것들을 사용하지 마세요; 파서가 거부하거나 무시합니다.

  • assistant-of: 시각적 렌더링 — 속성은 파싱되어 AST에 저장되지만 렌더러가 아직 보조 팔꿈치 커넥터를 그리지 않습니다.
  • Config coloring — 부서 기반 색상 테마 (coloring: department).
  • Config compact 크기 단계 — 명시적 카드 크기 제어 (size: small | medium | large).
  • span: 노드 너비 — 트리 레이아웃에서 노드가 여러 형제 열에 걸쳐 표시.
  • 사진 / 아바타 URLavatar: "https://…"로 실제 사진 표시.
  • HRIS 형식으로 내보내기 — SVG 외에 JSON/CSV 구조적 출력.

더 빨리 필요하다면 GitHub 이슈에서 추적하세요.


관련 예시

예시 갤러리에서 바로 사용 가능한 시나리오:

orgchart·§ HR convention
Acme — Series A Team Organizational chart with 15 people and 13 relationships Acme — Series A Team Jamie Torres CEO Raj Patel CTO Priya Nair Eng Lead Alex Kim Senior Engineer Jordan Lee Engineer NEW open "TBH" Frontend Engineer Omar Hassan Eng Lead Yuki Tanaka Staff Engineer draft "TBH" Senior Engineer Ellen Wu CPO Tyler Brooks Product Lead Suki Ito Product Lead Maria Santos COO Nour Ahmed Finance Manager Dr. Alan Ford Board Advisor
Series-A tech startup org
Three-level org chart for a ~30-person Series-A startup — CEO with engineering, product, and ops directs, showing open roles and a board advisor.
saas
orgchart·§ HR convention
Scaleup — Matrixed Product Lines Organizational chart with 14 people and 17 relationships Scaleup — Matrixed Product Lines Jamie Torres CEO Raj Patel CTO Priya Nair Eng Lead Alex Kim Senior Engineer Jordan Lee Engineer Omar Hassan Eng Lead Yuki Tanaka Staff Engineer Maya Patel Engineer Ellen Wu CPO Tyler Brooks PM Suki Ito PM Liu Wei CDO Ana Rossi Designer Kai Park Designer
Scale-up with matrix reporting
Org chart for a 60-person scale-up with two product lines — solid-line functional reporting plus dotted-line product-manager reporting into each engineering lead.
saas

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.