초보자를 위한 품질 커맨드(quality command) 2편: quality check 배치파일 안에서는 무슨 일이 벌어질까?

1편에서 정리했던 것처럼, 품질 커맨드(quality command)는
여러 가지 코드 품질 체크(quality check)를 한 번에 돌려주는 “대표 버튼”이었습니다.
이번 2편의 주인공은 바로 그 버튼을 담당하는 파일,
바로 quality_check.bat .
“Windows에서 이 배치 파일 하나만 실행하면
내가 일일이 타이핑해야 할 검사 명령들을
순서대로, 안전하게, 한 번에 돌려준다.”
이게 오늘의 핵심 그림이에요.
1. quality_check.bat – 역할부터 이해하기
초보자 입장에서 quality_check.bat를 이렇게 생각하시면 편합니다.
- 그냥 텍스트로 쓴 스크립트 파일인데
- 안에는 여러 줄의 명령어가 들어있고
- 이걸 더블 클릭or
In the terminal, typequality_check.bat라고 실행하면 - 안에 들어있는 명령들이 위에서 아래로 차례대로 실행됩니다.
즉, 원래라면
python scripts\py_compile_all.py
python manage.py check
python manage.py makemigrations --check
python manage.py test
...이렇게 여러 줄을 하나씩 쳐야 하는 것을,
품질 커맨드(quality command) 한 줄로 대체한 셈이죠.
2. quality_check.bat 안에서 돌아가는 체크들

