3계층 MERN 애플리케이션을 구축하며 Docker 배우기
발행: (2026년 1월 8일 오후 01:22 GMT+9)
3 min read
원문: Dev.to
Source: Dev.to
Docker를 왜 사용할까?
- Docker 이전에 애플리케이션을 실행하려면:
- 의존성을 직접 설치해야 했고
- 환경 불일치 문제에 직면했으며
- “내 컴퓨터에서는 동작한다”는 고전적인 문제가 발생했습니다.
- Docker는 애플리케이션과 그 의존성을 컨테이너에 패키징함으로써 휴대성, 일관성, 재현성을 제공합니다.
내가 만든 것
애플리케이션 구조는 다음과 같습니다:
- 프론트엔드: Nginx를 통해 제공되는 React 스타일 프론트엔드
- 백엔드: Node.js + Express API
- 데이터베이스: MongoDB
각 구성 요소는 자체 Docker 컨테이너에서 실행되며, 모든 서비스는 공유 Docker 네트워크를 통해 통신합니다.
전체 애플리케이션은 한 번의 명령으로 시작할 수 있습니다:
docker compose up --build
연습한 Docker 개념
- Docker 이미지 & 컨테이너
- Dockerfile
- 다단계 Docker 빌드(Multi‑Stage Docker Builds)
- Docker 네트워킹
- Docker 볼륨
- Docker Compose
배운 점
- 엔드‑투‑엔드로 무언가를 구축하면 Docker가 훨씬 명확해집니다.
- 다중 컨테이너 애플리케이션은 Docker Compose를 사용하면 관리가 쉬워집니다.
- 볼륨은 컨테이너 재시작 후에도 유지되어야 하는 데이터에 필수적입니다.
- Docker는 명령어보다 재현 가능한 환경을 만드는 것이 핵심입니다.
이 프로젝트가 중요한 이유
저장소: