SchemaSpy와 Docker를 사용하여 데이터베이스 문서 생성 (Windows, Linux, macOS)

발행: (2026년 3월 26일 AM 11:32 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

소개

SchemaSpy는 데이터베이스에서 인터랙티브한 HTML 문서를 생성하는 도구입니다. 이 가이드는 Oracle을 예시로 사용하지만, SchemaSpy는 PostgreSQL, MySQL, SQL Server 등에서도 동작합니다. Docker를 이용하면 Windows, Linux, macOS 어디서든 실행할 수 있습니다.

사전 준비 사항

  • 시스템에 Docker가 설치되어 있어야 합니다(예: Docker Desktop)
  • JDBC 드라이버. Docker 이미지에는 다음 드라이버가 포함되어 있습니다:
    • MySQL
    • MariaDB
    • PostgreSQL
    • jTDS
      이 중 하나를 사용할 경우 별도로 드라이버를 다운로드할 필요가 없습니다.
  • Oracle을 사용할 경우, Oracle 웹사이트에서 JDBC 드라이버 ojdbc11.jar를 다운로드하십시오.

시작하기

1단계: 작업 디렉터리 만들기

mkdir schemaspy-doc && cd schemaspy-doc
mkdir drivers output

2단계: JDBC 드라이버 추가

다운로드한 ojdbc11.jar 파일을 방금 만든 drivers/ 폴더로 이동합니다.

3단계: schemaspy.properties 파일 만들기

다음 내용을 포함하는 schemaspy.properties 파일을 생성합니다:

schemaspy.t=orathin-service
schemaspy.driver=oracle.jdbc.OracleDriver

schemaspy.host=server_or_ip
schemaspy.port=1521
schemaspy.db=db_name
schemaspy.u=database_user
schemaspy.p=database_password
schemaspy.schema=schema_name

schemaspy.norows=true
schemaspy.noviews=true
# Required in Oracle
schemaspy.cat=%

schemaspy.t 파라미터에 어떤 값을 넣어야 할지 모를 경우, 다음 명령을 실행해 보세요:

docker run --rm schemaspy/schemaspy -dbHelp

이 명령은 지원되는 데이터베이스 유형과 각 유형에 필요한 파라미터를 나열합니다.

4단계: Docker로 SchemaSpy 실행

Linux/macOS에서

docker run --rm \
  -v "$(pwd)/schemaspy.properties:/schemaspy.properties" \
  -v "$(pwd)/output:/output" \
  -v "$(pwd)/drivers:/drivers" \
  schemaspy/schemaspy

Windows (PowerShell)에서

docker run --rm `
  -v "${PWD}/schemaspy.properties:/schemaspy.properties" `
  -v "${PWD}/output:/output" `
  -v "${PWD}/drivers:/drivers" `
  schemaspy/schemaspy

Note: Docker 컨테이너 내부에서 데이터베이스 호스트를 localhost 로 지정하면 작동하지 않습니다. localhost는 컨테이너 자체를 가리키기 때문입니다. 호스트 머신에서 실행 중인 데이터베이스에 연결하려면 host.docker.internal 을 사용하십시오. 예:

schemaspy.host=host.docker.internal

5단계: 생성된 문서 보기

명령이 완료되면 output/index.html 파일을 웹 브라우저에서 엽니다. 다음과 같은 내용을 확인할 수 있습니다:

  • 엔터티‑관계 다이어그램
  • 테이블 구조
  • 컬럼, 인덱스, 관계 등
  • 아름답고 클릭 가능한 인터랙티브 HTML 인터페이스

예시 출력

Sample 1

Sample 2

0 조회
Back to Blog

관련 글

더 보기 »

E-commice용 간단한 MySQL 예제

안녕하세요 여러분, SQL에 대한 제 경험을 공유하고 싶습니다. 아래는 주요 테이블과 관계를 보여주는 간단한 e‑commerce 스키마입니다. Role Table sql -- Rol...