목차

    까먹음 방지.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 재생성이 가장 빠릅니다.