개발 환경 설정
이 페이지에서는 Fess 개발 환경을 구축하는 절차를 자세히 설명합니다. IDE 선택부터 소스 코드 취득, 실행, 디버그까지 단계별로 해설합니다.
시스템 요구사항
개발 환경에는 다음 하드웨어 요구사항을 권장합니다.
하드웨어 요구사항
CPU: 4코어 이상
메모리: 8GB 이상(16GB 권장)
디스크: 20GB 이상의 여유 공간
참고
개발 중에는 Fess 본체와 내장 OpenSearch가 동시에 동작하므로 충분한 메모리와 디스크 용량을 확보하세요.
소프트웨어 요구사항
OS: Windows 10/11, macOS 11 이상, Linux(Ubuntu 20.04 이상 등)
Java: JDK 21 이상
Maven: 3.x 이상
Git: 2.x 이상
IDE: Eclipse, IntelliJ IDEA, VS Code 등
필수 소프트웨어 설치
Java 설치
Fess 개발에는 Java 21 이상이 필요합니다.
Eclipse Temurin 설치(권장)
Eclipse Temurin(구 AdoptOpenJDK)을 권장합니다.
Adoptium 에 접속
Java 21 LTS 버전 다운로드
설치 프로그램 지시에 따라 설치
설치 확인
터미널 또는 명령 프롬프트에서 다음을 실행:
java -version
다음과 같은 출력이 표시되면 성공입니다:
openjdk version "21.0.x" 2024-xx-xx LTS
OpenJDK Runtime Environment Temurin-21.0.x+x (build 21.0.x+x-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.x+x (build 21.0.x+x-LTS, mixed mode, sharing)
환경 변수 설정
Linux/macOS:
~/.bashrc 또는 ~/.zshrc 에 다음을 추가:
export JAVA_HOME=/path/to/java21
export PATH=$JAVA_HOME/bin:$PATH
Windows:
“시스템 환경 변수 편집” 열기
“환경 변수” 클릭
JAVA_HOME추가:C:\Program Files\Eclipse Adoptium\jdk-21.x.x.x-hotspotPATH에%JAVA_HOME%\bin추가
Maven 설치
Maven 3.x 이상을 설치합니다.
다운로드 및 설치
Maven 다운로드 페이지 에 접속
Binary zip/tar.gz archive 다운로드
압축 해제하고 적절한 위치에 배치
Linux/macOS:
tar xzvf apache-maven-3.x.x-bin.tar.gz
sudo mv apache-maven-3.x.x /opt/
sudo ln -s /opt/apache-maven-3.x.x /opt/maven
Windows:
ZIP 파일 압축 해제
C:\Program Files\Apache\maven등에 배치
환경 변수 설정
Linux/macOS:
~/.bashrc 또는 ~/.zshrc 에 다음을 추가:
export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH
Windows:
MAVEN_HOME추가:C:\Program Files\Apache\mavenPATH에%MAVEN_HOME%\bin추가
설치 확인
mvn -version
다음과 같은 출력이 표시되면 성공입니다:
Apache Maven 3.x.x
Maven home: /opt/maven
Java version: 21.0.x, vendor: Eclipse Adoptium
Git 설치
Git이 설치되어 있지 않은 경우 다음에서 설치합니다.
Windows: Git for Windows
macOS:
brew install git또는 Git 다운로드 페이지Linux:
sudo apt install git(Ubuntu/Debian) 또는sudo yum install git(RHEL/CentOS)
설치 확인:
git --version
IDE 설정
Eclipse의 경우
Eclipse는 Fess 공식 문서에서 권장하는 IDE입니다.
Eclipse 설치
Eclipse 다운로드 페이지 에 접속
“Eclipse IDE for Enterprise Java and Web Developers” 다운로드
설치 프로그램을 실행하고 지시에 따라 설치
권장 플러그인
Eclipse에는 다음 플러그인이 기본적으로 포함되어 있습니다:
Maven Integration for Eclipse (m2e)
Eclipse Java Development Tools
프로젝트 가져오기
Eclipse 시작
File>Import선택Maven>Existing Maven Projects선택Fess 소스 코드 디렉터리 지정
Finish클릭
실행 구성 설정
Run>Run Configurations...선택Java Application을 우클릭하고New Configuration선택다음을 설정:
Name: Fess Boot
Project: fess
Main class:
org.codelibs.fess.FessBoot
Apply클릭
IntelliJ IDEA의 경우
IntelliJ IDEA도 널리 사용되는 IDE입니다.
IntelliJ IDEA 설치
Community Edition(무료) 또는 Ultimate Edition 다운로드
설치 프로그램을 실행하고 지시에 따라 설치
프로젝트 가져오기
IntelliJ IDEA 시작
Open선택Fess 소스 코드 디렉터리의
pom.xml선택Open as Project클릭Maven 프로젝트로 자동 가져오기됨
실행 구성 설정
Run>Edit Configurations...선택+버튼을 클릭하고Application선택다음을 설정:
Name: Fess Boot
Module: fess
Main class:
org.codelibs.fess.FessBootJRE: Java 21
OK클릭
VS Code의 경우
경량 개발 환경을 선호하는 경우 VS Code도 선택 가능합니다.
VS Code 설치
VS Code 다운로드 페이지 에 접속
설치 프로그램 다운로드 및 실행
필수 확장 기능 설치
다음 확장 기능을 설치합니다:
Extension Pack for Java: Java 개발에 필요한 확장 기능 세트
Maven for Java: Maven 지원
프로젝트 열기
VS Code 시작
File>Open Folder선택Fess 소스 코드 디렉터리 선택
소스 코드 취득
GitHub에서 클론
Fess 소스 코드를 GitHub에서 클론합니다.
git clone https://github.com/codelibs/fess.git
cd fess
SSH를 사용하는 경우:
git clone git@github.com:codelibs/fess.git
cd fess
팁
포크하여 개발하는 경우 먼저 GitHub에서 Fess 리포지토리를 포크하고 포크한 리포지토리를 클론합니다:
git clone https://github.com/YOUR_USERNAME/fess.git
cd fess
git remote add upstream https://github.com/codelibs/fess.git
프로젝트 빌드
OpenSearch 플러그인 다운로드
Fess 실행에는 OpenSearch용 플러그인이 필요합니다. 다음 명령으로 다운로드합니다:
mvn antrun:run
이 명령은 다음을 실행합니다:
OpenSearch 다운로드
필수 플러그인 다운로드 및 설치
OpenSearch 설정
참고
이 명령은 처음 한 번만 실행하거나 플러그인을 업데이트할 때 실행합니다. 매번 실행할 필요는 없습니다.
초기 빌드
프로젝트를 빌드합니다:
mvn clean compile
초기 빌드는 시간이 걸릴 수 있습니다(의존 라이브러리 다운로드 등).
빌드가 성공하면 다음과 같은 메시지가 표시됩니다:
[INFO] BUILD SUCCESS
[INFO] Total time: xx:xx min
[INFO] Finished at: 2024-xx-xxTxx:xx:xx+09:00
Fess 실행
명령줄에서 실행
Maven을 사용하여 실행:
mvn compile exec:java
또는 패키징 후 실행:
mvn package
java -jar target/fess-15.3.x.jar
IDE에서 실행
Eclipse의 경우
org.codelibs.fess.FessBoot클래스를 우클릭Run As>Java Application선택
또는 생성한 실행 구성 사용:
툴바의 실행 버튼 드롭다운 클릭
Fess Boot선택
IntelliJ IDEA의 경우
org.codelibs.fess.FessBoot클래스를 우클릭Run 'FessBoot.main()'선택
또는 생성한 실행 구성 사용:
툴바의 실행 버튼 드롭다운 클릭
Fess Boot선택
VS Code의 경우
src/main/java/org/codelibs/fess/FessBoot.java열기Run메뉴에서Run Without Debugging선택
시작 확인
Fess 시작에는 1~2분이 소요됩니다. 콘솔에 다음과 같은 로그가 표시되면 시작 완료입니다:
[INFO] Boot Thread: Boot process completed successfully.
브라우저에서 다음에 접속하여 동작 확인:
검색 화면: http://localhost:8080/
관리 화면: http://localhost:8080/admin/
기본 사용자:
admin기본 비밀번호:
admin
포트 번호 변경
기본 포트 8080이 사용 중인 경우 다음 파일에서 변경할 수 있습니다:
src/main/resources/fess_config.properties
# 포트 번호 변경
server.port=8080
디버그 실행
IDE에서 디버그 실행
Eclipse의 경우
org.codelibs.fess.FessBoot클래스를 우클릭Debug As>Java Application선택브레이크포인트를 설정하고 코드 동작 추적
IntelliJ IDEA의 경우
org.codelibs.fess.FessBoot클래스를 우클릭Debug 'FessBoot.main()'선택브레이크포인트를 설정하고 코드 동작 추적
VS Code의 경우
src/main/java/org/codelibs/fess/FessBoot.java열기Run메뉴에서Start Debugging선택
원격 디버그
명령줄에서 시작한 Fess에 디버거를 연결할 수도 있습니다.
Fess를 디버그 모드로 시작:
mvn compile exec:java -Dexec.args="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"
IDE에서 원격 디버그 연결:
Eclipse:
Run>Debug Configurations...선택Remote Java Application을 우클릭하고New Configuration선택Port: 5005설정Debug클릭
IntelliJ IDEA:
Run>Edit Configurations...선택+>Remote JVM Debug선택Port: 5005설정OK클릭하고Debug실행
개발에 유용한 설정
로그 레벨 변경
디버그 시 로그 레벨을 변경하면 상세 정보를 확인할 수 있습니다.
src/main/resources/log4j2.xml 편집:
<Configuration status="INFO">
<Loggers>
<Logger name="org.codelibs.fess" level="DEBUG"/>
<Root level="INFO">
<AppenderRef ref="console"/>
</Root>
</Loggers>
</Configuration>
핫 디플로이 활성화
LastaFlute는 일부 변경에 대해 재시작 없이 반영할 수 있습니다.
src/main/resources/fess_config.properties 에서 다음을 설정:
# 핫 디플로이 활성화
development.here=true
다만 다음 변경은 재시작이 필요합니다:
클래스 구조 변경(메서드 추가·삭제 등)
설정 파일 변경
의존 라이브러리 변경
내장 OpenSearch 조작
개발 환경에서는 내장 OpenSearch가 사용됩니다.
OpenSearch 배치 위치:
target/fess/es/
OpenSearch API 직접 접속:
# 인덱스 목록
curl -X GET http://localhost:9201/_cat/indices?v
# 문서 검색
curl -X GET http://localhost:9201/fess.search/_search?pretty
# 매핑 확인
curl -X GET http://localhost:9201/fess.search/_mapping?pretty
외부 OpenSearch 사용
외부 OpenSearch 서버를 사용하는 경우 src/main/resources/fess_config.properties 편집:
# 내장 OpenSearch 비활성화
opensearch.cluster.name=fess
opensearch.http.url=http://localhost:9200
DBFlute 코드 생성
Fess 는 DBFlute를 사용하여 OpenSearch 스키마에서 Java 코드를 자동 생성합니다.
스키마가 변경된 경우 재생성
OpenSearch 매핑을 변경한 경우 다음 명령으로 해당 Java 코드를 재생성합니다:
rm -rf mydbflute
mvn antrun:run
mvn dbflute:freegen
mvn license:format
각 명령 설명:
rm -rf mydbflute: 기존 DBFlute 작업 디렉터리 삭제mvn antrun:run: OpenSearch 플러그인 다운로드mvn dbflute:freegen: 스키마에서 Java 코드 생성mvn license:format: 라이센스 헤더 추가
문제 해결
빌드 오류
오류: Java 버전이 오래됨
[ERROR] Failed to execute goal ... requires at least Java 21
해결 방법: Java 21 이상을 설치하고 JAVA_HOME 을 적절히 설정하세요.
오류: 의존 라이브러리 다운로드 실패
[ERROR] Failed to collect dependencies
해결 방법: 네트워크 연결을 확인하고 Maven 로컬 리포지토리를 정리한 후 재시도:
rm -rf ~/.m2/repository
mvn clean compile
실행 오류
오류: 포트 8080이 이미 사용 중
Address already in use
해결 방법:
포트 8080을 사용하는 프로세스 종료
또는
fess_config.properties에서 포트 번호 변경
오류: OpenSearch가 시작되지 않음
로그 파일 target/fess/es/logs/ 를 확인하세요.
자주 발생하는 원인:
메모리 부족: JVM 힙 크기 증가
포트 9201 사용 중: 포트 번호 변경
디스크 용량 부족: 디스크 용량 확보
IDE에서 프로젝트가 인식되지 않음
Maven 프로젝트 업데이트
Eclipse: 프로젝트 우클릭 >
Maven>Update ProjectIntelliJ IDEA:
Maven툴 윈도우에서Reload All Maven Projects클릭VS Code: 명령 팔레트에서
Java: Clean Java Language Server Workspace실행
다음 단계
개발 환경 설정이 완료되면 다음 문서를 참조하세요:
아키텍처 및 코드 구조 - 코드 구조 이해
개발 워크플로우 - 개발 워크플로우 학습
빌드 및 테스트 - 빌드 및 테스트 방법
기여 가이드 - 풀 리퀘스트 작성