OPEN HYPER STEP
← 목록으로 (Java+Spring)
JAVA · 66 / 69
java
CHAPTER 66 / 69
읽기 약 2
FUNCTION

Docker로 배포


핵심 개념

Spring Boot 앱을 Docker 컨테이너로 패키징하고 배포한다. 멀티 스테이지 빌드, docker-compose, 환경변수 관리를 익힌다.

코드 분석
JAVA📋 코드 (46줄)
# Dockerfile (멀티 스테이지 빌드)
FROM eclipse-temurin:17-jdk-alpine AS builder
WORKDIR /app
COPY gradlew .
COPY gradle gradle
COPY build.gradle settings.gradle .
RUN ./gradlew dependencies --no-daemon
COPY src src
RUN ./gradlew bootJar --no-daemon

FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY --from=builder /app/build/libs/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

# docker-compose.yml
version: "3.8"
services:
  app:
    build: .
    ports:
      - "8080:8080"
    environment:
      - SPRING_PROFILES_ACTIVE=prod
      - DB_URL=jdbc:mysql://db:3306/mydb
      - DB_USERNAME=${DB_USERNAME}
      - DB_PASSWORD=${DB_PASSWORD}
    depends_on:
      - db
    restart: unless-stopped

  db:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: mydb
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
    volumes:
      - mysql_data:/var/lib/mysql

volumes:
  mysql_data:

# 실행
docker compose up -d
docker compose logs -f app

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 Spring 'Docker로 배포' 코드에서
DI 관련 버그·순환 참조·트랜잭션 누수를
찾아서 수정해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'Docker로 배포'를 Spring Boot 3.x로 구현한
실전 API 코드(컨트롤러+서비스+레포지토리+테스트)를 완성형으로 만들어줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 Spring 'Docker로 배포' 프로젝트의 빈 구조와
의존성 트리를 전체 분석하고
N+1 쿼리·순환 참조·성능 병목을 정리해줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

Spring 'Docker로 배포' vs Quarkus·Micronaut·Ktor의
동일 기능 구현을 2026년 한국 채용 시장 기준으로
솔직히 비교해줘.

⭐ 이것만 기억하세요
Docker로 배포 이 3가지만 확실히 잡으세요
1.jar를 서버에 직접 실행하면 JDK 버전, 환경 변수, OS 차이로 환경 문제가 반복됩니다
2.멀티 스테이지 Dockerfile로 Gradle 빌드 → JRE 이미지에 jar 복사하면 최소 크기 컨테이너가 됩니다
3.다음 챕터에서 코드 변경을 자동으로 빌드·배포하는 CI/CD를 배웁니다


공유하기
진행도 66 / 69