이클립스에서 자바 버전을 선택하고 외부 JAR 라이브러리를 Classpath에 등록하면, 특정 실행 환경에 맞는 자바 프로젝트를 구성할 수 있다. 이 글에서는 와우자 모듈 개발을 예로 들어 운영 서버의 Java 버전과 라이브러리를 확인하고 이클립스 개발 환경에 적용하는 절차를 설명한다.
사용 환경과 개발 환경을 맞춰야 하는 이유
와우자 스트리밍 엔진(Wowza Streaming Engine, 이하 와우자) 같은 미션 크리티컬(Mission Critical) 어플리케이션은 안정성을 위해 라이브러리와 실행 환경을 쉽게 변경하지 않는다. 사용자 역시 기능이 안정적으로 동작한다면 업데이트를 미루는 경향이 있다. 그런 상태로 20년이 흐르기도 한다.
와우자와 확장 모듈은 자바(Java)를 기반으로 동작한다. 자바는 JDK 10부터 6개월 주기로 새 기능 버전이 나오지만, 운영 중인 와우자가 항상 최신 자바를 사용하는 것은 아니다.
따라서 와우자 확장 모듈을 개발할 때는 운영 서버의 자바 버전과 라이브러리에 맞춰 개발 환경을 구성해야 한다. 더 높은 버전으로 컴파일하면 모듈을 불러오는 과정에서 클래스 버전 오류가 발생할 수 있다.
자바 버전 확인과 라이브러리 확보
와우자 웹 UI에서 Server → About을 선택하면 현재 서버가 사용하는 자바 버전을 확인할 수 있다. 개발 프로젝트에는 이 버전과 호환되는 JDK를 설치해야 하며, 이클립스에서 실행 환경만 선택한다고 JDK 설치까지 이루어지는 것은 아니다.

와우자의 라이브러리는 [와우자 설치 경로]/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 파일만 복사하는 편이 깔끔하다. 그러나 의존성을 빠뜨리면 컴파일 오류가 발생할 수 있으므로, 본 필자는 개발 대상 서버의 lib 디렉토리를 별도의 개발용 디렉토리로 통째로 복사해 등록한다.
본 필자가 HLStoYTB 모듈을 개발할 때, 윈도우 와우자의 JAR 파일로 컴파일한 모듈은 리눅스 와우자에서 정상적으로 동작하지 않았다. 적용 대상인 리눅스 서버의 JAR 파일로 다시 컴파일하자 정상적으로 동작했다.
이 사례를 모든 운영체제에 일반화할 수는 없지만, 배포 대상 서버와 동일한 버전·운영체제의 라이브러리를 사용하면 시행착오를 줄일 수 있다.
이클립스의 자바 버전 선택 및 JAR 파일 추가 방법
라이브러리를 확보하고 와우자가 사용하는 자바 버전을 확인했다면, 이클립스(Eclipse)에서 프로젝트가 사용할 실행 환경과 컴파일러 버전을 맞추고 복사한 JAR 파일을 등록할 차례다. 최신 JDK로 무심코 컴파일하면 실제 운영 중인 와우자 서버에서 모듈을 불러오지 못할 수 있으므로, 배포 대상 서버가 사용하는 자바 버전을 기준으로 프로젝트를 구성한다.
- 신규 프로젝트 생성
먼저 새 프로젝트를 생성한다. 메뉴에서 File → New → Java Project를 차례로 선택한다.

와우자 모듈 개발을 위한 Eclipse Java 프로젝트 생성 - 사용할 실행 환경 선택
프로젝트 이름을 입력한 다음 Use an execution environment JRE 항목에서 배포 대상에 맞는 자바 버전을 선택한다. 예를 들어 와우자가 Java 10을 사용한다면 JavaSE-10을 선택한다. 해당 실행 환경에 연결할 호환 JDK가 이클립스에 등록되어 있지 않다면, 먼저 Installed JREs 설정에서 JDK를 추가해야 한다.

Java 실행 환경 선택 - 프로젝트 생성 완료
Finish를 눌러 프로젝트 생성을 완료한다.
- 프로젝트 설정 메뉴 열기
화면 왼쪽 Package Explorer에 추가된 프로젝트 이름을 마우스 오른쪽 버튼으로 클릭하고 Properties를 선택한다.

프로젝트의 Properties - 컴파일러 설정 재확인
프로젝트 설정에서 Java Compiler를 선택하고, 앞서 지정한 실행 환경과 Compiler compliance level이 일치하는지 확인한다. 이 값은 생성되는 클래스 파일의 호환 버전에 영향을 주므로 배포 대상 서버보다 높은 버전을 선택하지 않는다.

JDK Compliance 확인 - JAR 파일 추가 메뉴 열기
프로젝트 설정에서 Java Build Path → Libraries → Classpath를 차례로 선택한 다음 Add External JARs…를 누른다. 와우자 확장 모듈은 Java Platform Module System의 모듈로 구성하는 것이 아니라 와우자 프로세스의 Classpath에서 불러오므로, 참조할 JAR 파일도 Modulepath가 아닌 Classpath에 추가한다.

