---
title: 데이터 저장소
description: 조직 데이터 저장소의 파일 구조와 변경 사항이 모델, 대시보드, 테마, 패키지에 반영되는 방식을 이해합니다.
species: concept
---
# 데이터 저장소

각 조직에는 Git 기반 데이터 저장소가 있습니다. 앱의 **파일** 보기와 일반적인 Git 복제본은 같은 이력을 편집하므로, 풀 리퀘스트에서 검토한 모델이 Supernova에서 실행하는 모델입니다.

```text
models/
  revenue.sql
dashboards/
  revenue/
    page.md
    monthly.sql
themes/
  skycrane.json
packages/
  skycrane/finance/typesql.pkg
typesql.lock
```

## 파일 구조

| 경로 | 의미 |
|---|---|
| `models/**/*.sql` | 구체화된 모델입니다. 기본 파일 이름이 출력 테이블 이름입니다. |
| `dashboards/<slug>/page.md` | 대시보드 레이아웃과 프런트매터입니다. |
| `dashboards/<slug>/*.sql` | 해당 대시보드에서 사용하는 쿼리입니다. |
| `themes/<slug>.json` | 조직에서 작성한 차트 테마입니다. |
| `packages/<namespace>/<name>/typesql.pkg` | 콘텐츠가 고정된 typesql 패키지입니다. |
| `typesql.lock` | 타입 검사에서 사용하는 정확한 패키지 해시입니다. |

## 저장소 변경

**파일** 보기는 로컬 체크아웃 없이 편집, 이력, 활동을 지원합니다. 로컬에서 작업하려면 조직 설정에 SSH 키를 추가하고 저장소 URL을 복사한 뒤 일반적인 `git clone`, `git pull`, `git push` 명령을 사용합니다.

허용된 모든 푸시는 새 저장소 리비전이 됩니다. 모델 실행은 고정된 리비전을 읽으며 서로 다른 두 커밋의 파일을 섞지 않습니다. 대시보드 페이지도 같은 이력에서 같은 디렉터리의 쿼리 파일을 찾습니다.

## 이름은 계약

`models/revenue.sql`을 이동하면 모델의 네임스페이스가 바뀝니다. 파일 이름을 변경하면 출력 테이블이 바뀝니다. 대시보드와 패키지 경로도 식별자이므로, 경로 변경은 단순한 외형 수정이 아니라 API 변경으로 검토하세요.

Supernova는 구문 분석된 테이블 참조와 명시적 `-- depends_on:` 지시문에서 모델 종속성을 도출합니다. 폴더 순서와 파일 수정 시각은 실행 순서를 결정하지 않습니다.
