카테고리 보관물: Tools & Tips

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을 추가하면 오류없이 설치되어 사용할 수 있다.

복붙의 함정, 디렉토리를 삭제할 수 없다?

매우 간단한 디렉토리 생성 명령어가 의도대로 동작하지 않고 실패했다. 왜 일까?

ls 명령어의 결과를 보면 알 수 있는데, 부모 디렉토리를 생성하는 -p 옵션이 동작하지 않고 디렉토리로 생성되어 버렸다. 그 다음으로 존재하지 않는 ~/docker/shared 디렉토리를 생성하려고 했으니 명령어가 실패한 것이다.

mkdir 명령어는 사실 어딘가에서 복사 붙여넣기 한 것인데, 이렇게 잘 못 생성된 디렉토리는 왠만해서 삭제가 되지 않는다.

rm -r "./-p"
rm -r -- "./-p"

그 이유는 -p에 붙어 있는 -가 ASCII가 아닌 Unicode U+2013이기 때문인데, 이를 삭제하려면 LC_ALL=C를 앞에 붙여서 임시로 Locale을 변경해 8진수로 표시되는 Unicode 값을 확인하고 그 이름으로 명령어를 입력 하면된다.

rm -r -- ''$'\342\200\223''p'