JAR 파일을 추가할 Classpath 선택 - 와우자 JAR 파일 선택
와우자에서 복사한 JAR 파일이 있는 개발용 디렉토리로 이동하여 필요한 파일을 선택한 뒤 열기를 누른다. 본 필자처럼 전체 JAR 파일을 등록할 경우에도, 운영 서버의
lib디렉토리를 이클립스 프로젝트가 직접 참조하게 하기보다는 별도의 개발용 사본을 사용하는 편이 안전하다.
와우자 서버에서 복사한 JAR 라이브러리 - 설정 적용
JAR 파일이 Classpath에 추가된 것을 확인하고 Apply and Close를 선택해 설정을 저장한다. 이후 프로젝트를 빌드하여 참조 오류가 없는지 확인하고, 생성한 모듈 JAR 파일은 실제 배포 전에 시험용 와우자 환경에서 먼저 검증한다.

와우자 JAR 파일이 추가된 Eclipse Classpath
더 필요한 것은?
개발 도구에 필요한 라이브러리를 등록하고, 원하는 환경에 맞춰 결과물을 만들 수 있게 되었다면 이미 큰 고비 하나를 넘은 셈이다. 단순히 JAR 파일 몇 개를 추가한 것처럼 보이지만, 이것은 필요한 기능을 직접 만들어 운영 환경에 적용할 수 있게 된 큰 발자국이다.
와우자는 기본 기능만으로도 훌륭한 솔루션이지만, 모듈을 더하면 새로운 서비스와 운영 편의 기능을 직접 구현할 수 있다. 여기에 AI와 바이브 코딩이라는 도구까지 등장하면서 아이디어를 실제 코드로 옮기는 문턱도 크게 낮아졌다. AI가 모든 문제를 대신 해결해 주는 것은 아니지만, 운영자와 엔지니어가 자신의 경험을 기능으로 구현할 수 있도록 든든한 조력자가 되어 준다.
이 글은 와우자 모듈을 예로 들었지만, 필요한 라이브러리를 개발 환경에 등록하고 활용하는 기본 원리는 다른 자바 개발에도 이어진다. 이제 남은 것은 독자 제위의 상상력과 첫 시도뿐이다. 작고 하찮게 보일지 모르는 기능이라도 머릿속의 아이디어를 직접 현실로 만들어 보기 바란다. 한 번 맛을 보면 끊기 어려운 법이다.
FAQ
- 와우자 모듈을 개발할 때 서버와 같은 자바 버전을 사용해야 하는가?
- 배포 대상 와우자 서버와 호환되는 자바 버전을 사용해야 한다. 서버보다 높은 버전으로 컴파일하면 모듈을 불러오는 과정에서 클래스 버전 오류가 발생할 수 있다. 가능하면 실제 서버와 동일한 버전의 JDK와 와우자 라이브러리로 개발 환경을 구성하는 것이 안전하다.
- 와우자 서버가 사용하는 자바 버전은 어디에서 확인하는가?
- 와우자 웹 UI의 Server → About에서 현재 서버가 사용하는 자바 버전을 확인할 수 있다. 개발 프로젝트를 만들기 전에 이 버전을 확인하고, 이클립스에 호환되는 JDK가 설치되어 있는지도 함께 점검해야 한다.
- 이클립스에서 실행 환경 JRE만 선택하면 개발 준비가 끝나는가?
- 아니다. Use an execution environment JRE에서 버전을 선택하는 것은 프로젝트의 실행 환경을 지정하는 과정일 뿐, 해당 JDK를 설치하는 과정은 아니다. 호환 JDK가 없다면 Installed JREs에서 먼저 설치된 JDK를 등록해야 한다.
- 와우자 모듈 개발에 모든 JAR 파일을 등록해야 하는가?
- 반드시 모든 JAR 파일을 등록해야 하는 것은 아니다. 참조하는 라이브러리를 정확히 안다면 필요한 파일만 등록하는 편이 관리하기 쉽다. 다만 의존성을 빠뜨리면 컴파일 오류가 발생할 수 있으므로, 본 필자는 개발 대상 서버의
lib디렉토리를 별도로 복사하여 전체 JAR 파일을 등록하는 방식을 사용한다. - 윈도우 와우자의 JAR 파일로 리눅스용 모듈을 컴파일해도 되는가?
- 동작을 보장하기 어렵다. 와우자 버전이 같더라도 설치 환경에 따라 라이브러리 구성이 다를 가능성이 있다. 본 필자의 경험에서도 윈도우 와우자의 JAR 파일로 컴파일한 모듈이 리눅스 서버에서 동작하지 않았으므로, 배포 대상과 동일한 버전·운영체제의 라이브러리를 사용하는 편이 안전하다.
갱신 내역
- — 최초 게시
- — 수정 및 주소 이전