# 배포판

> 배포판은 오픈텔레메트리 컴포넌트를 커스터마이징한 버전이며, 포크와 혼동해서는 안 된다.

---

Site [llms.txt](/ko/llms.txt)

---

오픈텔레메트리(OpenTelemetry) 프로젝트는 여러 [시그널](../signals)을 지원하는
여러 [컴포넌트](../components)로 구성된다. 오픈텔레메트리의 참조 구현체는 다음과
같은 형태로 제공된다.

- [언어별 계측 라이브러리](../instrumentation)
- [컬렉터 바이너리](/docs/concepts/components/#collector)

모든 참조 구현체는 커스터마이징하여 배포판으로 만들 수 있다.

## 배포판이란? {#what-is-a-distribution}

배포판은 오픈텔레메트리 컴포넌트를 커스터마이징한 버전이다. 일부 커스터마이징이
적용된 업스트림 오픈텔레메트리 저장소를 감싸는 래퍼(wrapper)다. 배포판을 포크와
혼동해서는 안 된다.

배포판에는 다음과 같은 커스터마이징이 포함될 수 있다.

- 사용을 간편하게 하거나 특정 백엔드 또는 벤더에 맞게 사용 방식을 조정하는
  스크립트
- 백엔드, 벤더 또는 최종 사용자에게 필요한 기본 설정 변경
- 특정 벤더나 최종 사용자에 맞춘 추가 패키징 옵션
- 오픈텔레메트리가 제공하는 것보다 넓은 테스트, 성능 및 보안 검증 범위
- 오픈텔레메트리가 제공하는 것보다 넓은 범위의 추가 기능
- 오픈텔레메트리가 제공하는 것보다 적은 범위의 기능

배포판은 크게 다음과 같이 분류된다.

- **"Pure":** 업스트림과 동일한 기능을 제공하며 100% 호환되는 배포판이다.
  커스터마이징은 일반적으로 사용 편의성이나 패키징을 개선한다. 이러한
  커스터마이징은 특정 백엔드, 벤더 또는 최종 사용자에 맞춘 것일 수 있다.
- **"Plus":** 추가 컴포넌트를 통해 업스트림에 기능을 더하는 배포판이다. 예를
  들어, 오픈텔레메트리 프로젝트의 업스트림에 반영되지 않은 계측 라이브러리나
  벤더 익스포터를 포함할 수 있다.
- **"Minus":** 업스트림 기능의 일부만 제공하는 배포판이다. 예를 들어, 계측
  라이브러리나 오픈텔레메트리 컬렉터 프로젝트에 있는 리시버, 프로세서, 익스포터,
  확장 기능을 제거한 배포판이 이에 해당한다. 이러한 배포판은 유지보수성을 더
  용이하게 하고 보안상의 요구를 고려하여 제공될 수 있다.

## 누가 배포판을 만들 수 있는가? {#who-can-create-a-distribution}

누구나 배포판을 만들 수 있다. 현재 여러 [벤더](/ecosystem/vendors/)가
[배포판](/ecosystem/distributions/)을 제공한다. 또한 최종 사용자가
[레지스트리](/ecosystem/registry/)에 있는 컴포넌트 중 오픈텔레메트리 프로젝트의
업스트림에 반영되지 않은 컴포넌트를 사용하려는 경우, 배포판을 만드는 것을 고려할
수 있다.

## 기여할 것인가, 배포판을 만들 것인가? {#contribution-or-distribution}

계속해서 자체 배포판을 만드는 방법을 알아보기 전에, 오픈텔레메트리 컴포넌트에
추가하려는 내용이 모두에게 도움이 되어 참조 구현체에 포함되는 편이 좋을지 자문해
본다.

- "사용 편의성"을 위한 스크립트를 범용화할 수 있는가?
- 기본 설정에 대한 변경이 모두에게 더 나은 선택이 될 수 있는가?
- 추가 패키징 옵션이 정말 특정 용도에만 필요한가?
- 테스트, 성능 및 보안 검증 범위를 참조 구현체에도 적용할 수 있는가?
- 추가 기능이 표준의 일부가 될 수 있는지 커뮤니티에 확인했는가?

## 자체 배포판 만들기 {#creating-your-own-distribution}

### 컬렉터 {#collector}

자체 배포판을 만드는 방법은
["자체 오픈텔레메트리 컬렉터 배포판 만들기"](https://medium.com/p/42337e994b63)
블로그 글에서 확인할 수 있다.

자체 배포판을 만든다면,
[오픈텔레메트리 컬렉터 빌더](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder)은
좋은 출발점이 될 수 있다

### 언어별 계측 라이브러리 {#language-specific-instrumentation-libraries}

계측 라이브러리를 커스터마이징하기 위한 언어별 확장 메커니즘이 제공된다.

- [Java 에이전트](/docs/zero-code/java/agent/extensions)

## 가이드라인 준수하기 {#follow-the-guidelines}

배포판에 로고나 이름 등 오픈텔레메트리 프로젝트의 홍보 자료를 사용할 때는 [기여
조직을 위한 오픈텔레메트리 마케팅 가이드라인][guidelines]을 준수해야 한다.

오픈텔레메트리 프로젝트는 현재 배포판을 인증하지 않는다. 향후에는 쿠버네티스
프로젝트와 유사하게 배포판과 파트너를 인증할 수도 있다. 배포판을 평가할 때는
해당 배포판의 사용으로 특정 벤더에 종속되지 않는지 확인해야 한다.

> 배포판에 대한 모든 지원은 오픈텔레메트리 개발자가 아닌 해당 배포판의 개발자가
> 제공한다.

[guidelines]:
  https://github.com/open-telemetry/community/blob/main/marketing-guidelines.md
