까먹음 방지.zip

[2026] 프로젝트 시작할 때 매번 헷갈리는 개발 명령어, 이 글 하나로 해결

zippy 2026. 4. 7. 00:06
반응형

1. 프론트엔드 (React / Next.js / Vue 등)

1-1. 최초 프로젝트 셋업 (한 번만)

# 프로젝트 생성
npx create-react-app my-app          # React
npx create-next-app@latest my-app    # Next.js
npm create vite@latest my-app        # Vite (React/Vue/Svelte)

# 디렉토리 이동
cd my-app

# 의존성 설치 (package.json 기반)
npm install                # 또는 yarn install / pnpm install

1-2. 일상 개발 루틴

# ✅ 매일 개발 시작할 때
npm run dev                # 개발 서버 실행 (Hot Reload 지원)

# ✅ 새 라이브러리 추가할 때
npm install axios          # 일반 의존성
npm install -D tailwindcss # 개발 의존성 (-D = --save-dev)

# ✅ 라이브러리 삭제할 때
npm uninstall axios

# ✅ 다른 사람 코드 clone 받았을 때 (node_modules 없을 때)
npm install                # package.json 보고 자동 설치

# ✅ 의존성 꼬였을 때
rm -rf node_modules package-lock.json
npm install                # 깨끗하게 재설치

1-3. 배포 준비

# 프로덕션 빌드 (최적화된 정적 파일 생성)
npm run build              # dist/ 또는 build/ 폴더 생성

# 빌드 결과 로컬에서 미리보기
npm run preview            # Vite
npx serve build            # CRA

1-4. 코드 품질

npm run lint               # ESLint 검사
npm run lint -- --fix      # 자동 수정
npm run format             # Prettier 포맷팅 (설정된 경우)
npm test                   # 테스트 실행

2. 백엔드 (Spring Boot / Gradle)

2-1. 최초 프로젝트 셋업

# Spring Initializr에서 프로젝트 다운로드 후
cd my-spring-app

# Gradle Wrapper 권한 부여 (Mac/Linux)
chmod +x gradlew

2-2. 일상 개발 루틴

# ✅ 매일 개발 시작할 때
./gradlew bootRun                  # 서버 실행 (기본 8080 포트)

# ✅ 의존성 추가 후 (build.gradle 수정 후)
./gradlew build --refresh-dependencies   # 의존성 새로고침 + 빌드

# ✅ 클린 빌드 (캐시 문제 시)
./gradlew clean build              # 기존 빌드 삭제 후 재빌드

# ✅ 테스트 실행
./gradlew test                     # 전체 테스트
./gradlew test --tests "com.example.UserServiceTest"  # 특정 테스트

2-3. 배포 준비

# 실행 가능한 JAR 생성
./gradlew bootJar                  # build/libs/app.jar 생성

# JAR 직접 실행
java -jar build/libs/my-app-0.0.1-SNAPSHOT.jar

# 프로파일 지정 실행
java -jar build/libs/my-app.jar --spring.profiles.active=prod

2-4. Maven 사용 시

./mvnw spring-boot:run             # 서버 실행
./mvnw clean package               # 빌드
./mvnw clean package -DskipTests   # 테스트 스킵하고 빌드

3. 파이썬 (FastAPI / Django / Flask)

3-1. 최초 프로젝트 셋업

# 가상환경 생성 (프로젝트마다 반드시!)
python -m venv venv

# 가상환경 활성화
source venv/bin/activate           # Mac/Linux
venv\Scripts\activate              # Windows

# 의존성 설치
pip install -r requirements.txt    # 기존 프로젝트 clone 시
pip install fastapi uvicorn        # 새 프로젝트에서 직접 설치

3-2. 일상 개발 루틴

# ✅ 매일 개발 시작할 때 (가상환경 활성화 먼저!)
source venv/bin/activate

# ✅ 서버 실행
uvicorn main:app --reload          # FastAPI
python manage.py runserver         # Django
flask run --reload                 # Flask

# ✅ 새 패키지 설치 후 requirements.txt 갱신
pip install 새패키지
pip freeze > requirements.txt      # 현재 설치된 모든 패키지 기록

# ✅ 의존성 꼬였을 때
deactivate                         # 가상환경 나가기
rm -rf venv                        # 가상환경 삭제
python -m venv venv                # 새로 생성
source venv/bin/activate
pip install -r requirements.txt    # 재설치

3-3. Django 전용 명령어

# DB 마이그레이션
python manage.py makemigrations    # 모델 변경사항 감지
python manage.py migrate           # DB에 반영

# 관리자 계정 생성
python manage.py createsuperuser

# 정적 파일 수집 (배포 시)
python manage.py collectstatic

3-4. Conda 환경 사용 시

conda create -n myenv python=3.11  # 환경 생성
conda activate myenv               # 활성화
conda install numpy pandas         # 패키지 설치
conda deactivate                   # 비활성화

4. AI / ML 프로젝트

4-1. 환경 셋업

# GPU 확인 (CUDA)
nvidia-smi                         # GPU 상태 확인
nvcc --version                     # CUDA 버전 확인

# PyTorch 설치 (공식 사이트에서 명령어 복사 권장)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# TensorFlow 설치
pip install tensorflow

# Jupyter Notebook
pip install jupyter
jupyter notebook                   # 브라우저에서 실행
jupyter lab                        # JupyterLab 실행

4-2. 일상 개발 루틴

# ✅ 학습 실행
python train.py --epochs 100 --batch-size 32 --lr 0.001

# ✅ 모델 서빙 (FastAPI 등으로 API 만든 경우)
uvicorn inference_server:app --host 0.0.0.0 --port 8000

