DynamoDB 로컬 "Failed to load native library sqlite4java" — 네이티브 라이브러리 sqlite4java를 로드하지 못했습니다.

TL;DR — DynamoDB Local의 스토리지 엔진은 시작 시 기본 라이브러리(sqlite4java)를 로드하지만 JVM이 이를 찾을 수 없거나 실행할 수 없습니다. 두 가지 전형적인 원인은 -Djava.library.path=./DynamoDBLocal_lib 없이 jar를 실행했거나 Apple Silicon Mac을 사용 중이고 번들 바이너리가 x86_64용이라는 것입니다. Native-lib 폴더에서 JVM을 가리키거나, 현재 DynamoDB Local로 업데이트하거나, 멀티 아키텍처 Docker 이미지를 실행하세요.

무엇을 의미하는가

Failed to load native library:'libsqlite4java-osx-1.0.392.dylib'. ...
java.lang.UnsatisfiedLinkError: no sqlite4java-osx-x86_64-1.0.392 in java.library.path
# Unable to start DynamoDB Localnative library load failure

DynamoDB Local은 온디스크 스토리지가 네이티브(OS별, 아키텍처별) 라이브러리로 지원되는 Java 애플리케이션입니다. UnsatisfiedLinkError은 해당 바이너리를 연결할 수 없다는 JVM입니다. 라이브러리 경로에 전혀 없거나 파일이 존재하지만 JVM과 다른 OS/CPU 아키텍처용으로 빌드되었습니다. 에뮬레이터가 없으면 에뮬레이터를 시작할 수 없습니다.

왜 발생하는가

  • Missing -Djava.library.path — 다운로드는 DynamoDBLocal_lib/의 네이티브를 제공하며 문서화된 실행 명령은 JVM을 그곳으로 가리켜야 합니다. java -jar DynamoDBLocal.jar를 실행하면(또는 다른 작업 디렉터리에서) 해당 항목이 손실됩니다.
  • Apple Silicon(M 시리즈) + x86_64 네이티브 — 이전 DynamoDB Local 빌드 및 래퍼는 Intel libsqlite4java-osx 바이너리만 번들로 제공합니다. ARM64 JVM은 로드를 거부합니다("일치하는 아키텍처 없음").
  • 이전 복사본을 고정하는 래퍼jest-dynamodb, serverless-dynamodb-local 및 유사한 도구는 자체 DynamoDB Local을 다운로드합니다. 캐시된 이전 버전은 "업데이트" 후에도 오래된 기본 버전을 유지합니다.
  • 정리된 임시 디렉토리로 추출된 기본 — 일부 설정은 OS가 지운 임시 폴더에 압축을 풀므로 재부팅할 때까지 작동합니다.

어떻게 해결하는가

  1. 추출된 폴더에서 문서화된 방식으로 실행합니다.

    java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
  2. DynamoDB Local 업데이트 — 현재 릴리스를 다운로드합니다. 최신 빌드는 이전 빌드를 괴롭혔던 Apple Silicon 상황을 해결합니다. 래퍼가 설치를 관리하는 경우 캐시를 지우거나 다시 설치하면 실제로 새 버전을 가져올 수 있습니다.

  3. 또는 Docker를 사용하여 네이티브를 완전히 회피amazon/dynamodb-local 이미지는 가장 취약하지 않은 경로이며 Apple Silicon에서 실행됩니다.

    docker run -p 8000:8000 amazon/dynamodb-local
  4. 이전 빌드가 있는 Apple Silicon에서는 변경할 수 없습니다. Rosetta 2에서 x86_64 JDK를 실행하거나(Intel 네이티브가 JVM과 일치함) libsqlite4java-osx.dylib을 커뮤니티에 게시된 sqlite4java의 ARM64 빌드로 바꿉니다.

  5. 인메모리 탈출구: -inMemory에는 여전히 현재 빌드에 라이브러리가 필요합니다. 이는 누락된 네이티브에 대한 해결 방법이 아닙니다. 대신 경로/아치를 수정하세요.

DynoTable에서 열기

로컬이 시작되면 DynoTable — 설정 → 프로필 → 엔드포인트 http://localhost:8000, 모든 지역 문자열, 더미 자격 증명, 연결 테스트에서 연결합니다. 연결 스크립트를 작성하지 않고 ⌘K로 시드된 테이블을 엽니다.

JSON converter로 종자 데이터를 준비합니다. 전체 로컬 설정 경로는 InstallConnect to AWS를 참조하세요.

출처

관련 오류

참고 자료

위에 링크된 공식 AWS 문서를 기준으로 2026년 7월 13일에 마지막으로 확인되었습니다.

Console 없이 DynamoDB 작업하기

DynamoDB로는 실행할 수 없는 진짜 SQL(JOINs, GROUP BY, 집계)을 실행하는 빠른 DynamoDB 데스크톱 클라이언트. 시각적 편집과 여러분 자신의 Bedrock 키로 동작하는 AI 에이전트를 제공합니다.

30일 무료 체험, 신용카드 불필요 — 이후 기간 제한 없는 무료 요금제.