# 과학적으로 페타바이트 데이터를 분석하는 ROOT

> Clean Markdown view of GeekNews topic #15127. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15127](https://news.hada.io/topic?id=15127)
- GeekNews Markdown: [https://news.hada.io/topic/15127.md](https://news.hada.io/topic/15127.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-06-02T09:52:35+09:00
- Updated: 2024-06-02T09:52:35+09:00
- Original source: [root.cern](https://root.cern/)
- Points: 1
- Comments: 1

## Topic Body

### √-1ROOT: 대규모 데이터 분석 및 시각화를 위한 소프트웨어

#### ROOT 개요
- **ROOT**는 대규모 데이터의 통계적 분석과 시각화를 가능하게 하는 고성능 소프트웨어임.
- **C++**로 주로 작성되었으며, **Linux**, **macOS**, **Windows**에서 사용 가능함.
- 오픈 소스 소프트웨어로 자유롭게 사용, 수정, 기여 가능함.

#### 주요 기능
- **빠른 프로토타이핑**을 위한 강력한 C++ 인터프리터 제공.
- **Python**과의 원활한 통합을 통해 Python과 C++ 간의 동적 바인딩 가능.
- **Jupyter 노트북**에서도 사용 가능함.

#### RNTuple: 현재와 미래
- **RNTuple**은 **TTree**의 후속으로 개발 중이며, **Run 4**에서 사용될 예정임.
- 새로운 시스템의 필요성과 현재 상태, 첫 프로덕션 릴리스 전 작업 내용, 그리고 향후 계획에 대해 설명함.
- 이미 RNTuple을 시도해볼 수 있는 방법 제공.

#### 웹 기반 캔버스 기본 설정
- **웹 기반 TCanvas** 구현이 ROOT 마스터 버전에서 기본 설정으로 변경됨.
- 2017년부터 ROOT에 존재했으며, 웹 기반 **TBrowser**에서도 사용됨.

#### 새로운 클래스 TScatter
- 새로운 클래스 **TScatter** 소개.

#### ROOT 개발 환경 개선
- **QtCreator**를 사용하여 ROOT 개발 및 디버깅 환경을 개선할 수 있는 방법 제안.
- **Eclipse IDE**에서 CERN ROOT 스크립트 및 ROOT 기반 프로그램 디버깅 가능.

#### 최신 릴리스
- **Release 6.32/00** - 2024년 5월 28일
- **Release 6.30.06** - 2024년 4월 3일
- **Release 6.30.04** - 2024년 1월 31일
- **Release 6.30/02** - 2023년 11월 28일
- **Release 6.30/00** - 2023년 11월 7일

### GN⁺의 의견
- **ROOT**는 대규모 데이터 분석에 최적화된 도구로, 특히 과학 연구에서 유용함.
- **Python**과의 통합 덕분에 C++에 익숙하지 않은 사용자도 쉽게 접근 가능함.
- **웹 기반 캔버스** 기본 설정은 사용자 경험을 크게 향상시킬 수 있음.
- **RNTuple**의 도입은 성능 및 기능 향상을 기대할 수 있음.
- **QtCreator**와 **Eclipse IDE**를 활용한 개발 환경 개선은 생산성을 높이는 데 도움이 됨.

## Comments



### Comment 25833

- Author: neo
- Created: 2024-06-02T09:52:35+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40543651) 
- **과거의 추억**: 입자 물리학에서 ROOT를 많이 사용했음. 기술 부채와 특이점이 많았지만, 히스토그램이나 구조화된 데이터 처리 등 특정 작업은 ROOT가 더 쉬웠음. 객체 지향 API가 직관적이었음.
- **변화의 과정**: 5년 전에 떠났지만, ROOT는 변화 중이었음. CINT 인터프리터를 제거하고 클랭 기반 코드로 전환했으며, 이제 Jupyter에서 C++ 또는 Python으로 분석 가능함.
- **새로운 분석 도구**: 새로운 분석에는 ROOT 대신 uproot 같은 더 사용자 친화적인 도구를 사용하는 것이 좋음. 일부는 레거시 워크플로우 때문에 ROOT를 계속 사용할 수 있음.
- **흥미로운 404 페이지**: ROOT의 404 페이지가 재미있음. (방 404와는 무관함)
- **과학적 발견**: 대규모 소프트웨어 프로젝트가 과학적 발견에 사용되는 것이 멋짐. 예를 들어, LIGO에서 중력파를 GStreamer로 발견했음.
- **ROOT의 문제점**: ROOT는 많은 기능을 가지고 있지만, API 설계가 좋지 않고 라이브러리와 프로그램 간의 분리가 부족함. ROOT 6에서 일부 문제를 해결하려 했지만 시간이 걸림.
- **입출력 형식 문제**: 오래된 ROOT의 입출력 형식이 잘 문서화되지 않았음. 이제는 groot와 uproot 덕분에 ROOT 데이터를 쉽게 읽고 쓸 수 있음.
- **ROOT 6의 감사**: 매일 ROOT 6 이상의 버전을 사용하게 되어 감사함.
- **디버깅의 추억**: 컴퓨터 과학 배경이 없는 뛰어난 물리학자들이 작성한 코드를 밤새 디버깅했던 기억이 떠오름.
- **입자 물리학의 중추**: ROOT는 실험 입자 물리학에서 많은 작업의 중추이지만, 새로운 대학원생들에게는 악몽임.
- **Cling 사용**: Jupyter 노트북에서 C++ 인터프리터 Cling과 Xeus를 사용함. Python 3보다 훨씬 빠름. Cling을 주로 C++로 컴파일되는 언어의 JIT로 사용함.
- **소스 코드**: ROOT 프로젝트의 소스 코드는 [GitHub](https://github.com/root-project)에서 확인 가능함.
- **디버깅 악몽**: CERN ROOT 스크립트와 프로그램을 Eclipse IDE에서 디버깅하는 것은 악몽이었음. 하지만 끔찍한 환경에서도 놀라운 것을 만들 수 있다는 것을 보여줌.
