VSC 세팅
확장 프로그램 설치
핵심
- Python (Microsoft)
- 용도
- Python 언어 지원, 디버깅, 인터프리터 선택 등 기본 기능
- 필수 이유
- 설치하면 Pylance가 자동으로 같이 설치되는데
- 이 두 가지가 VS Code Python 개발의 심장
- Ruff (Astral Software)
- 용도
- 코드 오류 검사(Linting) + 코드 포맷팅(Formatting)
- 추천 이유
- 기존의 Black(포맷터), Isort(import 정렬), Flake8(오류 검사) 기능통합
- 속도가 압도적으로 빠르고(Rust 기반), 설정이 매우 간편
백엔드 개발 생산성 (Django & FastAPI)
- Django (Baptiste Darthenay)
- 용도
- Django 템플릿(.html) 문법 강조, 자동 완성, 스니펫 지원
- 추천 이유
- VS Code는 기본적으로 Django 템플릿 문법을 몰라서 색깔이 밋밋하게 나오는데
- 이걸 설치하면 코드가 보기 편해지고 자동 완성을 지원해 오타를 줄여줌
- REST Client (Huachao Mao)
- 용도
- 추천 이유
- 무거운 Postman을 켤 필요 없이, VS Code 안에서
.http 파일을 만들어
- 바로API 요청을 보내고 응답을 확인 가능 (개발 흐름이 끊기지 않음)
코드 품질 & 협업
- Mypy Type Checker (Microsoft)
- 용도
- 추천 이유
- Python은 타입이 자유분방해서 버그가 잘 생기는데
- FastAPI는 '타입 힌트'를 적극적으로 사용
- Mypy는 코드를 실행하기 전에 타입 오류를 미리 잡아주어 버그를 획기적으로 줄여줌
- GitLens — Git supercharged
- 용도
- 추천 이유
- "이 코드 누가, 언제 짰어?"를 바로 알 수 있음
- 코드 옆에 회색 글씨로 작성자와 수정 시점이 뜨고
- 이전 버전과 비교하기가 매우 편리 (협업할 때 필수)
시각적 편의성 (선택 사항)
- Error Lens
- 용도
- 추천 이유
- 빨간 밑줄에 마우스를 올려야만 보이던 에러 메시지를 코드 바로 옆에 띄워줌
- 에러를 바로바로 고치게 되어 수정 속도가 엄청 빨라짐
- Material Icon Theme
- 파일 탐색기의 아이콘을 예쁘게 바꿔주어
- 파일 확장자(py, html, css 등)를 한눈에 구분하기 쉽게 해줌
자동완성
- 1단계: Pylance (Microsoft)(필수 기본)
- 설명
- 'Python' 확장 프로그램을 설치하면 자동으로 같이 깔림
- 기능
- print() 같은 기본 함수나 내가 만든 변수명을 자동으로 띄워주는
- 별도로 설치할 필요 없이 Python 확장만 있으면 됨
- 2단계: IntelliCode (Microsoft)(스마트 추천)
- 설명
- Pylance보다 조금 더 똑똑한 마이크로소프트의 인공지능
- 기능
- 단순히 알파벳 순서로 자동완성을 띄워주는 게 아니라
- "이 상황에서는 이 함수를 쓸 확률이 높겠다" 싶은 것을 가장 위에 띄워줌
- 코딩 속도가 훨씬 빨라짐
- 3단계: AI 코드 생성(하나만 선택)
- GitHub Copilot
- 단어 하나만 쳐도 문장 전체를 완성해주는 AI 도구
- 가장 성능이 좋음
- 원래 유료였지만 최근에 무료 요금제(Free Plan)가 풀려서
- Codeium
- Copilot의 강력한 무료 대안
- 개인 사용자에게 완전 무료이며 속도도 매우 빠름
세팅
Poetry 설치 확인
curl -sSL https://install.python-poetry.org | python3 -
- 설치 후 터미널을 재시작하고
poetry --version
프로젝트 폴더 생성 및 초기화
- 폴더 생성
- 바탕화면 등에 폴더를 만듭니다 (예: my_django_project)
- VS Code 실행
- 터미널 열기
control + shift + ~ = Terminal > New Terminal.
- Poetry 초기화
- pyproject.toml 파일을 생성(-n 옵션은 질문 없이 기본값으로 생성하겠다는 의미)
Django 설치 (의존성 추가)
- Poetry를 통해 Django를 설치(이 과정에서 가상환경이 자동으로 생성됨)
poetry add django
- 실행 후 폴더에 poetry.lock 파일이 생겼는지 확인
가상환경 활성화
- Poetry가 만든 가상환경 안으로 들어가야
- Django 명령어(django-admin)를 사용할 수 있음
poetry shell
- 터미널 프롬프트 앞쪽에 (프로젝트이름-무작위문자열-py3.x) 같은 형태가 나타나면 성공
poetry shell 문제
➜ django_blog_project poetry shell
Looks like you're trying to use a Poetry command that is not available.
Since Poetry (2.0.0), the shell command is not installed by default. You can use,
- the new env activate command (recommended); or
- the shell plugin to install the shell command
Documentation: https://python-poetry.org/docs/managing-environments/
Note that the env activate command is not a direct replacement for shell command.
- Poetry 2.0 최신 버전을 설치해서 발생한 문제
- Poetry 2.0부터는 poetry shell 명령어가 기본 기능에서 빠지고
- 별도의 플러그인으로 분리됨
poetry self add poetry-plugin-shell 설치 후
poetry shell
VS Code 인터프리터 설정
- VS Code가 Poetry가 만든 가상환경을 인식해야 코드 자동완성 및 오류 검사가 작동함
Command (⌘) + Shift + P
- 메뉴 검색 및 선택 검색창에 Select Interpreter 라고 입력하면
- 아래 목록에 Python: Select Interpreter 라는 항목이 나옴 (이걸 클릭)
- 목록에 Poetry 가상환경이 안 보인다면?
- 사용하여 가상환경 경로 알아내기
- Cmd + Shift + P -> Python: Select Interpreter
- Enter interpreter path... (또는 인터프리터 경로 입력...)을 클릭
Django 프로젝트 구조 잡기
django-admin startproject config .
my_django_project/
├── .venv/ (혹은 poetry 설정에 따라 다른 곳에 있을 수 있음)
├── config/ <-- Django 설정 폴더
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── manage.py <-- Django 실행 파일
├── poetry.lock <-- 버전 잠금 파일
└── pyproject.toml <-- 프로젝트 명세서
docker

