1강: CUBRID와 Python 준비¶
🌐 LESSON_PREPARE.md의 번역입니다. 영어 원문이 표준이며, CI가 영어 원문과의 구조 일치를 검사합니다.
목표: 접속할 수 있는 CUBRID 데이터베이스와, 방언과 드라이버가 설치된 Python 가상 환경을
준비합니다. 로컬 실습 환경이면 CUBRID is ready와 설치된 세 패키지 버전이 출력됩니다.
사전 준비: Python 3.11 이상. 로컬 실습 환경에는 Docker와 bash 같은 셸도 필요합니다. SQLAlchemy로 CUBRID에 처음 연결하기의 첫 강의이며, SQLAlchemy, 방언, 드라이버, 서버가 어떻게 함께 동작하는지는 과정 페이지에서 설명합니다.
데이터베이스 고르기¶
상황에 맞는 방법을 고르세요.
방법 A: 이미 CUBRID 데이터베이스가 있습니다¶
관리자에게 묻거나 직접 구성한 환경에서 다음 다섯 값을 확인하세요.
- host: CUBRID가 실행되는 머신, 예:
db.example.com또는localhost - port: 연결을 받는 입구인 CUBRID 브로커 포트(기본값
33000) - database: 데이터베이스 이름, 예:
testdb - user와 password: 그 데이터베이스의 계정
3강은 작은 테이블 하나를 만들고 나중에 지웁니다. 연습용 데이터베이스나 그곳에서
테이블을 만들 수 있는 계정을 사용하세요. 이 튜토리얼에 운영 데이터베이스나 그
dba 계정을 사용하지 마세요. 2강부터 5강까지 실습 환경 URL
cubrid+pycubrid://dba@localhost:33000/testdb를 여러분의 값으로 채운
cubrid+pycubrid://USER:PASSWORD@HOST:PORT/DATABASE로 바꾼 뒤
sqlalchemy-cubrid 설치로 진행하세요.
실제 비밀번호는 공유하거나 커밋하는 파일에 넣지 마세요.
방법 B: 버려도 되는 로컬 데이터베이스가 필요합니다¶
Docker에서 testdb 데이터베이스가 있는 일회용 CUBRID 11.4 서버를 시작합니다.
Docker와 bash 같은 셸이 필요합니다.
명령은 x86_64(amd64) Linux에서 검증했습니다. cubrid/cubrid:11.4 이미지는 amd64용으로만
배포되므로 다른 아키텍처(예: Apple silicon)와 Windows는 검증하지 않았습니다.
Apple silicon 대안(이 프로젝트에서 직접 검증하지 않음): Docker Desktop의
Linux/amd64 에뮬레이션으로 이미지를 실행할 수 있습니다. 아래 docker run
명령에서 docker run 바로 다음에 --platform linux/amd64를 추가하세요.
127.0.0.1 로컬 포트 바인딩과 csql SELECT 1을 사용한 최대 3분 준비
확인 루프는 그대로 유지해야 합니다. 에뮬레이션은 느리거나 설치 환경에 따라
동작하지 않을 수 있으며 arm64 네이티브 지원을 의미하지 않습니다.
준비 확인에 실패하면 docker logs sqlalchemy-cubrid-quickstart로 원인을
확인하고, docker rm -f -v sqlalchemy-cubrid-quickstart로 실패한 일회용
컨테이너를 정리하세요. 계속 동작하지 않으면 방법 A의
기존 CUBRID 서버에 연결하면 됩니다. 비밀번호가 없는 로컬 DBA 실습 포트를
외부 인터페이스에 게시하지 마세요.
docker run -d --name sqlalchemy-cubrid-quickstart -e CUBRID_DB=testdb \
-p 127.0.0.1:33000:33000 cubrid/cubrid:11.4
ready=no
for i in $(seq 36); do
if docker exec sqlalchemy-cubrid-quickstart csql -u dba testdb -c "SELECT 1" >/dev/null 2>&1; then
ready=yes; break
fi
sleep 5
done
if [ "$ready" = yes ]; then echo "CUBRID is ready"
else echo "CUBRID did not answer within 3 minutes; see: docker logs sqlalchemy-cubrid-quickstart"; fi
127.0.0.1:은 이 컴퓨터에만 포트를 열어 다른 머신이 실습 환경에 연결할 수 없게 합니다.
docker run 다음의 반복문은 데이터베이스가 응답할 때까지 최대 3분을 기다린 뒤(보통 1분이 채 걸리지
않습니다) CUBRID is ready를 출력합니다. 대신 CUBRID did not answer within 3 minutes가
출력되면 docker logs sqlalchemy-cubrid-quickstart로 원인을 확인하세요. 포트 33000이
이미 사용 중인 경우처럼 docker run 자체가 실패했다면 먼저 그 문제를 해결하고
docker rm -f -v sqlalchemy-cubrid-quickstart로 컨테이너를 지운 뒤 다시 시작하세요.
실습 환경은 비밀번호가 비어 있는 dba 계정을 사용합니다. 이는 이 로컬 일회용
컨테이너에서만 허용됩니다. 다른 사람이 접근할 수 있는 서버에서는 절대 빈 비밀번호를
사용하지 마세요.
튜토리얼을 모두 마치면 docker rm -f -v sqlalchemy-cubrid-quickstart로 실습 환경을 지우세요.
이미지는 데이터베이스를 이 컨테이너에 속한 익명 Docker 볼륨에 보관합니다. -v가 그 볼륨도 지우므로
testdb가 함께 지워집니다. -v 없이 지우면 컨테이너만 지워지고 볼륨은 남습니다(docker volume ls에
보입니다).
가상 환경에 sqlalchemy-cubrid 설치¶
가상 환경은 이 프로젝트의 패키지를 시스템의 나머지 부분과 분리합니다. 먼저
python3 --version이 3.11 이상을 출력하는지 확인하세요. 더 오래된 버전이 나오면 첫 명령에서
더 새로운 인터프리터를 이름으로 지정하세요(예: python3.12). pip은 사용하는 Python을
지원하는 릴리스만 설치하므로, 오래된 인터프리터에는 오래된 패키지가 설치됩니다.
그런 다음 빈 폴더에서 다음 명령을 실행하세요.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install "sqlalchemy-cubrid[pycubrid]"
python -c "import sqlalchemy, sqlalchemy_cubrid, pycubrid; print(sqlalchemy.__version__, sqlalchemy_cubrid.__version__, pycubrid.__version__)"
Windows (PowerShell), 이미 접속 가능한 DB가 있는 방법 A:
py --version # Python 3.11 이상 확인
py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install "sqlalchemy-cubrid[pycubrid]"
python -c "import sqlalchemy, sqlalchemy_cubrid, pycubrid; print(sqlalchemy.__version__, sqlalchemy_cubrid.__version__, pycubrid.__version__)"
py --version으로 오래된 인터프리터가 선택된다면 설치된 Python 3.11 이상을
명시하세요(예: py -3.12 -m venv .venv). 이번 변경에서 Windows 명령은
실제 실행 검증하지 않았습니다. 위 Docker 실습은 별도로 Linux/amd64에서만
검증했으며, Windows 가상 환경 설치 안내가 Docker 이미지 호환성 검증을 뜻하지는
않습니다.
[pycubrid] 부분은 방언과 함께 권장 순수 Python 드라이버를 설치합니다. 마지막 명령은
설치된 세 버전(SQLAlchemy, sqlalchemy-cubrid, pycubrid)을 출력합니다(예: 2.1.4 1.11.0 1.13.0).
이 가이드를 마지막으로 실행한 2026-10-15의 PyPI 공개 릴리스이며, 더 새로운 릴리스가 있으면 더 높은
번호가 출력됩니다. 다음 강의의 모든 python 명령은 가상 환경이 활성화된 이 터미널에서 실행하세요.