> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baeum.ai.kr/llms.txt
> Use this file to discover all available pages before exploring further.

# ClearML

**MLOps 플랫폼**입니다. 실험 관리, 데이터 버전 관리, 파이프라인 자동화, 모델 배포까지 머신러닝 전체 라이프사이클을 관리합니다.

## 어디에 쓰이나요?

* **실험 관리**: 코드 한 줄 추가로 학습 실험의 모든 정보를 자동 기록 (파라미터, 메트릭, 환경 정보, Git 커밋)
* **데이터 관리**: 학습 데이터셋의 버전 관리 및 변경 추적
* **파이프라인**: 데이터 전처리 → 학습 → 평가 → 배포까지의 워크플로우 자동화
* **원격 실행**: 로컬에서 작성한 코드를 GPU 서버에서 자동 실행
* **모델 서빙**: 학습된 모델을 API로 배포 및 모니터링

MLflow와 비교하면 **자동 기록 기능**이 강점입니다. 코드에 `Task.init()` 한 줄만 추가하면 파라미터, 메트릭, 출력, 모델 파일을 자동으로 기록합니다.

## Docker Compose

ClearML 서버는 공식 저장소의 Docker Compose 파일을 사용합니다.

```bash theme={null}
git clone https://github.com/allegroai/clearml-server.git
cd clearml-server/docker
cp example.env .env
```

`.env` 파일에서 필요한 설정을 수정합니다.

```bash theme={null}
docker compose up -d
```

## 접속 확인

브라우저에서 `http://localhost:8080`으로 접속합니다. 초기 접속 시 계정을 생성합니다.

## 기본 정보

| 항목       | 값    |
| -------- | ---- |
| 웹 UI 포트  | 8080 |
| API 포트   | 8008 |
| 파일 서버 포트 | 8081 |

## Python SDK 연동

```python theme={null}
from clearml import Task

task = Task.init(project_name="my-project", task_name="training-v1")

# 이후 코드에서 발생하는 모든 로그, 메트릭, 모델이 자동 기록됨
```

## 라이선스

| 구분     | 내용                                                             |
| ------ | -------------------------------------------------------------- |
| 라이선스   | Apache License 2.0 (Community), 상용 라이선스 (Enterprise)           |
| 개인 사용  | 자유롭게 사용 가능                                                     |
| 상업적 사용 | Community는 자유롭게 사용 가능. Enterprise는 RBAC, SSO, 우선 지원 등 추가 기능 포함 |

## 참고

* [ClearML 서버 설치 가이드](https://clear.ml/docs/latest/docs/deploying_clearml/clearml_server_linux_mac)
* [ClearML GitHub](https://github.com/allegroai/clearml-server)

## 설치 점검 목록

* `docker compose up -d` 후 `docker compose ps`로 컨테이너 상태를 확인했습니다.
* 기본 포트/계정/비밀번호를 문서대로 점검했습니다.
* 운영용으로 사용할 때 기본 비밀번호/시크릿 값을 변경했습니다.
* 장애 분석을 위해 `docker compose logs -f` 확인 방법을 숙지했습니다.

## 문제 해결 가이드

* 컨테이너가 실행되지 않으면 `docker compose logs -f`로 오류 원인을 먼저 확인합니다.
* 포트 충돌이 나면 기존 프로세스를 종료하거나 포트 매핑 값을 변경합니다.
* 이미지 pull 실패 시 네트워크 연결 및 레지스트리 접근 권한을 확인합니다.
* 설정 변경 후 문제가 지속되면 `docker compose down` 후 다시 `up -d`로 재기동합니다.

## 관련 문서

<CardGroup cols={2}>
  <Card title="Setup 홈" icon="house" href="/setup/index">
    운영체제별 설치 흐름을 다시 확인합니다.
  </Card>

  <Card title="다음: JupyterHub" icon="arrow-right" href="/stacks/jupyterhub">
    다음 설치 단계를 이어서 진행합니다.
  </Card>
</CardGroup>
