# Dasel - JSON, TOML, YAML, XML 및 CSV 데이터 선택, 삽입 및 삭제 도구

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=16363](https://news.hada.io/topic?id=16363)
- GeekNews Markdown: [https://news.hada.io/topic/16363.md](https://news.hada.io/topic/16363.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-08-19T09:41:53+09:00
- Updated: 2024-08-19T09:41:53+09:00
- Original source: [github.com/TomWright](https://github.com/TomWright/dasel)
- Points: 20
- Comments: 1

## Summary

Dasel은 JSON, YAML, TOML, XML, CSV 등 다양한 데이터 형식을 지원하며, 표준 선택자 구문을 사용하여 쉽게 쿼리하고 수정할 수 있는 도구입니다. 런타임 종속성이 없고 여러 플랫폼에서 사용 가능하며, jq/yq보다 최대 15배 빠른 성능을 자랑합니다. 다양한 설치 방법과 pre-commit 훅을 제공하여 개발 환경에 쉽게 통합할 수 있어 데이터 형식 간 변환이 필요한 프로젝트에 매우 유용합니다.

## Topic Body

- 데이터 구조를 선택자 문자열을 사용하여 쿼리하고 수정할 수 있게 해주는 도구  
  - JSON, YAML, TOML, XML, CSV를 지원하며 런타임 종속성이 없음  
  - 다양한 데이터 형식을 다루기 위해 새로운 도구를 배울 필요가 없음  
  - 표준 선택자 구문을 사용하여 한 번 배우면 모든 지원 데이터 형식을 쿼리/수정할 수 있음  
- homebrew, ASDF, scoop, docker, Nix 또는 최신 릴리스에서 컴파일된 바이너리로 설치 가능  
   - 터미널 자동완성도 지원   
- Features  
  - 구조화된 데이터 파일에서 데이터 쿼리/선택  
  - 구조화된 데이터 파일의 데이터 업데이트  
  - 데이터 파일 생성  
  - 여러 데이터 형식/유형 지원  
  - 데이터 형식/유형 간 변환  
  - 모든 데이터 형식에서 표준 쿼리/선택자 구문 사용  
  - 런타임 종속성 없음  
  - Linux, Mac, Windows에서 사용 가능  
  - 자체 프로젝트에 가져와서 사용 가능  
  - Docker를 통해 실행 가능  
  - jq/yq보다 빠름  
  - Pre-commit 훅  
- Playground  
  - dasel 명령어를 테스트할 수 있는 플레이그라운드 제공  
  - 플레이그라운드 소스 코드는 github.com/TomWright/daselplayground에서 확인 가능  
- Benchmarks  
  - 테스트 결과 dasel이 jq보다 최대 3배, yq보다 최대 15배 빠름  
  - 벤치마크 디렉토리에서 확인 가능  
### GN⁺의 정리  
  - Dasel은 다양한 데이터 형식을 지원하며, 표준 선택자 구문을 사용하여 쉽게 쿼리하고 수정할 수 있는 도구임  
  - 런타임 종속성이 없고, 여러 플랫폼에서 사용 가능하며, jq/yq보다 빠름  
  - 다양한 설치 방법과 pre-commit 훅을 제공하여 개발 환경에 쉽게 통합 가능  
  - 데이터 형식 간 변환이 필요하거나 여러 데이터 형식을 다루는 프로젝트에 유용함  
  - 유사한 기능을 가진 도구로는 jq, yq 등이 있음

## Comments



### Comment 28091

- Author: neo
- Created: 2024-08-19T09:41:53+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=41282495) 
- SQL 스타일 문법을 사용하여 비관계형 데이터 저장소를 쿼리하는 아이디어가 좋음
  - 모든 데이터 저장 형식을 SQL로 쿼리할 수 있는지 궁금해짐
- jq 스타일 쿼리를 선호하는 경우 qq를 사용할 수 있음
  - [qq GitHub 링크](https://github.com/JFryy/qq)
- Nushell을 사용하여 다양한 형식을 처리할 수 있음
  - [Nushell 명령어 링크](https://www.nushell.sh/commands/categories/formats.html)
  - [구조화된 데이터 탐색 링크](https://www.nushell.sh/book/navigating_structured_data.html)
- 매 분기마다 이러한 도구들이 주목받는 것 같음
  - 사람들이 자신들의 특정 사용 사례를 지원하는 도구를 보여주거나 나열하는 것을 기다리고 있음
  - 항상 많은 것을 배움
- 멋진 프로젝트지만 표준화된 쿼리 언어가 필요함
  - jq 쿼리 문법을 내재화하기 어려움
  - 널리 채택된 표준이 아닌 경우 학습에 투자하기 꺼려짐
  - `JMESPath`가 앞으로 나아갈 길일 수 있음
  - `gron`이 직관적이고 다른 도구와 잘 어울림
- Go에서 이런 도구를 많이 사용했음
  - yaml을 파싱하지 않고 변형만 하고 싶을 때가 있음
  - 기존 yaml 문서에 데이터를 선택하고 교체, 추가할 수 있는 기능이 자동화에 큰 도움이 됨
- ini 파일을 위한 유사한 도구
  - [crudini 링크](https://www.pixelbeat.org/programs/crudini/)
- 또 다른 도구 목록
  - [structured-text-tools 링크](https://github.com/dbohdan/structured-text-tools)
  - 이미 6번이나 목록에 있음
- 최근 AWS에서 JMESPath를 사용해본 경험이 있음
  - 어떤 구조화된 데이터 도구가 더 배우기 쉬운지, 문서화가 잘 되어 있는지, 작성 속도가 빠른지 궁금함
  - 좋은 비교 기사를 아는 사람이 있는지 물어봄
  - 여전히 jq를 기본으로 사용함
- yq가 이미 그 기능을 수행하지만 README에 따르면 느림
