Mac OS X에 PlantUML 환경설정

예전에 포스팅 했던 내용 처럼 PlantUML은 on-premise 서버에서도 사용이 가능하지만, Visual Studio Code에서 제공되는 PlantUML extension을 사용하면 Tomcat같은 JSP서버를 별도로 설치할 필요가 없어서 IDE를 벗어나지 않고도 개발을 진행 하면서 관련내용을 스케치하기에 무척 편하다.

Linux에서도 마찬가지 이지만 Max OS X에서 Visual Studio Code PlantUML extension을 사용하려면 Java와 Graphviz가 설치되어 있어야 한다.

Java는 이미 잘 문서화 되어 있으니 내 Mac에 Java를 설치하려면 어떻게 하나요?와 같은 문서를 참조하면 된다.

Mac OS X에서 Graphviz는 HomeBrew 혹은 MacPort를 통해 설치할 수 있다. 나는 MacPorts를 사용하고 있으므로 다음 명령으로 설치했다.

sudo port selfupdate
sudo port install graphviz

PlantUML은 Graphviz없이도 sequence diagram은 그릴 수 있지만, class diagram를 그리려면 Graphviz가 있어야 한다. 다음과 같은 간단한 시험용 PlantUML 문서를 하나 작성하고 동작을 확인해 본다.

@startuml
testdot
@enduml

설정이 잘되어 있다면 다음과 같이 보이고 것이고, 문제가 있다면 관련된 오류가 표시된다.

MacPorts: Orange3 Text Add-on 추가할 때 오류

오래된 Intel Mac은 Monterey이후 업데이트가 지원되지 않기 때문에 최신 버전의 Homebrew도 사용할 수가 없다. 이 때문에 MacPorts를 사용하는데 Orange3에 Text add-on을 설치를 시도할 때 Arch Linux에서와 같은 gensim버전 문제가 생겼다(참조: Arch Linux에서 Orange3 Text add-on 설치문제 해결).

2025년 10월 현재 최신버전인 gensim 4.3.3의 Python version 불일치 때문에 발생하는 문제인데, Arch Linux에서는 이 문제를 Python3.13대신 Python3.12의 가상환경을 만드는 것으로 해결 했었다.

MacPorts환경에서의 default python version을 확인해 보면 오래된 3.6을 가리키고 있는데, Python3.12를 설치해 준 다음 default python version을 3.12로 변경해서 이 문제를 해결할 수 있다.

먼저 MacPorts로 Python3.12를 설치해준다.

# Python3.12 설치
sudo port install python312

그리고 나서 default로 실행되는 python / python3 명령어를 Python3.12로 변경한다.

# python과 python3 명령어에 대한 인터프리터 지정
$ sudo port select --set python3 python312
Selecting 'python312' for 'python3' succeeded. 'python312' is now active.

$ sudo port select --set python python312 
Selecting 'python312' for 'python' succeeded. 'python312' is now active.

# 확인
$ port select --list python 
Available versions for python:
	none
	python312 (active)
	python313

이제, Orange3를 재실행하고 Text add-on을 추가하면 오류없이 설치되어 사용할 수 있다.

Orange3 Text Add-On 추가할 때 빌드오류

Orange3에 Text Add-on을 추가하는 도중 SciPy를 빌드하려 시도하는데 오류가 발생한다. Fortran을 비롯한 의존성이 만족되지 않아서 발생하는 문제인데 여러건의 빌드 오류를 피하려면 SciPy의 Building from Source를 참고해서 필요한 패키지를 미리 설치해 줄 수 있다. ArchLinux의 경우 필요한 패키지는 다음과 같다.

sudo pacman -S gcc-fortran openblas pkgconf base-devel python-setuptools

그리고 나서 필요한 Python package를 설치해주고 재실행한다.

pip install Cython Orange3-text

의존성있는 패키지 중 하나인 gensim은 최신 버전인 4.3.3과 Python3.13의 호환성 문제로 2025년 10월 현재 Python3.13에서 빌드되지 않는다. 그래서 yay로 3.12를 설치하고 가상환경을 새로 만들어서 설치를 진행해 주었다.

OS: ArchLinux
Python: 3.12
PyQt5: 5.15.11
PyQtWebEngine: 5.15.7
scipy: 1.13.1
gensim: 4.3.3
Orange3: 3.39
Orange3-Text: 1.16.3

그나저나 “Fortran이라니, 되게 오래된 코드에 의존성이 있는 건가?”하고 살펴봤더니 은퇴는 커녕 OOP까지 지원하면서 Modern Fortran이라는 이름으로 고성능컴퓨팅(HPC)에서는 짱짱한 현역으로 뛰고 있었다. Workgroup의 활동을 보면 2020년대에 2023에 이은 두번째 표준안을 준비하고 있는 모양이다.