Now, the quality_check.bat가 보통 어떤 순서로 코드 품질 체크를 하는지
개념적으로만 차근차근 살펴볼게요.
2-1. (1단계) Python 구문 체크 – py_compile_all.py
제일 먼저 하는 일은
“프로젝트 안에 있는 파이썬 파일들,
문법 에러 없이 컴파일 되니?”
를 확인하는 겁니다.
여기에서 보통 scripts/py_compile_all.py 같은 스크립트를 호출합니다.
- 이 스크립트는 프로젝트 전체를 돌면서
.py파일을 하나씩 찾아서py_compile모듈로 컴파일을 시도해봅니다.
- 만약 괄호가 안 맞거나, 콜론이 빠진 것 같은 기본 문법 에러가 있으면
거기서 바로 에러를 띄우고 중단할 수 있어요.
👉 초보자에게는 이게 특히 중요합니다.
“서버 띄우고 나서 에러가 터지는 게 아니라,
품질 커맨드에서 선제적으로 잡아낸다”는 점이요.
2-2. (2단계) Django 시스템 체크 – python manage.py check
두 번째로는 Django 자체 건강검진.
보통 quality_check.bat 안에서
python manage.py check같은 명령이 들어갑니다.
이 명령은
- INSTALLED_APPS 설정 이상 없는지
- 잘못된 설정, 빠진 설정이 없는지
- 모델/URL/중요 설정에 구조적으로 큰 문제는 없는지
를 Django가 한 번 훑어주는 역할을 합니다.
That is,
“Django 입장에서 봤을 때
이 프로젝트가 최소한 말이 되는 구조인가?”
를 확인해 주는 단계예요.
2-3. (3단계) 마이그레이션 충돌 체크
다음으로 중요한 게 마이그레이션 충돌.
여기서는 대략 이런 명령들이 들어갈 수 있습니다.
python manage.py makemigrations --check- or
python manage.py showmigrations등을 조합
이런 체크를 넣는 이유는 간단합니다.
- 모델을 수정했는데,
- 마이그레이션 파일을 깜빡하고 안 만들었거나
- 여러 브랜치에서 마이그레이션이 꼬여 충돌이 생겼을 때
배포 직전에 알 수 있으면 얼마나 좋겠어요
바로 그걸 잡아내는 용도입니다.
“DB 구조와 코드가 서로 엇갈려 있지 않은지,
배포 전에 한 번만 제대로 확인하자!”
2-4. (4단계) 보안/배포 권장사항 체크
조금 더 신경 쓰는 프로젝트라면
보안 및 배포 관련 체크도 같이 넣을 수 있습니다.
예를 들어
- DEBUG가 True로 되어 있지 않은지 (배포 환경에서는 False)
- 중요한 설정(예: SECRET_KEY, ALLOWED_HOSTS)이 기본값으로 방치되어 있지 않은지
- static/media 관련 설정이 최소한 기본은 되어 있는지
등을 검사하는 간단한 스크립트를 만들어quality_check.bat 안에서 함께 호출할 수 있어요.
여기서 핵심은,
“이걸 사람이 매번 눈으로 확인하지 않게,
품질 커맨드(quality command)가 자동으로 체크해 주게 만든다”는 점입니다.
2-5. (5단계) 테스트 실행 (선택)
마지막 단계로는 보통 테스트 실행을 붙입니다.
python manage.py test이렇게 단순하게 전체 테스트를 돌릴 수도 있고,
별도의 테스트 스크립트를 만들어서 품질 커맨드 마지막에 넣어도 됩니다.
초보자 관점에서는 이렇게 이해하시면 편합니다.
“내가 직접 테스트를 어떤 순서로 어떻게 돌려야 할지 몰라도,
quality_check.bat만 돌리면,
팀에서 정한 최소한의 테스트들은 자동으로 돈다.”
3. 초보자 기준 “실제 실행 흐름” 상상해보기
초보자 입장에서, quality_check.bat 실행하는 과정을
조금 더 현실적으로 그려볼게요.
- 터미널 열기
- Windows라면 CMD나 PowerShell을 열고
- 프로젝트 폴더로 이동합니다.
- 품질 커맨드 실행
quality_check.bat를 더블클릭하거나- In the terminal, type
quality_check.bat또는 이름만 입력해 실행합니다.
- 검사 진행 로그 보기
- 화면에
- “Python 구문 체크 중…”
- “Django 시스템 체크 통과”
- “마이그레이션 체크 OK”
- “테스트 진행 중…”
이런 식의 메시지가 순서대로 뜹니다.
- 화면에
- 결과 확인
- 중간에 실패하는 단계가 있으면
- 어느 파일에서 에러가 났는지
- 어떤 커맨드에서 문제가 생겼는지
로그를 보고, 해당 파일을 고치면 됩니다.
- 모든 단계가 통과되면
- “이제 커밋/푸시/배포해도 되겠다”는 안심이 생기죠.
- 중간에 실패하는 단계가 있으면
4. 나중에 확장하기 – quality_check.bat 커스터마이징 아이디어
2편에서는 구조 이해까지 하고,
구체적인 코드 구현은 다음 편으로 넘길 거지만,
앞으로 이런 식으로 확장해볼 수 있어요.
- 환경별 분기
- 개발/스테이징/운영 환경에 따라 일부 체크만 선택적으로 수행
- 속도 조절
- 빠른 체크 모드 (구문/시스템/마이그레이션만)
- 풀 체크 모드 (보안 + 테스트 + 커버리지까지)
- 로그 파일 저장
- 품질 커맨드 결과를 매번 로그 파일로 남겨서
“언제 어떤 에러가 자주 났는지” 추적
- 품질 커맨드 결과를 매번 로그 파일로 남겨서
이런 것을 하나씩 붙여 나가면,
품질 커맨드 = 팀의 자동 품질 게이트웨이가 됩니다.
5. 용어 정리 (2편 버전)
quality_check.bat
Windows에서 여러 품질 관련 명령을 한 번에 실행하기 위해 만든 배치 파일.
초보자는 이 파일만 실행해도 팀이 준비한 코드 품질 체크가 자동으로 돌아가게 됩니다.- 배치 파일 (Batch file)
Windows에서.bator.cmd확장자를 가진 스크립트 파일.
여러 명령을 한 줄씩 적어두고, 파일 하나만 실행하면 위에서 아래로 순서대로 실행됩니다. - Django 시스템 체크 (
python manage.py check)
Django가 프로젝트 설정과 구조를 점검해주는 명령.
잘못된 설정이나 앱 구성 문제를 미리 알려줍니다. - 마이그레이션 충돌
DB 스키마를 표현하는 마이그레이션 파일들이
서로 꼬이거나 누락되어 생기는 문제.
종종 “로컬에서는 되는데 서버에서 안 된다”의 원인이 됩니다. - 보안/배포 권장사항 체크
DEBUG 설정, SECRET_KEY, ALLOWED_HOSTS, static 설정 등
배포 환경에서 꼭 먼저 확인해야 할 기본 보안 항목들을 자동으로 확인하는 것. - 테스트 실행 (
python manage.py test등)
프로젝트에 정의된 테스트 코드를 실제로 돌려서
최근 수정이 기존 기능을 망가뜨리지 않았는지 확인하는 절차입니다.






