이 저장소는 공식 문서와 전체 테스트를 관리하기 위한 저장소이며, 실제 과제 수행은 GitHub Classroom을 통해서 이뤄집니다.
BlueBase는 교육용으로 만들어진 Python 기반의 단일 사용자 DBMS입니다. Stanford의 RedBase를 참고하여 만들었습니다.
BlueBase의 각 component를 구현하면서, DBMS를 가장 밑바닥부터 직접 구현해보는 것을 목표로 합니다.
자세한 내용은 공식 문서를 참고해주세요.
향후에 이 과제를 할 학생들의 배움의 즐거움을 위해서 정답 코드 공유는 자제를 부탁드려요.
uv를 사용해서 Python 환경을 관리합니다.
uv syncDocker를 사용하고 싶을 경우:
docker build -t bluebase .테스트는 pytest를 이용해서 진행하게 됩니다.
테스트의 기본 설정(pytest.ini)은 소스코드의 coverage를 측정하기도 합니다. 테스트 후 생성된 htmlcov/index.html 파일 열어보면 자세하게 알 수 있습니다.
uv run pytest(예시) PF component를 테스트 하고 싶을때:
uv run pytest bluebase/pf/(예시) PF component의 manager에 대해 테스트 하고 싶을떄:
uv run pytest bluebase/pf/tests/test_manager.py실험에는 추가적인 환경이 필요합니다:
uv sync --group exps이후 모듈로 실행합니다.
uv run -m exps.pf.cache_policy한편, Docker에는 모든 환경이 설치되어 있습니다.
docker build -t bluebase .
docker run bluebase -m exps.pf.cache_policy문서 생성은 추가적인 환경이 필요합니다:
uv sync --group docs이후 sphinx의 도움을 받아서 문서를 생성합니다.
uv run sphinx-build --write-all ./docs/source ./docs/build생성 후, docs/build/index.html 파일을 열어보면 빌드된 문서를 확인할 수 있습니다.