Skip to main content
Fess
15.3
문서
다운로드
포럼
GitHub
한국어
English
日本語
Deutsch
Español
Français
简体中文
한국어
Support
메뉴
문서
포럼
GitHub
한국어
English
日本語
Deutsch
Español
Français
简体中文
한국어
전반
입문
문서
튜토리얼
개발
개발자 가이드
GitHub
Docker
JavaDoc
XRef
I/F Doc
로드맵
변경점
이슈 추적
기타
아카이브
Support
개발
Home
개발
개발자 가이드
대상 독자
필요한 사전 지식
개발 가이드 구성
빠른 시작
개발 환경 선택
로컬 개발 환경
Docker를 사용한 개발 환경
자주 묻는 질문
Q: 개발에 필요한 최소 사양은?
Q: 어떤 IDE를 사용해야 하나요?
Q: LastaFlute나 DBFlute 지식이 필수인가요?
Q: 첫 기여는 무엇부터 시작하면 좋을까요?
관련 리소스
공식 리소스
기술 문서
커뮤니티
다음 단계
오픈소스 전문 검색 서버 - Fess 개발 개요
개요
Fess 의 특징
기술 스택
대상 버전
주요 기술 및 프레임워크
Java 21
LastaFlute
DBFlute
OpenSearch
Maven
개발 도구
권장 개발 환경
Eclipse
IntelliJ IDEA
VS Code
버전 관리
필요한 지식
기초 지식
학습 리소스
공식 문서
커뮤니티
소스 코드
개발 기본 플로우
프로젝트 구조 개요
주요 패키지
app
crawler
es
helper
job
개발 환경 빠른 시작
전제 조건
절차
개발 팁
디버그 실행
핫 디플로이
로그 확인
OpenSearch 조작
커뮤니티 및 지원
질문 및 상담
기여 방법
다음 단계
참고 자료
공식 리소스
기술 문서
커뮤니티
개발 환경 설정
시스템 요구사항
하드웨어 요구사항
소프트웨어 요구사항
필수 소프트웨어 설치
Java 설치
Eclipse Temurin 설치(권장)
설치 확인
환경 변수 설정
Maven 설치
다운로드 및 설치
환경 변수 설정
설치 확인
Git 설치
IDE 설정
Eclipse의 경우
Eclipse 설치
권장 플러그인
프로젝트 가져오기
실행 구성 설정
IntelliJ IDEA의 경우
IntelliJ IDEA 설치
프로젝트 가져오기
실행 구성 설정
VS Code의 경우
VS Code 설치
필수 확장 기능 설치
프로젝트 열기
소스 코드 취득
GitHub에서 클론
프로젝트 빌드
OpenSearch 플러그인 다운로드
초기 빌드
Fess 실행
명령줄에서 실행
IDE에서 실행
Eclipse의 경우
IntelliJ IDEA의 경우
VS Code의 경우
시작 확인
포트 번호 변경
디버그 실행
IDE에서 디버그 실행
Eclipse의 경우
IntelliJ IDEA의 경우
VS Code의 경우
원격 디버그
개발에 유용한 설정
로그 레벨 변경
핫 디플로이 활성화
내장 OpenSearch 조작
외부 OpenSearch 사용
DBFlute 코드 생성
스키마가 변경된 경우 재생성
문제 해결
빌드 오류
실행 오류
IDE에서 프로젝트가 인식되지 않음
다음 단계
리소스
아키텍처 및 코드 구조
전체 아키텍처
계층 설명
사용자 인터페이스 계층
웹 애플리케이션 계층
비즈니스 로직 계층
데이터 액세스 계층
데이터 스토어 계층
프로젝트 구조
디렉터리 구조
주요 패키지 상세
app 패키지
app.web 패키지
app.web.admin 패키지
app.service 패키지
crawler 패키지
crawler.client 패키지
crawler.extractor 패키지
crawler.transformer 패키지
es 패키지
es.client 패키지
es.query 패키지
helper 패키지
job 패키지
entity 패키지
mylasta 패키지
mylasta.action 패키지
mylasta.direction 패키지
디자인 패턴 및 구현 패턴
MVC 패턴
DI 패턴
Factory 패턴
Strategy 패턴
설정 관리
fess_config.properties
fess_config.xml
fess_message_*.properties
데이터 플로우
검색 플로우
크롤링 플로우
확장 포인트
커스텀 크롤러 추가
커스텀 트랜스포머 추가
커스텀 추출기 추가
커스텀 플러그인 추가
참고 자료
프레임워크
기술 문서
다음 단계
개발 워크플로우
개발 기본 플로우
Step 1: Issue 확인·작성
기존 Issue 확인
새로운 Issue 작성
Issue 템플릿
Step 2: 브랜치 생성
브랜치 명명 규칙
브랜치 생성 절차
Step 3: 코딩
코딩 규약
기본 스타일
명명 규칙
주석
null 처리
예외 처리
로그 출력
개발 중 테스트
로컬 실행
디버그 실행
단위 테스트 실행
Step 4: 로컬 테스트 실행
단위 테스트 실행
통합 테스트 실행
코드 스타일 검사
모든 검사 실행
Step 5: 커밋
커밋 메시지 규약
커밋 절차
커밋 단위
Step 6: 푸시
Step 7: 풀 리퀘스트 작성
PR 작성 절차
PR 템플릿
PR 설명
Step 8: 코드 리뷰
리뷰 관점
리뷰 코멘트 예
Step 9: 리뷰 피드백 대응
피드백 대응 절차
코멘트 답변
Step 10: 병합
병합 후 대응
자주 발생하는 개발 시나리오
기능 추가
버그 수정
리팩토링
문서 업데이트
개발 팁
효율적인 개발
문제 해결
다음 단계
참고 자료
빌드 및 테스트
빌드 시스템 개요
pom.xml
기본 빌드 명령
클린 빌드
패키지 생성
전체 빌드
의존성 다운로드
OpenSearch 플러그인 다운로드
테스트
단위 테스트 실행
모든 단위 테스트 실행
특정 테스트 클래스 실행
특정 테스트 메서드 실행
여러 테스트 클래스 실행
테스트 건너뛰기
통합 테스트 실행
테스트 작성
단위 테스트 작성
테스트 클래스 배치
테스트 클래스 기본 구조
테스트 라이프사이클
어설션
모의 객체 사용
테스트 커버리지
코드 품질 검사
Checkstyle
SpotBugs
PMD
모든 검사 실행
배포 패키지 생성
릴리스 패키지 생성
Docker 이미지 생성
프로파일
개발 프로파일
프로덕션 프로파일
고속 빌드
CI/CD
GitHub Actions
로컬 CI 검사
문제 해결
빌드 오류
테스트 오류
의존성 문제
빌드 모범 사례
정기적인 클린 빌드
테스트 실행
코드 품질 검사
의존성 업데이트
빌드 캐시 활용
Maven 명령 참조
자주 사용하는 명령
다음 단계
참고 자료
기여 가이드
시작하기
기여 방법
코드 기여
문서 기여
Issue 보고
커뮤니티 활동
첫 번째 기여
Step 1: 프로젝트 이해하기
Step 2: Issue 찾기
Step 3: 개발 환경 설정
Step 4: 브랜치 생성하여 작업
Step 5: 풀 리퀘스트 작성
코딩 규약
Java 코딩 스타일
기본 스타일
명명 규칙
주석
클래스와 메서드 설계
예외 처리
null 처리
테스트 작성
코드 리뷰 가이드라인
풀 리퀘스트 리뷰 프로세스
리뷰 관점
리뷰 코멘트 대응
풀 리퀘스트 모범 사례
PR 크기
PR 제목
PR 설명
커밋 메시지
Draft PR 활용
커뮤니티 가이드라인
행동 규범
커뮤니케이션
감사 표현
자주 묻는 질문
Q: 초보자도 기여할 수 있나요?
Q: 풀 리퀘스트는 얼마나 걸려서 리뷰되나요?
Q: 풀 리퀘스트가 거부된 경우는?
Q: 코딩 규약을 위반한 경우는?
Q: 큰 기능을 추가하고 싶은 경우는?
Q: 일본어로 질문해도 되나요?
기여 유형별 가이드
문서 개선
버그 보고
기능 요청
코드 리뷰
라이센스
감사의 말
다음 단계
참고 자료
커뮤니티 리소스
GitHub
Docker
JavaDoc
XRef
I/F Doc
로드맵
버전 관리 방침
15.0
변경점
이슈 추적