Issue: 도커 컨테이너 간 DB 접속 불가 (Connection Refused)

개선 전

호스트의 포트 포워딩에 의존하거나 로컬 환경의 localhost를 그대로 사용하여 컨테이너 환경에서 접속 실패.

# application.yml
spring:
datasource:
url:jdbc:mysql://localhost:3306/rarego# 에러 발생: 컨테이너 내부에는 DB가 없음

개선 후

도커 엔진의 내부 DNS 기능을 활용하여 서비스 이름으로 통신. 환경 변화에 유연하게 대응 가능.

# docker-compose.yml
SPRING_DATASOURCE_URL:jdbc:mysql://db:3306/${DB_NAME}?useSSL=false&serverTimezone=Asia/Seoul

Issue: 도커 이미지 용량 비대화 및 빌드 속도 저하

개선 전

JDK 전체가 포함된 무거운 이미지 사용. 빌드 시마다 모든 라이브러리를 새로 다운로드.

FROM eclipse-temurin:21-jdk
COPY . .
RUN ./gradlew build
ENTRYPOINT ["java","-jar","build/libs/app.jar"]

개선 후