예시
입력 (Extended JSON)
{
"_id": { "$oid": "5f4a3b2c1d2e3f4a5b6c7d8e" },
"createdAt": { "$date": "2026-05-13T00:00:00Z" },
"count": { "$numberLong": "123456789" }
}출력 (Plain JSON)
{
"_id": "5f4a3b2c1d2e3f4a5b6c7d8e",
"createdAt": "2026-05-13T00:00:00.000Z",
"count": 123456789
}참고
MongoDB DataGrip · mongoexport · Compass 가 토해내는 Extended JSON 을 일반 JSON 으로 변환. 반대 방향(plain → EJSON) 도 지원.
사용법 / 자주 묻는 질문
이런 경우 사용하세요
- DataGrip · MongoDB Compass 에서 export 한 EJSON 을 일반 JSON 으로 변환
- mongoexport 결과를 API 응답 모킹으로 사용
- `$oid` · `$date` · `$numberLong` wrapper 제거
- MongoDB 문서를 Postman · curl 본문에 그대로 사용 가능하게 정리
- EJSON 문법 학습 — 어떤 BSON 타입이 어떻게 표현되는지
자주 묻는 질문
- Q.Extended JSON 이 뭔가요?
- A.MongoDB BSON 타입(ObjectId · Date · 64bit 정수 · Decimal128 등)을 JSON 안에 안전하게 표현하는 표준입니다. wrapper(`$oid`, `$date` 등) 로 타입을 보존.
- Q.Strict mode 와 Relaxed mode 차이는?
- A.Strict 는 모든 타입을 wrapper 로 감쌈, Relaxed 는 일반 JSON 으로 표현 가능한 값(int · 짧은 string)은 wrapper 없이 둠. 본 도구는 둘 다 인식.
- Q.역방향 변환(plain → EJSON) 결과는 안전한가요?
- A.기본 변환은 타입을 추론합니다 (예: 24자 hex string → ObjectId 후보). 정확한 BSON 타입이 필요하면 직접 wrapper 를 명시하세요.
재미있는 사실
MongoDB 의 BSON (Binary JSON) 은 2008년 10gen (현 MongoDB Inc.) 이 만든 binary 인코딩입니다. JSON 의 단점 — type 정보 부족 (Date 도 string? number?), 효율적 traverse 어려움 — 을 보완하려고 별도 데이터 타입 (Date, ObjectId, Decimal128, Binary 등) + length-prefix 구조를 박았어요.
BSON SpecExtended JSON 의 두 가지 모드 — Canonical 과 Relaxed. Canonical: `{"$date": {"$numberLong": "1234567890000"}}` (type 정확 보존). Relaxed: `{"$date": "2009-02-13T23:31:30Z"}` (human-readable, type 손실 가능). 사용 맥락에 따라 선택.
MongoDB — Extended JSONObjectId 는 12 바이트 — 4바이트 timestamp + 5바이트 랜덤 + 3바이트 카운터. 시계만 정확하면 분산 환경에서도 거의 충돌 없는 ID 생성 가능 — UUID v7 (2024 RFC 9562) 의 timestamp-prefixed 설계가 ObjectId 의 영향을 많이 받았어요.
MongoDB — ObjectId
관련 도구
- JSON 포매터 / 검증기
JSON 문자열을 포맷팅·검증·압축합니다. 들여쓰기 조정과 키 정렬 옵션이 있으며, 브라우저에서 즉시 실행됩니다.
- 문자열 케이스 변환
문자열을 camelCase·PascalCase·snake_case·kebab-case·CONSTANT_CASE·Title Case 6개 형태로 동시에 변환해 보여줍니다.
- 정규식 테스터
JavaScript 정규식을 실시간으로 테스트합니다. g/i/m/s/u/y 플래그와 캡처 그룹을 지원합니다.
- Markdown 프리뷰
Markdown을 HTML로 렌더링하여 좌·우로 비교 표시합니다. CommonMark + GFM(테이블·코드 펜스·태스크 리스트) 지원.
- HTML → Markdown
HTML을 Markdown으로 변환합니다. 헤딩·리스트·링크·코드·표·인용 지원. 브라우저 DOMParser 사용 — 정확하고 0 dependency.
- YAML ↔ JSON 변환
YAML과 JSON을 양방향 변환합니다. YAML 측의 주석·멀티라인 문자열을 허용합니다.
- 텍스트 비교
두 텍스트를 줄·단어·문자 단위로 비교하고 추가/삭제를 강조합니다.
- JSON 비교
두 JSON을 정렬·정규화 후 비교, 변경점을 강조합니다. 잘못된 JSON 에러 안내 포함.
- CSV ↔ JSON
CSV와 JSON을 상호 변환합니다. 쿼팅·구분자·헤더 행을 지원합니다.
- SQL 포매터
SQL 쿼리를 들여쓰기·키워드 케이스에 맞게 포매팅합니다. PostgreSQL/MySQL/SQLite/Standard 지원.
- XML 포매터
XML을 보기 좋게 포매팅하거나 압축합니다. SOAP·sitemap·설정 파일에 적합.
- XML ↔ JSON
XML과 JSON을 상호 변환합니다. 속성과 요소 표기를 모두 지원합니다.
- 스마트 붙여넣기
어떤 텍스트든 붙여넣으면 적합한 도구를 추천합니다 — JSON·JWT·Base64·URL·UUID·Cron 등 15종 자동 감지.
- 로렘 입숨 생성기
더미 텍스트를 단어·문장·문단 단위로 생성합니다. 정통 Lorem Ipsum 또는 랜덤.
- JSON Path 추출기
JSONPath 표현식($.store.book[*].author 등)으로 JSON에서 값을 추출합니다.
- JSON Schema 검증기
JSON 데이터를 JSON Schema(Draft 2020-12)로 검증합니다. Ajv + format 검증 지원.
- JSON Schema 생성기
샘플 JSON에서 JSON Schema(Draft 2020-12)를 자동 생성합니다. 타입·필수 필드·중첩 구조 추론.
- HTML 포매터
HTML을 보기 좋게 들여쓰기·압축·속성 정렬합니다.
- CSS 포매터
CSS를 들여쓰기·압축합니다. 셀렉터·속성 스타일 옵션.
- JavaScript 포매터
JavaScript를 들여쓰기·압축합니다. 중괄호 스타일/들여쓰기 옵션.
- TOML ↔ JSON
TOML과 JSON을 상호 변환합니다. Cargo.toml, pyproject.toml 등 설정 파일에 자주 사용.
- INI ↔ JSON
INI 설정 파일을 JSON으로 변환합니다. [section]·주석(;/#)·key=value 지원.
- JSON → TypeScript
JSON 샘플로 TypeScript interface를 생성합니다. 중첩 객체는 별도 interface로 분리.
- JS Object → JSON
JavaScript 객체 리터럴(따옴표 없는 키, 작은따옴표, trailing comma, 주석)을 표준 JSON 으로 변환합니다. 관대한 파서, 엄격한 출력.
- Slug 생성기
텍스트를 URL-safe slug으로 변환합니다. 구분자/대소문자/악센트 제거 옵션.
- ASCII 트리
들여쓰기 또는 경로 목록을 box-drawing 트리(├── │ └──)로 변환합니다.
- Diff 패치
두 텍스트로부터 unified diff(-u) 패치를 생성합니다. `git apply` / `patch -p0` 호환.
- Mock 데이터 생성기
이름·이메일·UUID·날짜 등 가짜 JSON 레코드를 생성합니다. 외부 의존 없음.