jsTree: jQuery로 인터랙티브 트리 구조 구축
이 강력한 트리 플러그인으로 계층적 데이터를 생성, 관리 및 시각화하세요.
jsTree API란?
jsTree는 복잡한 JSON 데이터를 인터랙티브한 계층적 트리 구조로 변환하여 개발자에게 중첩된 JSON 객체를 시각화하고 탐색할 수 있는 강력한 방법을 제공합니다. jQuery 플러그인으로 구축된 이 도구는 원시 JSON을 확장/축소 가능한 노드 트리로 변환합니다. API 응답, 구성 파일 또는 모든 계층적 데이터 세트를 검사하는 데 이상적입니다.
JSON 시각화를 위한 주요 기능:
- JSON-트리 변환: JSON 배열/객체를 부모-자식 노드로 자동 렌더링
- 인터랙티브 탐색: 노드 확장/축소로 심층 JSON 구조 분석
- 동적 로딩: 대규모 JSON 데이터 세트 지연 로딩으로 성능 최적화
- 사용자 정의 노드 렌더링: JSON 데이터 유형(배열, 객체, 값)에 기반한 노드 스타일링
- 검색 & 필터링: 복잡한 JSON 트리에서 키/값 빠르게 찾기
평면 JSON 뷰어와 달리 jsTree는 데이터의 계층 구조와 관계를 유지하므로 API 디버깅 또는 중첩된 JSON 스키마 문서화에 이상적입니다.
jsTree를 선택해야 하는 이유
- 검증된 솔루션: 10년 이상의 활발한 개발 이력
- 경량: jQuery만 종속성으로 필요
- 접근성: WCAG 2.0 준수
- 풍부한 문서: 완벽한 API 참조
- MIT 라이선스: 상용 사용 무료
설치
jsTree는 패키지 관리자를 통해 설치하거나 CDN에서 직접 포함할 수 있습니다.
NPM 설치
npm install jstree
참고: jsTree 전에 jQuery를 포함하는 것을 잊지 마세요.
코드 예제
다음 예제로 jsTree의 기능을 탐색하세요:
예제 1: HTML 기반 기본 트리
jsTree를 생성하는 가장 간단한 방법은 중첩된 HTML 목록을 변환하는 것입니다. 이 접근 방식은 트리 구조가 정적이거나 프로토타이핑할 때 이상적입니다. 플러그인은 중첩된 UL/LI 구조를 확장/축소 기능이 있는 인터랙티브 트리로 자동 변환합니다. 기본 구현에는 최소한의 JavaScript만 필요하며 간단한 탐색 메뉴나 콘텐츠 구조에 적합합니다.
시연된 기능:
- HTML-트리 변환
- 확장/축소 기능
- 기본 테마
예제 2: JSON을 통한 데이터 로딩
동적 애플리케이션의 경우 jsTree는 JSON에서 데이터를 로드할 수 있습니다. 이 접근 방식은 더 유연하며 프로그램 방식으로 트리 구조를 구축할 수 있습니다. JSON 형식은 직관적이며 각 노드에는 "id", "text", "children", "state" 등의 속성이 있습니다. 또한 각 노드에 아이콘, 비활성 상태 및 기타 속성을 지정할 수 있습니다. 이 방법은 트리 데이터가 데이터베이스나 API에서 오는 경우에 특히 유용합니다.
예제 3: 체크박스와 드래그 앤 드롭
jsTree는 핵심 기능을 확장하는 플러그인을 제공합니다. 체크박스 플러그인은 각 노드에 선택 가능한 체크박스를 추가하고 dnd 플러그인은 드래그 앤 드롭 작업을 가능하게 합니다. 이러한 기능은 사용자가 여러 항목을 선택하거나 계층 구조를 재구성해야 하는 파일 관리자 또는 권한 시스템과 같은 인터페이스를 구축할 때 필수적입니다. 이 플러그인들은 수백 개의 노드가 있어도 트리의 성능을 유지합니다.
고급 기능
jsTree는 전문적인 워크플로를 지원합니다:
- 지연 로딩: 요청 시 노드 로드:
지연 로딩
$('#tree').jstree({ 'core': { 'data': { 'url': '/nodes/', 'data': function (node) { return { 'id': node.id }; } } } });
- 이벤트 처리: 트리 상호작용에 응답:
이벤트 리스너
$('#tree').on('changed.jstree', function (e, data) { console.log('선택된 노드:', data.selected); });
- 사용자 정의 테마: 트리 스타일링:
사용자 정의 테마
$('#tree').jstree({ 'themes': { 'name': 'custom', 'dots': false, 'icons': false } });
결론
jsTree는 계층적 데이터 시각화를 위한 강력한 솔루션을 제공합니다. 다음에 이상적입니다:
- 파일 브라우저: 디렉터리 구조 탐색
- 탐색 메뉴: 다단계 메뉴 생성
- CMS 인터페이스: 콘텐츠 계층 관리
- 구성 도구: 중첩된 설정 편집
풍부한 플러그인 시스템과 활발한 유지보수로 jsTree는 웹 애플리케이션에서 트리 구조를 위한 핵심 솔루션으로 남아 있습니다.