기본 틀
@startuml Alice -> Bob : 안녕 @enduml모든 다이어그램은 @startuml 로 시작해 @enduml 로 끝납니다(마인드맵은 @startmindmap …)
' 한 줄 주석' 로 시작하는 줄은 주석
title 제목다이어그램 제목
PlantUML 은 글로 쓴 코드로 다이어그램을 그리는 도구입니다. 기본 문법과 DocLoom puml 편집기의 사용법, 기본 제공 예제를 정리했습니다.
도형을 마우스로 배치하는 대신 Alice -> Bob : 안녕 처럼 관계를 글로 적으면 시퀀스·클래스·유스케이스·상태·액티비티 같은 다이어그램이 자동 배치되어 그려집니다. 코드가 곧 원본이라 고치기 쉽고, 텍스트라서 변경 내역을 비교하기도 좋습니다. DocLoom 은 .puml 파일로 저장하며, 그림은 PlantUML 엔진을 이 브라우저 안에서 실행해 그립니다. 코드는 서버로 보내지 않습니다.
@startuml 로 시작해 @enduml 로 끝나야 합니다(마인드맵은 @startmindmap 처럼 종류별 짝이 있습니다).@startuml
Alice -> Bob : 안녕
@enduml모든 다이어그램은 @startuml 로 시작해 @enduml 로 끝납니다(마인드맵은 @startmindmap …)
' 한 줄 주석' 로 시작하는 줄은 주석
title 제목다이어그램 제목
participant 서버참여자(actor·database·boundary·control·entity·queue 도 가능)
participant "긴 이름" as L긴 이름에 별칭 붙이기
A -> B : 요청실선 화살표 (--> 점선, ->> 얇은 화살, ->x 실패)
alt 성공
A -> B : ok
else 실패
A -> B : 오류
end분기 (opt·loop·par·group 도 같은 모양)
note right of A : 메모노트 (left/right/over)
activate A
deactivate A활성 구간
autonumber메시지 번호 자동 매기기
class 이름 {
+필드 : String
+메서드()
}클래스(+ public, - private, # protected)
A <|-- B상속 (B 가 A 를 상속)
A *-- B합성 (o-- 집합, --> 연관, ..> 의존)
A "1" --> "0..*" B : 설명다중도와 설명
interface I
enum E인터페이스·열거형
actor 사용자
usecase (로그인) as UC1
사용자 --> UC1유스케이스
[웹] --> [서버] : HTTP컴포넌트 (대괄호)
[*] --> 대기
대기 --> 실행 : 시작
실행 --> [*]상태 전이 ([*] 는 시작/끝)
start
:단계;
stop시작·단계·끝
if (조건?) then (예)
:가;
else (아니오)
:나;
endif분기
while (계속?)
:반복;
endwhile반복
@startmindmap
* 중심
** 가지
@endmindmap마인드맵 (별표 개수 = 깊이)
@startgantt
[작업] lasts 5 days
@endgantt간트
@startjson
{"a": 1}
@endjsonJSON 시각화
entity 고객 {
*id : int
}ER 엔티티
skinparam monochrome true흑백 (툴바 "스킨" 으로도 고를 수 있음)
skinparam defaultFontName Noto Sans KR글꼴 지정 — 직접 쓰면 툴바 글꼴보다 우선합니다
!theme cerulean내장 테마(plain·cerulean·cyborg·minty …). 파일·URL include 는 지원하지 않습니다
A -[#red]> B : 빨간 화살표화살표 색
rectangle 이름 #lightblue요소 배경색
오른쪽 그림의 요소를 클릭하면 해당 코드 줄로 이동하고, 더블클릭하면 글자를 바로 수정하며, Delete 로 삭제하고, 우클릭(또는 도구 모음의 "추가")으로 요소를 더할 수 있습니다. 이런 이미지 편집은 한 번의 실행 취소(Ctrl+Z)로 되돌아갑니다. 지원 범위는 다이어그램 종류마다 다르고, 편집기의 도움말 > "문법 치트시트·편집 지원 범위"에 표로 있습니다. 코드를 방금 고쳐 그림이 아직 최신이 아닐 때는 이미지 편집이 잠깁니다.
skinparam defaultFontName 이름 을 직접 쓰면 그 글꼴이 우선합니다. !theme 의 내장 테마는 쓸 수 있지만 파일·URL include 는 지원하지 않습니다.