파일 생성
- .dockerignore 생성
- 도커 이미지를 빌드할 때 불필요한 파일이 들어가는 것을 막아 빌드 속도를 높이고
- 보안을 지키는 파일 (.gitignore와 비슷하지만 도커 전용)
- Dockerfile 생성
- docker-compose.yml 생성
서버 실행 및 종료
- docker-compose up
- 서버 실행 / Control + C를 누르면 서버가 꺼짐
- docker-compose up -d
- 백그라운드 실행 (서버를 뒤에서 켜두고 터미널을 계속 씀)
- docker-compose up --build
- Dockerfile이나 패키지(poetry.lock)가 변경되었을 때, 이미지를 새로 만들고 실행
- docker-compose down
- 서버 종료 및 컨테이너 삭제 (네트워크도 정리됨)
- docker-compose down -v
- 서버 종료 + 데이터베이스 데이터까지 싹 다 삭제 (초기화 필요할 때만 사용)
Django 관련 명령어 실행
- 도커 안에서 manage.py 명령어를 써야 할 때(마이그레이션, 슈퍼유저 생성 등) 사용
- 로컬 터미널에 그냥 python manage.py ... 치면 에러
실행 중인 컨테이너에 명령어 한 번만 날리기
- 사용법:
docker-compose exec [서비스명] [명령어]
- 마이그레이션 (DB 변경사항 적용)
docker-compose exec backend python manage.py migrate
- 슈퍼유저 생성 (관리자 계정)
docker-compose exec backend python manage.py createsuperuser
- 새 앱 만들기
docker-compose exec backend python manage.py startapp posts
아예 컨테이너 내부 쉘로 접속하기
- backend 서비스(Django)의 쉘(bash)로 접속
docker-compose exec backend bash
로그 확인 (디버깅)
-d (백그라운드) 모드로 실행했을 때 로그를 볼 수 있음
- docker-compose logs
- docker-compose logs -f
- 로그를 실시간으로 계속 보여줌 (Ctrl + C로 빠져나옴)
- docker-compose logs -f backend
- backend 서비스(Django)의 로그만 골라서 봄
- docker-compose logs -f db
청소 및 관리 (용량 확보)
- 도커를 오래 쓰다 보면 안 쓰는 이미지들이 쌓여서 용량을 차지함
- docker-compose ps
- docker system prune -a
- 사용하지 않는 모든 이미지, 컨테이너, 네트워크를 삭제하여 용량을 확보
- docker volume prune
- 사용하지 않는 볼륨(데이터)을 삭제 (주의: DB 데이터 날아갈 수 있음)