DynamoDB JSON 변환기
일반 JSON을 DynamoDB의 속성-값 형식으로, 그리고 다시 거꾸로 변환하세요 — 즉시, 브라우저에서. 서버로 전송되는 것은 없습니다.
일반 JSON 대 DynamoDB JSON
DynamoDB의 저수준 와이어 형식은 모든 값에 타입을 태그합니다. 애플리케이션이 { "age": 36 }을 보는 곳에서 API는 { "age": { "N": "36" } }을 봅니다. 그 속성-값 형식은 AWS CLI가 출력하는 것이고, CloudWatch 로그와 DynamoDB Streams 레코드에 나타나는 것이며, 저수준 PutItem 호출에 붙여넣는 것입니다. SDK의 문서 클라이언트는 이를 숨기므로, 두 형식은 디버깅 중에 끊임없이 교차합니다.
이 변환기는 AWS SDK가 사용하는 것과 동일한 marshalling 라이브러리를 사용하므로, 출력은 SDK가 생성하는 것과 정확히 일치합니다. 전적으로 브라우저에서 실행되며 — 라이브러리는 필요할 때 로드되고 데이터는 페이지를 절대 벗어나지 않으므로 — 프로덕션 테이블의 실제 항목을 안전하게 붙여넣을 수 있습니다.
두 가지 엣지 케이스를 명시적으로 처리합니다. JavaScript의 안전 정수 범위를 넘는 숫자는 조용히 반올림되지 않고 문자열로 보존되며, 형식이 잘못된 속성 값 — 예를 들어 숫자가 아닌 텍스트를 담은 숫자 타입 — 은 조용히 강제 변환되지 않고 명확한 오류를 발생시킵니다. 목표는 손실 있는 근사치가 아니라 신뢰할 수 있는 충실한 변환입니다.
타입 태그가 처음이신가요? DynamoDB 데이터 타입 모든 속성-값 타입을 예제와 함께 안내합니다.
자주 묻는 질문
DynamoDB JSON이란 무엇인가요?
DynamoDB JSON(속성-값 형식)은 모든 값을 타입을 나타내는 단일 키 객체로 감쌉니다. 문자열은 { "S": "abc" }, 숫자는 { "N": "5" }, 리스트는 { "L": [...] }, 맵은 { "M": {...} }입니다. 저수준 DynamoDB API와 AWS CLI 같은 도구는 이 형식을 사용하고, SDK 문서 클라이언트와 대부분의 애플리케이션 코드는 일반 JSON을 사용합니다. 이 변환기는 둘 사이를 변환합니다.
큰 숫자가 문자열로 바뀌는 이유는 무엇인가요?
DynamoDB는 정밀도 제한 없는 38자리 십진수 타입으로 숫자를 저장하지만, JavaScript는 2^53을 넘으면 정밀도를 잃습니다. 무손실을 유지하기 위해, 그 안전 범위보다 큰 숫자는 DynamoDB JSON을 일반 JSON으로 변환할 때 문자열로 전달됩니다. 그런 숫자를 일반 JSON 숫자 그대로 붙여넣으면 오류가 발생하는데, 이 도구가 보기도 전에 이미 정밀도를 잃었기 때문입니다.
세트와 Binary 값을 변환할 수 있나요?
DynamoDB JSON에서 일반 JSON으로 변환할 때는 가능합니다 — String/Number/Binary Set은 배열이 되고 Binary 값은 base64 문자열이 됩니다. 반대 방향은 이를 추론할 수 없습니다. 일반 JSON에는 Set 타입이 없으므로 배열은 항상 List(L)로 변환됩니다. 세트와 Binary는 DynamoDB JSON 쪽에서 직접 작성하세요.
내 데이터가 브라우저를 벗어나나요?
아니요. 변환은 공식 AWS marshalling 라이브러리를 사용해 전적으로 클라이언트 측에서 실행되며, 브라우저에서 필요할 때 로드됩니다. 붙여넣은 내용은 서버로 전송되지 않습니다.