Communitygithub.com

tanstack-table: 헤드리스 UI 테이블 & 데이터그리드

TS/JS, React, Vue, Solid, Svelte, Qwik, Angular, Lit을 위한 강력한 테이블 및 데이터그리드 구축용 헤드리스 UI입니다.

tanstack-table: 헤드리스 UI 테이블 & 데이터그리드란 무엇인가요?

이 스킬은 TanStack Table 라이브러리를 활용하여, 복잡한 테이블과 데이터그리드를 구축할 수 있는 헤드리스 UI 솔루션을 제공합니다. TS/JS를 비롯해 React, Vue, Solid, Svelte, Qwik, Angular, Lit 등 다양한 프레임워크를 지원하므로, 팀의 기술 스택에 관계없이 일관된 방식으로 고성능 테이블을 구현할 수 있습니다. 헤드리스 아키텍처 덕분에 UI 디자인에 완전한 자유를 누리면서도, 정렬, 필터링, 페이징, 그룹화, 행 선택 등 엔터프라이즈급 기능을 손쉽게 추가할 수 있습니다. 이 스킬의 SKILL.md 문서는 공식 문서와 예제를 기반으로 구성되어 있어, AI 에이전트가 TanStack Table의 API와 개념을 빠르게 이해하고 프로젝트에 바로 적용할 수 있도록 돕습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tanstack-skills/tanstack-skills/tree/main/skills/tanstack-table

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

tanstack-table: 헤드리스 UI 테이블 & 데이터그리드은(는) 무엇을 하나요?

TS/JS, React, Vue, Solid, Svelte, Qwik, Angular, Lit을 위한 강력한 테이블 및 데이터그리드 구축용 헤드리스 UI입니다.

이 라이브러리는 UI 렌더링에는 관여하지 않고, 테이블의 상태 관리와 로직(정렬, 필터링, 페이징, 행 확장 등)을 추상화하여 제공합니다. 따라서 개발자는 원하는 디자인 시스템과 스타일링 기법(CSS-in-JS, Tailwind, 일반 CSS 등)을 자유롭게 사용할 수 있습니다.

주요 기능

  • 헤드리스(Headless): UI 요소를 강제하지 않으며, 데이터와 상태만 관리합니다.
  • 프레임워크 불가지론: 동일한 코어 API를 React, Vue, Solid, Svelte 등에서 사용할 수 있습니다.
  • 고급 기능: 정렬, 필터링, 글로벌 검색, 페이징(클라이언트/서버 측), 행 선택, 확장 가능한 행, 컬럼 고정, 가상화 지원.
  • 타입 안전성: TypeScript로 완전히 작성되어 강력한 타입 추론을 제공합니다.
  • 경량: 코어는 약 10KB(gzipped)로 가볍습니다.

지원 프레임워크

  • React (@tanstack/react-table)
  • Vue (@tanstack/vue-table)
  • Solid (@tanstack/solid-table)
  • Svelte (@tanstack/svelte-table)
  • Qwik (@tanstack/qwik-table)
  • Angular (@tanstack/angular-table)
  • Lit (@tanstack/lit-table)
  • 일반 TS/JS (@tanstack/table-core)

간단한 예제 (React)

import { useReactTable, getCoreRowModel, flexRender, createColumnHelper } from '@tanstack/react-table'

const columnHelper = createColumnHelper<User>()

const columns = [
  columnHelper.accessor('firstName', {
    header: '이름',
  }),
  columnHelper.accessor('lastName', {
    header: '성',
  }),
]

function Table({ data }: { data: User[] }) {
  const table = useReactTable({
    data,
    columns,
    getCoreRowModel: getCoreRowModel(),
  })

  return (
    <table>
      <thead>
        {table.getHeaderGroups().map(headerGroup => (
          <tr key={headerGroup.id}>
            {headerGroup.headers.map(header => (
              <th key={header.id}>
                {flexRender(header.column.columnDef.header, header.getContext())}
              </th>
            ))}
          </tr>
        ))}
      </thead>
      <tbody>
        {table.getRowModel().rows.map(row => (
          <tr key={row.id}>
            {row.getVisibleCells().map(cell => (
              <td key={cell.id}>
                {flexRender(cell.column.columnDef.cell, cell.getContext())}
              </td>
            ))}
          </tr>
        ))}
      </tbody>
    </table>
  )
}

설치 방법

각 프레임워크에 맞는 패키지를 설치하세요.

# React
npm install @tanstack/react-table

# Vue
npm install @tanstack/vue-table

# Solid
npm install @tanstack/solid-table

# 일반 JS/TS (코어만)
npm install @tanstack/table-core

참고 자료

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

관련 스킬