참고 사이트:

Spring Boot를 실행할 때 보면 Tomcat 이 기동되면서 Tomcat Native library를 찾을 수 없다는 내용이 표시가 됩니다. “The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path”
이 라이브러리는 Tomcat 기동시 네트워크 관련해서 옵션사항인데 적용되면 다음과 같이 동작을 하게 된다고 합니다.
- Non-blocking I/O for Keep-Alive requests (between requests)
- Uses OpenSSL for TLS/SSL capabilities (if supported by linked APR library)
- FIPS 140-2 support for TLS/SSL (if supported by linked OpenSSL library)
로컬 개발환경에서는 굳이 설정할 필요는 없지만, Tomcat 을 운영환경에 배포하려고 할 때는 사용하는 것이 좋을 것 같습니다. 여기서는 저 메시지가 눈에 거슬리므로 표시가 되지 않도록 설정을 해보도록 합니다.
MacOS 환경에서 만들어지는 모든 Tomcat 으로 구동되는 웹 프로젝트에서 인식이 되도록 하려면 라이브러리를 java.library.path 인 아래 디렉토리 중 하나에 넣어주는 것이 좋을 것 같습니다.
- Users/youngjin.oh/Library/Java/Extensions
- /Library/Java/Extensions
- /Network/Library/Java/Extensions
- /System/Library/Java/Extensions
$ brew install tomcat-native
…
CATALINA_OPTS=”$CATALINA_OPTS -Djava.library.path=/usr/local/opt/tomcat-native/lib”
…
$ sudo ln -s /usr/local/opt/tomcat-native/lib/libtcnative-1.* /Library/Java/Extensions
brew 로 tomcat-native 를 설치한 뒤에 라이브러리를 /Library/Java/Extensions 으로 심볼릭 링크를 걸어주고 프로젝트를 재기동 해봅니다.

최신 Tomcat 9.0.16 기준으로는 APR 1.2.21 로 설치하는 걸 권장한다고 나옵니다. 그대로 사용할려면 작업을 끝내고, 1.2.21 로 설치하려면 소스파일에서 컴파일을 해야 하므로 brew로 설치했던 내용은 모두 삭제를 합니다.
$ brew remove tomcat tomcat-native
$ sudo rm /Library/Java/Extensions/libtcnative-1.*
소스는 C언어로 작성되어 있고 아래 순서대로 컴파일 작업을 진행합니다.
# 사전설치
$ brew install wget apr openssl
# 설치할 곳으로 이동
$ cd /Library/Java/Extensions
# 소스 다운로드
$ sudo wget http://mirror.apache-kr.org/tomcat/tomcat-connectors/native/1.2.21/source/tomcat-native-1.2.21-src.tar.gz
# 압축해제
$ sudo tar -xvf tomcat-native-1.2.21-src.tar.gz
# 소스 이동
$ cd tomcat-native-1.2.21-src/native
# configure 설정 –with-apr, -with-java-home, –with-ssl 패스지정
$ sudo ./configure –with-apr=/usr/local/opt/apr/bin –with-java-home=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home –with-ssl=/usr/local/Cellar/openssl/1.0.2q
#컴파일
$ sudo make install
…
# 라이브러리 생성이 완료되면 심볼릭 링크를 걸어줍니다.
$ sudo ln -s /usr/local/apr/lib/libtcnative-1.* /Library/Java/Extensions
# 작업파일 삭제
$ sudo rm -rf tomcat-native-1.2.21-src*
프로젝트를 재기동하면 최신버전의 Tomcat Native 가 제대로 동작되고 있음을 알 수 있습니다. 배포 운영환경이 Linux인 경우에도 동일한 방법으로 설치가 가능합니다.
