아래 조합이면 Windows + VS Code + Ubuntu 24 + GitHub + Python/Django DRF + SQLite + Docker + YAML + 보안 + AWS 배포 + AI/Embedding 개발에 충분합니다.
code --install-extension ms-ceintl.vscode-language-pack-ko
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension ms-python.black-formatter
code --install-extension charliermarsh.ruff
code --install-extension ms-python.debugpy
code --install-extension ms-toolsai.jupyter
code --install-extension eamodio.gitlens
code --install-extension GitHub.vscode-github-actions
code --install-extension GitHub.vscode-pull-request-github
code --install-extension ms-azuretools.vscode-docker
code --install-extension ms-vscode-remote.remote-ssh
code --install-extension ms-vscode-remote.remote-containers
code --install-extension redhat.vscode-yaml
code --install-extension esbenp.prettier-vscode
code --install-extension usernamehw.errorlens
code --install-extension streetsidesoftware.code-spell-checker
code --install-extension PKief.material-icon-theme
code --install-extension humao.rest-client
code --install-extension rangav.vscode-thunder-client
code --install-extension alexcvzz.vscode-sqlite
필수:
ms-python.python
ms-python.vscode-pylance
ms-python.black-formatter
charliermarsh.ruff
ms-python.debugpy
추천:
batisteo.vscode-django
njpwerner.autodocstring
설치:
code --install-extension batisteo.vscode-django
code --install-extension njpwerner.autodocstring
둘 중 하나만 써도 됩니다.
code --install-extension humao.rest-client
code --install-extension rangav.vscode-thunder-client
추천은 Thunder Client입니다.
Postman 대체로 쓰기 좋습니다.
code --install-extension alexcvzz.vscode-sqlite
추가 프로그램:
sudo apt install sqlite3
GUI가 필요하면:
sudo apt install sqlitebrowser
code --install-extension ms-azuretools.vscode-docker
code --install-extension ms-vscode-remote.remote-containers
code --install-extension redhat.vscode-yaml
Docker Compose, GitHub Actions, AWS 설정 파일 볼 때 필수입니다.
code --install-extension eamodio.gitlens
code --install-extension GitHub.vscode-pull-request-github
code --install-extension GitHub.vscode-github-actions
code --install-extension ms-toolsai.jupyter
Python 패키지 추천:
pip install \
numpy pandas scikit-learn matplotlib \
jupyterlab \
openai \
langchain langchain-community \
chromadb \
sentence-transformers \
faiss-cpu
간단히 말하면:
| 목적 | 추천 |
|---|---|
| OpenAI API 사용 | openai |
| RAG / AI 체인 | langchain |
| 로컬 벡터DB | chromadb |
| 임베딩 모델 | sentence-transformers |
| 빠른 벡터 검색 | faiss-cpu |
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
git curl wget unzip zip \
python3 python3-pip python3-venv \
build-essential gcc g++ make \
sqlite3 sqlitebrowser \
docker.io docker-compose-v2 \
openssh-client \
tree htop \
shellcheck
Docker 권한:
sudo usermod -aG docker $USER
newgrp docker
확인:
docker --version
docker compose version
Windows에서 같이 설치 추천:
WSL 설치:
wsl --install -d Ubuntu-24.04
가상환경 생성:
python3 -m venv venv
source venv/bin/activate
설치:
pip install \
django \
djangorestframework \
django-cors-headers \
python-dotenv \
drf-spectacular \
gunicorn \
whitenoise
개발용 추가:
pip install \
black \
ruff \
pytest \
pytest-django \
coverage
AI 추가:
pip install \
openai \
langchain \
chromadb \
sentence-transformers \
faiss-cpu
project/
├── config/
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── apps/
│ ├── users/
│ ├── api/
│ └── ai/
├── db.sqlite3
├── manage.py
├── requirements.txt
├── Dockerfile
├── docker-compose.yml
├── .env
└── .gitignore
DRF에서 Serializer는 Django 모델과 JSON 사이를 변환합니다.
from rest_framework import serializers
from .models import Post
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = "__all__"
APIView 예시:
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Post
from .serializers import PostSerializer
class PostListAPIView(APIView):
def get(self, request):
posts = Post.objects.all()
serializer = PostSerializer(posts, many=True)
return Response(serializer.data)
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000"]
SQLite 기준:
services:
web:
build: .
container_name: django_drf_app
ports:
- "8000:8000"
volumes:
- .:/app
env_file:
- .env
command: python manage.py runserver 0.0.0.0:8000
실행:
docker compose up --build
SECRET_KEY=your-secret-key
DEBUG=True
ALLOWED_HOSTS=127.0.0.1,localhost
OPENAI_API_KEY=your-openai-api-key
venv/
__pycache__/
*.pyc
.env
db.sqlite3
staticfiles/
media/
.vscode/
단, 팀 설정을 공유하려면 .vscode/settings.json은 포함해도 됩니다.
Django 배포 전 필수:
DEBUG = False
ALLOWED_HOSTS = ["your-domain.com", "your-aws-ip"]
추가 보안 설정:
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
SECURE_SSL_REDIRECT = True
SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
비밀값은 절대 GitHub에 올리지 마세요.
.env
SECRET_KEY
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
OPENAI_API_KEY
초보자 기준 추천:
가장 쉬움. Django + Docker 배포에 적합.
실무형. Ubuntu 서버에 Docker로 직접 배포.
AWS 관리형 배포.
처음이면 Lightsail 또는 EC2 + Docker 추천합니다.
Ubuntu / Windows 공통:
aws --version
ssh -V
git --version
docker --version
AWS CLI 설치 후:
aws configure
필요한 것:
AWS 계정
EC2 또는 Lightsail 인스턴스
SSH 키 파일
도메인 선택사항
보안그룹 22, 80, 443, 8000
Docker
Nginx
Gunicorn
| 목적 | 추천 |
|---|---|
| OS | Windows + WSL2 Ubuntu 24.04 |
| 에디터 | VS Code |
| 언어 | Python 3.12 |
| 백엔드 | Django + DRF |
| DB | 개발 SQLite, 운영 PostgreSQL 추천 |
| API 문서 | drf-spectacular |
| AI | OpenAI API + LangChain |
| Embedding DB | ChromaDB 또는 FAISS |
| 컨테이너 | Docker Compose |
| 배포 | AWS Lightsail 또는 EC2 |
| 웹서버 | Nginx |
| 앱서버 | Gunicorn |
| 보안 | .env, HTTPS, DEBUG=False |
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension charliermarsh.ruff
code --install-extension ms-python.black-formatter
code --install-extension ms-azuretools.vscode-docker
code --install-extension redhat.vscode-yaml
code --install-extension eamodio.gitlens
code --install-extension GitHub.vscode-pull-request-github
code --install-extension batisteo.vscode-django
code --install-extension humao.rest-client
code --install-extension alexcvzz.vscode-sqlite
이 세팅이면 Django DRF + Serializer + SQLite + AI Embedding + Docker + AWS 배포까지 한 환경에서 개발 가능합니다.
실무 기준으로 바로 개발 가능한 수준으로 정리했습니다.
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
git curl wget unzip zip \
build-essential gcc g++ make cmake \
software-properties-common apt-transport-https \
python3 python3-pip python3-venv \
openjdk-21-jdk \
gdb pkg-config \
net-tools htop tree \
shellcheck
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg \
/etc/apt/keyrings/packages.microsoft.gpg
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/packages.microsoft.gpg] \
https://packages.microsoft.com/repos/code stable main" | \
sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update
sudo apt install code
code --install-extension ms-ceintl.vscode-language-pack-ko
code --install-extension usernamehw.errorlens
code --install-extension eamodio.gitlens
code --install-extension esbenp.prettier-vscode
code --install-extension EditorConfig.EditorConfig
code --install-extension christian-kohler.path-intellisense
code --install-extension PKief.material-icon-theme
code --install-extension streetsidesoftware.code-spell-checker
code --install-extension wayou.vscode-todo-highlight
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
확인:
node -v
npm -v
code --install-extension dbaeumer.vscode-eslint
code --install-extension bradlc.vscode-tailwindcss
code --install-extension christian-kohler.npm-intellisense
code --install-extension formulahendry.auto-rename-tag
code --install-extension formulahendry.auto-close-tag
code --install-extension ritwickdey.LiveServer
npm create vite@latest myapp
cd myapp
npm install
npm run dev
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"eslint.validate": ["javascript", "typescript"],
"files.autoSave": "afterDelay"
}
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension ms-toolsai.jupyter
pip install \
numpy pandas matplotlib seaborn \
scikit-learn jupyterlab \
torch torchvision torchaudio \
transformers datasets
python3 -m venv venv
source venv/bin/activate
jupyter lab
nvidia-smi
PyTorch GPU 확인:
import torch
print(torch.cuda.is_available())
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
newgrp docker
Ubuntu 24는 기본 포함됨:
docker compose version
code --install-extension ms-azuretools.vscode-docker
code --install-extension ms-vscode-remote.remote-containers
docker run hello-world
services:
app:
image: node:22
working_dir: /app
volumes:
- .:/app
command: bash
sudo apt install build-essential gdb cmake
code --install-extension ms-vscode.cpptools
code --install-extension ms-vscode.cmake-tools
#include <iostream>
int main() {
std::cout << "Hello Ubuntu 24" << std::endl;
}
빌드:
g++ main.cpp -o app
./app
java -version
javac -version
code --install-extension vscjava.vscode-java-pack
code --install-extension vmware.vscode-spring-boot
sudo apt install gradle
curl https://start.spring.io/starter.zip \
-d dependencies=web,data-jpa,lombok \
-d type=gradle-project \
-o demo.zip
unzip demo.zip
cd demo
실행:
./gradlew bootRun
cd ~
git clone https://github.com/flutter/flutter.git
echo 'export PATH="$PATH:$HOME/flutter/bin"' >> ~/.bashrc
source ~/.bashrc
flutter doctor
sudo snap install android-studio --classic
code --install-extension Dart-Code.flutter
code --install-extension Dart-Code.dart-code
flutter create myapp
cd myapp
flutter run
{
"editor.minimap.enabled": false,
"editor.semanticHighlighting.enabled": false,
"breadcrumbs.enabled": false,
"files.autoSave": "afterDelay",
"files.exclude": {
"**/.git": true,
"**/node_modules": true,
"**/.cache": true
},
"search.followSymlinks": false,
"git.autofetch": true,
"extensions.autoUpdate": false,
"telemetry.telemetryLevel": "off",
"workbench.startupEditor": "none"
}
sudo apt install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
.zshrc
plugins=(git docker npm python)
git config --global user.name "YOUR_NAME"
git config --global user.email "YOUR_EMAIL"
sudo add-apt-repository ppa:lazygit-team/release
sudo apt update
sudo apt install lazygit
sudo apt install fzf
snap 버전은:
→ 위 공식 저장소 방식 추천.
터미널/Flutter 이슈 있으면:
code --disable-gpu
또는 로그인 시:
원하면 다음 단계로:
까지 이어서 정리해드릴 수 있습니다.
Ubuntu 24에서 VS Code를 사용할 때 기본으로 많이 설치하는 확장 프로그램들을 용도별로 정리해드릴게요.
개발 언어별 + 공통 생산성 기준으로 추천합니다.
MS-CEINTL.vscode-language-pack-kousernamehw.errorlenseamodio.gitlensesbenp.prettier-vscode설정 추천:
"editor.formatOnSave": true
EditorConfig.EditorConfigchristian-kohler.path-intellisensePKief.material-icon-themems-python.pythonms-python.vscode-pylancems-toolsai.jupyterUbuntu 24에서는 추가 패키지도 추천:
sudo apt install python3-venv python3-pip
dbaeumer.vscode-eslintchristian-kohler.npm-intellisensebradlc.vscode-tailwindcssvscjava.vscode-java-pack추가 설치:
sudo apt install openjdk-21-jdk
Ubuntu 24 기준 JDK 21 추천.
ms-vscode.cpptoolsUbuntu 패키지:
sudo apt install build-essential gdb
ms-azuretools.vscode-dockerms-vscode-remote.remote-sshms-vscode-remote.remote-containerstimonwong.shellcheck설치:
sudo apt install shellcheck
redhat.vscode-yamlKubernetes/Docker Compose 작업 시 필수급.
yzhang.markdown-all-in-oneREADME 작성 편해짐.
streetsidesoftware.code-spell-checker주석/변수명 오타 방지.
wayou.vscode-todo-highlightTODO/FIXME 강조.
터미널에서:
code --install-extension ms-ceintl.vscode-language-pack-ko
code --install-extension usernamehw.errorlens
code --install-extension eamodio.gitlens
code --install-extension esbenp.prettier-vscode
code --install-extension EditorConfig.EditorConfig
code --install-extension christian-kohler.path-intellisense
code --install-extension PKief.material-icon-theme
sudo apt update
sudo apt install \
git \
curl \
wget \
build-essential \
gdb \
python3-pip \
python3-venv \
openjdk-21-jdk \
shellcheck
settings.json){
"editor.fontSize": 14,
"editor.tabSize": 2,
"editor.formatOnSave": true,
"files.autoSave": "afterDelay",
"terminal.integrated.defaultProfile.linux": "bash",
"editor.minimap.enabled": false
}
원하면 추가로:
까지 한 번에 정리해드릴 수 있습니다.