D: 🚀 개발자 여러분, 환경 설정 때문에 고생한 적 없으신가요?
“내 로컬에서는 되는데…”라는 말을 들어본 적이 있다면 Docker가 당신의 구원자가 될 수 있습니다!
오늘은 Docker를 활용해 개발 생산성을 200% 끌어올리는 방법을 상세히 알려드리겠습니다.
🔍 Docker가 뭐길래?
Docker는 컨테이너 기반 가상화 기술로, 애플리케이션을 실행하는 데 필요한 모든 것을 패키징하여 어디서든 동일한 환경을 제공합니다.
💡 전통적 가상머신 vs Docker 컨테이너
- 가상머신: 호스트 OS → 하이퍼바이저 → 게스트 OS 전체 → 앱 (무겁고 느림)
- Docker: 호스트 OS → Docker 엔진 → 앱 (가볍고 빠름)
예시:
# MySQL 컨테이너 실행 (단 한 줄로!)
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0
🛠️ 개발 환경 구축 5단계
-
Docker 설치 (Windows/Mac/Linux 모두 지원)
- 공식 사이트에서 설치파일 다운로드
- 설치 후
docker --version
으로 확인
-
Dockerfile 작성
# 파이썬 예제 FROM python:3.9 WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . CMD ["python", "app.py"]
-
docker-compose.yml로 서비스 연결
version: '3' services: web: build: . ports: - "5000:5000" db: image: postgres:13 environment: POSTGRES_PASSWORD: example
-
이미지 빌드 & 실행
docker-compose up -d # 백그라운드 실행
-
개발 시작!
- VS Code의 “Remote – Containers” 확장 사용 시 완벽한 통합 가능
⚡ 생산성 UP 핵심 기능
✅ 환경 표준화: 모든 팀원이 동일한 환경 사용
✅ 빠른 온보딩: 새 팀원이 5분만에 개발 준비 완료
✅ 멀티 프로젝트 관리: 각 프로젝트별 독립된 환경
✅ 클라우드 호환성: AWS, Azure 등에 동일한 환경 배포
🎓 실전 예제: Node.js + Redis 개발 환경
# Dockerfile
FROM node:16
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
# docker-compose.yml
version: '3'
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/usr/src/app
redis:
image: redis
💡 프로 팁!
.dockerignore
파일로 불필요한 파일 제외node_modules .git *.log
- 볼륨 사용으로 실시간 코드 반영
docker run -v $(pwd):/app -it my-image
- Docker 캐시 활용
- 자주 변경되지 않는 레이어는 위쪽에 배치
🚨 주의사항
- Windows에서 Linux 컨테이너 사용 시 성능 저하 발생 가능 → WSL2 활성화 권장
- 데이터베이스 데이터는 볼륨으로 영구 저장 필요
volumes: db_data:/var/lib/postgresql/data
🌈 이제 “내 컴퓨터에서는 되는데…”라는 말은 잊어버리세요! Docker로 모든 팀원이 동일한 환경에서 개발할 수 있습니다. 개발 생산성 200% 향상, 지금 바로 Docker를 도입해보세요!
더 궁금한 점이 있다면 댓글로 질문 남겨주세요. 😊