무료 도구

DynamoDB 예약어 검사기

속성 이름을 붙여넣어 어떤 것이 DynamoDB 예약어와 충돌하는지 확인하고, 이를 안전하게 별칭 지정하는 ExpressionAttributeNames 맵을 복사하세요.

속성 이름

한 줄에 하나씩 속성 이름을 입력하세요(쉼표와 공백도 사용 가능). 각 이름은 대소문자를 구분하지 않고 DynamoDB 예약어 전체 목록과 대조하여 확인합니다.

6개 이름 중 4개가 예약어이므로 별칭을 지정해야 합니다.
  • name#name예약어
  • status#status예약어
  • timestamp#timestamp예약어
  • userId정상
  • count#count예약어
  • email정상
ExpressionAttributeNames
{
  "#name": "name",
  "#status": "status",
  "#timestamp": "timestamp",
  "#count": "count"
}

표현식에서 각 예약어를 # 별칭으로 참조하고, 이 맵을 ExpressionAttributeNames로 전달하세요.

예약어가 중요한 이유

DynamoDB는 표현식 안에서 별칭 없는 속성 이름으로 받아들이지 않는 긴 예약 키워드 목록을 유지합니다. 일상적인 이름 — name, status, size, count, timestamp, year — 이 여기에 포함됩니다. 이를 직접 참조하면 요청은 ValidationException으로 실패하며, 보통 검토 단계가 아니라 런타임에 발생합니다.

해결책은 표현식 속성 이름입니다. 실제 이름을 대신하는 # 플레이스홀더에 ExpressionAttributeNames 맵을 짝지은 것입니다. 이 검사기는 이름을 전체 목록과 대소문자 구분 없이 대조하고 예약어에 대한 그 맵을 자동으로 만들어, GetItem, Query, Update, Delete 요청에 바로 붙여넣을 수 있게 합니다.

별칭 지정은 한 부류의 오류 전체를 피하는 작은 습관입니다 — 표현식 속성 이름과 값 은 플레이스홀더를 심도 있게 설명하며, Expression Builder 은 여러분이 만드는 동안 모든 이름에 별칭을 대신 지정합니다.

자주 묻는 질문

DynamoDB 예약어란 무엇인가요?

DynamoDB는 표현식 안에서 속성 이름으로 직접 사용할 수 없는 방대한 키워드 목록 — 약 573개 — 을 예약합니다. name, status, timestamp, size, count 같은 이름은 모두 예약어입니다. 프로젝션, 필터, 조건, 업데이트 표현식에서 이를 직접 참조하면 DynamoDB는 “Attribute name is a reserved keyword” 메시지와 함께 ValidationException을 반환합니다.

예약어를 속성 이름으로 사용하려면 어떻게 하나요?

표현식 속성 이름으로 별칭을 지정하세요 — #로 시작하며 실제 이름에 매핑되는 플레이스홀더입니다. 예를 들어 표현식에서 #name을 참조하고 ExpressionAttributeNames로 { "#name": "name" }을 전달하세요. 이 도구는 입력한 모든 예약어에 대해 요청에 바로 붙여넣을 수 있는 그 맵을 생성합니다.

예약어 목록은 대소문자를 구분하나요?

아니요. DynamoDB의 예약어 목록은 대소문자를 구분하지 않으므로 Name, name, NAME은 모두 예약어 NAME으로 취급됩니다. 이 검사기는 DynamoDB와 똑같이 대소문자를 구분하지 않고 대조합니다.

모든 속성 이름에 별칭을 지정해야 하나요?

예약어만 별칭이 필요하지만, 많은 팀은 오류를 절대 마주치지 않고 표현식을 일관되게 읽기 위해 습관적으로 모든 이름에 별칭을 지정합니다. 예약어가 아닌 이름에 별칭을 지정해도 항상 안전합니다. 이 도구는 어떤 이름이 예약어인지 정확히 표시하여 여러분이 결정할 수 있게 합니다.

Console 없이 DynamoDB 작업하기

DynoTable은 DynamoDB를 위한 빠른 데스크톱 클라이언트입니다 — 테이블을 탐색하고, SQL 스타일 쿼리를 실행하고, 항목을 로컬에서 편집하세요.