Skip to content
Back to skills

34 Ndjson Storage

ASecurity

이 문서는 NDJSON 저장 포맷의 정본이다.

  • 18 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 4, 2026
toolsjavascriptjavaapi

Works with

  • api

Security analysis

A100/100

Scanned September 4, 2026

npx -y skills add majiayu000/claude-skill-registry-data --skill 34-ndjson-storage --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 34 Ndjson Storage?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 34 Ndjson Storage
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-34-ndjson-storage-claude-skill-registry-data/badge)](https://www.skillsdirectory.com/skills/majiayu000-34-ndjson-storage-claude-skill-registry-data)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: 34-ndjson-storage
description: 이 문서는 NDJSON 저장 포맷의 정본이다.
---

# 34-ndjson-storage

Status: ACTIVE
AppliesTo: v10

## SSOT

이 문서는 **NDJSON 저장 포맷**의 정본이다.

---

## 목적/범위

**NDJSON(Line-delimited JSON) 파일의 저장 포맷(내용/확장자)을 정의한다.**

이 스킬은 "저장 포맷"만 정의한다. 구체적인 폴더 경로/라우팅은 각 도메인 스킬에서 정한다:
- String Table: `skills/devian-data/33-string-table/SKILL.md` → `.../string/ndjson/...`
- 일반 Table: `skills/devian-data/32-json-row-io/SKILL.md` → `.../ndjson/...`

---

## NDJSON 포맷 규칙 (Hard Rules)

### 파일 인코딩

**UTF-8 텍스트**

### 내용 형식

**NDJSON (Line-delimited JSON)**

- 한 줄 = JSON object 1개
- 빈 줄 금지
- JSON array (`[]`) 금지

```
{"id":"item1","value":100}
{"id":"item2","value":200}
{"id":"item3","value":300}
```

### 확장자 규칙 (중요)

**파일 확장자는 `.json`이다.**

- 내용이 NDJSON이라도 확장자는 `.json` 사용
- 소비 측(Unity/툴링) 요구로 `.json` 고정
- `.ndjson` 확장자 금지

### 결정성 (Deterministic)

**같은 입력이면 항상 같은 출력이 나와야 한다.**

- 라인 순서: 입력 데이터 순서 유지
- JSON stringify: 컴팩트 포맷 (들여쓰기 없음)
- 필드 순서: 각 도메인 스킬에서 정의

---

## 빌더 API

### 소스 경로

```
framework-ts/tools/builder/generators/ndjson-storage.js
```

### Export 함수

```javascript
/**
 * Object 배열을 NDJSON 문자열로 변환
 * @param {Array<object>} objects - JSON object 배열
 * @returns {string} NDJSON 문자열
 */
export function encodeNdjsonFromObjects(objects);

/**
 * JSON 문자열 배열을 NDJSON 문자열로 변환
 * @param {Array<string>} lines - 이미 JSON.stringify된 라인 배열
 * @returns {string} NDJSON 문자열
 */
export function encodeNdjsonFromLines(lines);
```

### 동작 규칙

- `encodeNdjsonFromObjects`: `objects.map(o => JSON.stringify(o)).join('\n')`
- `encodeNdjsonFromLines`: `lines.join('\n')`
- 빈 배열이면 `''` 반환 (기존 동작과 호환)

---

## 금지 행동

- NDJSON 내용을 JSON array(`[]`)로 바꾸기 금지
- 확장자를 `.ndjson`로 바꾸기 금지 (`.json` 유지)
- 라인 끝에 trailing comma 추가 금지

---

## DoD (검증 가능)

### PASS 조건

- [ ] NDJSON 파일 확장자가 `.json`임
- [ ] 파일 내용이 한 줄당 JSON object 1개
- [ ] JSON array가 아님
- [ ] 빈 줄 없음
- [ ] 같은 입력이면 같은 출력 (결정성)

### FAIL 조건

- 파일 확장자가 `.ndjson`
- 내용이 JSON array
- 빈 줄 포함
- 비결정적 출력

---

## Reference

- Consumer: `skills/devian-data/32-json-row-io/SKILL.md` (일반 Table)
- Consumer: `skills/devian-data/33-string-table/SKILL.md` (String Table)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…