Gluten 커뮤니티에 기여하는 방법: 처음부터 배우는 코드 제출 과정
Gluten은 JVM 기반 SQL 엔진의 실행 작업을 네이티브 실행 엔진으로 오프로드하는 중간 계층입니다. Apache Incubator에서 개발 중인 이 프로젝트는 전 세계 개발자들의 기여를 적극 환영합니다. 본 문서는 Git 기초부터 PR(PR, Pull Request) 제출까지의 전체 흐름을 안내하며, 누구나 쉽게 기여할 수 있도록 구성했습니다.
1. 로컬 개발 환경 설정
기여를 시작하려면 우선 프로젝트를 로컬에 복제해야 합니다. 아래 명령어를 사용해 저장소를 클론하세요:
git clone https://gitcode.com/gh_mirrors/in/incubator-gluten
cd incubator-gluten
Gluten은 C++과 JVM 기반 언어(Java/Scala)를 함께 사용하므로, 두 환경 모두 준비되어야 합니다. IDE로 CLion이나 IntelliJ IDEA를 사용하는 경우 다음 설정을 권장합니다:
- CMake: Bundled 버전 사용
- 빌드 시스템: Ninja 선택 (빠른 빌드 지원)
- 컴파일러: Clang 18 이상 (C++17 표준 준수 필요)
- JVM 도구: JDK 11 설치 및 Maven 3.8+ 설정
2. 주요 디렉터리 구조 이해
프로젝트는 기능별로 모듈화되어 있으며, 주요 폴더는 다음과 같습니다:
| 디렉터리 | 설명 |
|---|---|
cpp/ | C++ 기반 핵심 실행 엔진 및 메모리 관리 로직 |
gluten-core/ | Spark와의 통합을 위한 JVM 측 구현 |
backends-*/ | Velox 또는 ClickHouse 백엔드 구현 |
docs/ | 기술 문서 및 입문 가이드 포함 |
dev/ | 코드 포맷 검사, 스크립트 자동화 도구 포함 |
데이터 파이프라인은 입력 → 변환 → 집계 → Shuffle 단계를 거치며, 각 단계는 서로 다른 모듈에서 처리됩니다. 이러한 아키텍처를 이해하면 수정 사항의 영향 범위를 정확히 파악할 수 있습니다.
3. 기여할 수 있는 항목 찾기
처음 기여하는 경우 다음 방식으로 시작하는 것이 좋습니다:
- good first issue 라벨이 붙은 이슈 탐색
- 문서 오류 수정 또는 한국어/다국어 번역 추가
- 단위 테스트 보강 또는 간단한 버그 패치
기여 가이드는 docs/developers/HowTo.md에서 확인할 수 있으며, 코딩 스타일, 커밋 메시지 규칙, CI 절차 등이 상세히 설명되어 있습니다.
4. 코드 작성 및 테스트
작업을 시작하기 전, 반드시 새로운 브랜치를 생성하세요:
git checkout -b fix/docs-typo-correction
코드 작성을 마친 후에는 정책에 맞게 포맷팅을 적용해야 합니다:
- C++:
docs/developers/CppCodingStyle.md기준 - Java/Scala:
dev/checkstyle.xml,dev/scalastyle-config.xml적용
로컬에서 테스트를 실행하여 모든 케이스가 통과하는지 확인하세요:
# C++ 테스트 실행
cd cpp && cmake -B build && cmake --build build && ctest --output-on-failure
# Java/Scala 테스트 (Maven 기반)
mvn test -pl gluten-core
5. 코드 제출 및 PR 생성
테스트 완료 후 변경 사항을 커밋합니다. 커밋 메시지는 명확하고 의미 있게 작성하세요:
git add .
git commit -m "Fix typo in get-started documentation"
원격 저장소에 브랜치를 푸시하고 GitHub/GitCode 인터페이스를 통해 Pull Request를 생성합니다:
git push origin fix/docs-typo-correction
PR을 작성할 때는 다음을 포함해야 합니다:
- 수정 목적 및 배경 설명
- 변경된 파일 목록
- 테스트 결과 요약
CI 파이프라인이 자동으로 트리거되며, 빌드 및 테스트 성공 여부를 확인할 수 있습니다.
6. 리뷰 반영 및 마무리
커뮤니티 멤버가 리뷰를 남기면 피드백에 따라 코드를 개선하세요. 요청된 수정사항이 있다면:
git add .
git commit -m "Address review comments: improve null check logic"
git push origin fix/docs-typo-correction
PR이 머지되면 공식 기여자로 등재되며, 프로젝트의 CONTRIBUTORS 목록에 이름이 포함됩니다.
7. 유용한 리소스 링크
- 📚 전체 문서:
docs/디렉터리 - 🔧 개발자 가이드:
docs/developers/ - 🛠 문제 해결:
docs/velox-backend-troubleshooting.md
오픈소스는 협업의 산물입니다. 한 줄의 코드라도 기여한다면, 그 가치는 충분히 큽니다. 오늘 바로 Gluten 프로젝트에 여러분의 첫 번째 커밋을 남겨보세요! 🌟