태그 보관물: java

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

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

ClearLinux에 Tomcat 설치하기

2019년 3월 현재, Clear Linux에서는 Tomcat이 bundle로 제공되지 않기  때문에 수동으로 설치해야 한다. 이 포스트는 Clear Linux에 수동으로 Tomcat을 설치하기 위한 과정에 관한 것이다.

Java Runtime 설치

Tomcat을 실행하기 위해서는 Java runtime이 시스템에 설치 되어 있어야 한다. 만약 없다면 다음 명령어로 설치해 준다.

$ sudo swupd bundle-add java-runtime

Starting download of remaining update content. 
This may take a while...         ...100% 
Finishing download of update content... 
Installing bundle(s) files...         ...100% 
Calling post-update helper scripts. 
Successfully installed 1 bundle

Java runtime을 설치한 후에는 버전명에 관계없이 접근할 수 있도록 보다 잘 알려진 경로인 /usr/lib/jvm/java로 링크를 생성해 주고 JAVA_HOME 환경 변수를 설정해 준다.

$ sudo ln -s /usr/lib/jvm/java-<VERSION>-openjdk /usr/lib/jvm/java

$ edit /etc/profile # or ~/.bashrc
# JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java

Tomcat 다운로드 및 설치

설치된 Java runtime에 맞게 Tomcat download page에서 적절한 binary distribution을 download받고 설치해준다. Tomcat website에 있는 Which version? 항목을 보면 아래와 같이 표가 나오는데,  “Supported Java Version”을 참고해서 적합한 “Apache Tomcat Version”을 선택하면 된다. 예를 들어, OpenGrok의 경우 Java 1.8이 requirement이므로, Tomcat version 9.0.x이상을 선택하면 된다.

다음과 같이 Tomcat을 download 받고 /opt/tomcat에 풀어 준다.

$ wget https://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz
$ sudo mkdir /opt/tomcat
$ sudo tar xvzf ./apache-tomcat-9.0.12.tar.gz -C /opt/tomcat --strip-components=1 

사용자 설정

/opt/tomcat/conf/tomcat-users.xml 파일을 편집해서 다음과 같이 Tomcat user를 추가해 준다. 아래의 설정은 가장 단순하게 access control하기 위한 설정으로 ‘tomcat’이라는 id를 추가하기 위한 것이다.

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
  version="1.0">
  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <user username="tomcat" password="비밀번호(password)" roles="manager-gui,admin-gui"/>
</tomcat-users>

결과확인

모든 설정이 끝났다면 Tomcat을 설치한 머신에서  http://localhost:8080/manager/html 주소에 접근해서 Tomcat 서버 설정을 관리 할 수 있다. ID와 password를 묻는 prompt가 뜨면 위의 tomcat-users.xml에서 설정한것 처럼 ID/비밀번호(tomcat/비밀번호(password)를 입력한다.

Remote Access 허가

Tomcat 관리자 page를 접근할 때 localhost가 아닌 remote에서 접속을 시도하면 403 access denied 오류가 뜰 수 있다. Localhost외에서도 tomcat 관리자 page 접근을 허용하려면 아래 경로에 있는 context.xml file의 allow= 부분을 수정해서 모든 IP를 받아들이도록 변경해 주면된다. context.xml은 여러개 있으니 경로에 주의.

/opt/tomcat/webapps/manager/META-INF/context.xml

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
  allow="\d+.\d+.\d+.\d+" />

<Manager
sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filter
s\.CsrfPreventionFilter\$\
LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>