사용 환경과 개발 환경이 동일하지 않으면 결과물이 오작동할 가능성이 커진다. 이 때문에 이클립스에서 자바 버전과 외부 JAR 파일을 등록시켜 두 환경을 맞춰주는 작업이 필요하다.
사용 환경과 개발 환경을 맞춰야 하는 이유
와우자 스트리밍 엔진(Wowza Streaming Engine, 이하 와우자) 같은 미션 크리티컬(Mission Critical) 어플리케이션들은 기반이 되는 라이브러리와 실행 환경을 쉽게 변경하지 않는 특징이 있다. 사용자 역시 현재 사용하는 기능이 안정적으로 동작하고 있다면, 굳이 새로운 버전으로 업데이트하지 않으려는 경향이 있다.
와우자는 자바(Java)를 기반으로 제작된 어플리케이션으로, 애드온 모듈들 역시 자바로 작성된다. 자바 버전 8까지는 수년 단위로 업데이트가 이루어졌지만, 버전 9 이후로는 반기(6개월)마다 새 버전이 나오고 있으며, LTS(Long Term Support) 버전도 약 2년 단위로 새 버전이 나온다.
새로 설치한 개발 도구와 IDE는 기본적으로 최신 환경에 맞춰지는 경우가 많다. 하지만 실제 운영 중인 시스템은 구 버전 환경에서 동작하는 경우가 많기 때문에, 최신 개발 환경에서 컴파일한 모듈이 기존 서버에서 돌아가지 않을 수 있다.
때문에 와우자 확장 모듈같이 특정 프로그램과 연동되는 애드온을 개발할 때는 최신 개발 환경을 그대로 사용하는 것이 아니라, 실제 운영 중인 시스템의 자바 버전과 라이브러리 환경에 맞춰 개발 환경을 다시 구성해 주는 과정이 필요하다.
자바 버전 확인과 라이브러리 확보
와우자는 버전마다 사용하는 자바 버전도 약간씩 차이가 있다. 와우자 웹 UI에 접속하여 Server – About 을 클릭하면 현재 사용 중인 자바 버전을 확인할 수 있다.

와우자의 라이브러리는 보통 [와우자 설치 경로]\lib\에 보관되어 있다. 해당 디렉토리에 접근해 보면 아래와 같이 jar 파일들이 옹기종기 모여 있는 것을 확인할 수 있다.
eqmaker@wowza:/usr/local/WowzaStreamingEngine/lib$ ls -l
total 61476
-rwxr-xr-- 1 eqmaker group 12767 Oct 4 2023 annotations-2.17.107.jar
-rwxr-xr-- 1 eqmaker group 73854 Oct 4 2023 apache-client-2.17.107.jar
-rwxr-xr-- 1 eqmaker group 49275 Oct 4 2023 api-common-1.10.1.jar
-rwxr-xr-- 1 eqmaker group 15834 Oct 4 2023 arns-2.17.107.jar
-rwxr-xr-- 1 eqmaker group 147774 Oct 4 2023 auth-2.17.107.jar
-rwxr-xr-- 1 eqmaker group 6589 Oct 4 2023 auto-value-annotations-1.7.4.jar
-rwxr-xr-- 1 eqmaker group 119677 Oct 4 2023 aws-core-2.17.107.jar
-rwxr-xr-- 1 eqmaker group 69816 Oct 4 2023 aws-query-protocol-2.17.107.jar
-rwxr-xr-- 1 eqmaker group 96849 Oct 4 2023 aws-xml-protocol-2.17.107.jar
-rwxr-xr-- 1 eqmaker group 666763 Oct 4 2023 azure-storage-2.2.0.jar
-rwxr-xr-- 1 eqmaker group 4189874 Oct 4 2023 bcprov-jdk15on-1.60.jar
-rwxr-xr-- 1 eqmaker group 5852 Oct 4 2023 checker-compat-qual-2.5.5.jar
-rwxr-xr-- 1 eqmaker group 67815 Oct 4 2023 classmate-1.5.1.jar
-rwxr-xr-- 1 eqmaker group 58284 Oct 4 2023 commons-cli-1.5.0.jar
-rwxr-xr-- 1 eqmaker group 353793 Oct 4 2023 commons-codec-1.15.jar
... (이하 생략) ...
자신이 사용하는 라이브러리를 정확히 알고 있다면 해당 파일만 콕 찍어 복사해 오는게 제일 깔끔하지만, 분명 빠뜨리는 것들이 생긴다. 그냥 맘 편하게 디렉토리에 있는 모든 jar 파일들을 복사해 오는 편이 낫다.
참고로, 와우자 버전이 동일하더라도 리눅스 환경과 윈도우 환경의 와우자의 jar 파일에는 차이가 있는 것으로 보인다. 본 필자가 HLStoYTB 모듈을 개발하던 도중, 윈도우 환경에 설치된 와우자의 jar 파일들을 이용해 개발한 뒤 이를 리눅스 와우자에 적용했더니 정상 동작이 이루어지지 않은 적이 있었다. 이후 리눅스 환경에 설치된 와우자의 jar 파일들을 이용해 다시 컴파일하니 정상적으로 동작했다.
이클립스의 자바 버전 선택 및 jar 파일 추가 방법
라이브러리를 확보하고 와우자가 사용하는 자바 버전을 확인했다면, 이클립스(Eclipse)에서 프로젝트가 사용할 자바 버전을 맞춰주고 복사해 온 jar 파일들을 등록해 줄 차례다. 아무 생각 없이 최신 버전으로 컴파일하면 실제 운영 중인 와우자 서버에서 동작하지 않을 수 있기 때문에, 서버에서 사용하는 자바 버전에 맞춰 개발 환경도 동일하게 구성해야 한다.
- 신규 프로젝트의 생성
먼저, 새롭게 프로젝트를 생성해 준다. 메뉴에서 File → New → Java Project 를 순서대로 선택해 신규 프로젝트를 생성해 준다.

- 사용할 JRE 버전 선택
프로젝트 이름을 입력한 다음, Use an execution environment JRE항목에서 사용해야 하는 자바 버전을 선택해 준다. 예를 들어 와우자가 Java 10 기반이라면 JavaSE-10을 선택한다.

- 프로젝트의 생성
Finish를 눌러 프로젝트를 생성해 준다.
- 프로젝트 설정 메뉴 열기
화면 왼쪽 Package Explorer에 추가된 프로젝트 이름을 마우스 우 클릭해 프로젝트 메뉴를 띄우고 Properties를 선택해 준다.

- 컴파일러 설정 재 확인
프로젝트 메뉴에서 Java Compiler를 선택해 앞서 설정한 자바 버전과 선택된 컴파일러의 버전이 맞는지 다시 확인한다.

- jar 파일 추가 메뉴 열기
프로젝트 메뉴에서 Java Build Path를 선택하고 Classpath를 선택한 다음 Add External JARs…를 선택해 준다. 와우자 확장 모듈은 일반적인 Java Module System이 아닌 전통적인 Classpath 기반으로 동작하기 때문에, Modulepath가 아니라 반드시 Classpath에 추가해 주어야 한다.

- 와우자 jar 파일 선택
와우자에서 복사한 jar 파일들이 있는 경로로 이동해 모든 파일을 선택하고 열기를 눌러준다.

- 설정 적용
jar 파일들이 Classpath에 추가된 것을 확인하고 Apply and Close를 선택해 적용하고 저장해 준다.