# ✅ GPU 메모리 모니터링 (학습 중 다른 터미널에서)
watch -n 1 nvidia-smi              # 1초마다 갱신

4-3. Hugging Face 모델 사용 시

pip install transformers datasets accelerate
huggingface-cli login              # 토큰 인증

5. Docker

5-1. 기본 명령어

# ✅ 이미지 빌드
docker build -t my-app:latest .              # 현재 디렉토리의 Dockerfile 기반

# ✅ 컨테이너 실행
docker run -d -p 8080:8080 --name my-app my-app:latest
#  -d     : 백그라운드 실행
#  -p     : 포트 매핑 (호스트:컨테이너)
# --name  : 컨테이너 이름 지정

# ✅ 컨테이너 상태 확인
docker ps                          # 실행 중인 컨테이너
docker ps -a                       # 모든 컨테이너 (중지 포함)

# ✅ 로그 확인
docker logs my-app                 # 전체 로그
docker logs -f my-app              # 실시간 로그 (tail -f 처럼)

# ✅ 컨테이너 안으로 진입
docker exec -it my-app /bin/bash   # bash 쉘 접속
docker exec -it my-app sh          # alpine 등 경량 이미지

# ✅ 정지 / 삭제
docker stop my-app                 # 컨테이너 정지
docker rm my-app                   # 컨테이너 삭제
docker rmi my-app:latest           # 이미지 삭제

5-2. Docker Compose (멀티 컨테이너)

# ✅ 전체 서비스 시작 (가장 많이 씀)
docker-compose up -d               # 백그라운드 실행
docker-compose up --build          # 이미지 재빌드 후 실행

# ✅ 서비스 중지 및 삭제
docker-compose down                # 컨테이너 중지 + 삭제
docker-compose down -v             # + 볼륨까지 삭제 (DB 데이터 등)

# ✅ 특정 서비스만 재시작
docker-compose restart backend

# ✅ 로그 확인
docker-compose logs -f backend     # 특정 서비스 로그

# ✅ 전체 초기화 (핵폭탄급 주의!)
docker system prune -a             # 미사용 이미지/컨테이너/네트워크 전부 삭제

6. 데이터베이스

6-1. MySQL

mysql -u root -p                           # 접속
CREATE DATABASE mydb;                      # DB 생성
mysql -u root -p mydb < backup.sql         # 덤프 파일 복원
mysqldump -u root -p mydb > backup.sql     # 백업

6-2. PostgreSQL

psql -U postgres                           # 접속
CREATE DATABASE mydb;
pg_dump mydb > backup.sql                  # 백업
psql mydb < backup.sql                     # 복원

6-3. Redis

redis-cli                                  # 접속
redis-cli ping                             # 연결 확인 → PONG
redis-cli flushall                         # 전체 데이터 삭제 (주의!)

6-4. MongoDB

mongosh                                    # 접속 (신버전)
show dbs                                   # DB 목록
use mydb                                   # DB 선택/생성
db.users.find()                            # 데이터 조회

7. Git (버전 관리)

# ✅ 매일 루틴
git pull origin main               # 최신 코드 받기 (작업 시작 전)
git add .                          # 변경사항 스테이징
git commit -m "feat: 로그인 기능"    # 커밋
git push origin feature/login      # 푸시

# ✅ 브랜치 작업
git checkout -b feature/login      # 새 브랜치 생성 + 이동
git switch main                    # main으로 이동
git merge feature/login            # 병합

# ✅ 실수 복구
git stash                          # 임시 저장 (브랜치 전환 전)
git stash pop                      # 임시 저장 복원
git reset --soft HEAD~1            # 직전 커밋 취소 (코드 유지)
git reset --hard HEAD~1            # 직전 커밋 취소 (코드도 삭제, 주의!)

8. 전체 프로세스 한눈에 보기 (치트시트)

┌─────────────────────────────────────────────────────────────┐
│                    📋 프로젝트 시작                           │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1️⃣  Git Clone                                              │
│     git clone <repo-url> && cd <project>                    │
│                                                             │
│  2️⃣  환경 변수 설정                                          │
│     cp .env.example .env   (값 수정)                         │
│                                                             │
│  3️⃣  백엔드 먼저 실행                                        │
│     ┌─ Spring ──→ ./gradlew bootRun                         │
│     ├─ Python ──→ source venv/bin/activate                  │
│     │              pip install -r requirements.txt           │
│     │              uvicorn main:app --reload                 │
│     └─ Docker ──→ docker-compose up -d                      │
│                                                             │
│  4️⃣  프론트엔드 실행                                         │
│     npm install  (최초 또는 package.json 변경 시)             │
│     npm run dev                                             │
│                                                             │
│  5️⃣  매일 개발 루틴                                          │
│     git pull → 코드 작성 → npm run dev / gradlew bootRun     │
│     → git add . → git commit → git push                     │
│                                                             │
│  6️⃣  배포                                                   │
│     Frontend: npm run build                                 │
│     Backend:  ./gradlew bootJar → docker build → push       │
│     Infra:    docker-compose up -d (서버에서)                 │
│                                                             │
└─────────────────────────────────────────────────────────────┘

핵심 요약 (3줄)

상황 명령어
처음 한 번 git clone.env 설정npm install / pip install -r / gradlew build
매일 개발 git pullnpm run dev / gradlew bootRun / uvicorn --reload
배포할 때 npm run buildgradlew bootJardocker builddocker-compose up -d

💡 기억할 것: install은 의존성이 바뀔 때만, build는 배포할 때만, dev/run은 매일. 의존성 꼬이면 node_modules 삭제 후 재설치, 파이썬은 venv 재생성이 가장 빠릅니다.

 

반응형