15

"내 컴퓨터에서는 되는데요..." 를 없애는 날

Docker 배포 & 테스트

학습 목표

Docker가 필요한 이유를 실감한다 컨테이너화의 핵심 가치를 이해한다

"내 컴퓨터에서는 되는데요..."

[데모 전날 리허설]

![프론트엔드 UI](/illustrations/week8/frontend-ui.svg)


팀장: "내 노트북에서 한번 돌려볼게."

$ pip install -r requirements.txt
ERROR: 패키지 충돌!

$ pip install langchain==0.2.0
ERROR: Python 3.9에서는 지원하지 않음!

$ conda create -n mfg python=3.11
$ pip install ...
$ streamlit run app/main.py
ERROR: chromadb requires sqlite3 >= 3.35.0

팀장: "..."
나: "제 컴퓨터에서는 되는데요..."
팀장: "그래서 데모를 어떻게 하자고?"

Docker = "내 환경을 그대로 포장"

Docker 없이:
  "Python 3.11 설치하시고,
   pip install 하시고,
   Neo4j 설치하시고,
   ChromaDB 폴더 만들고,
   .env 파일 복사하고,
   streamlit run..."

Docker 있으면:
  "docker compose up"
  끝.

Docker는 앱, 라이브러리, 설정을 하나의 박스(컨테이너)에 포장한다. 어떤 컴퓨터에서든 똑같이 동작한다.


오늘의 목표

Step 1: Dockerfile 작성
  "앱을 포장하는 설명서"
     |
Step 2: docker compose.yml 작성
  "앱 + Neo4j를 함께 실행하는 설명서"
     |
Step 3: 빌드 & 실행 테스트
  "docker compose up으로 모든 것이 뜨는지 확인"
     |
Step 4: 통합 테스트
  "모든 기능이 정상 동작하는지 검증"

오늘이 끝나면 누구든 한 줄 명령어로 시스템을 실행할 수 있다.

AI로 학습하기 — 꿀팁
🧪Docker 필요성 제조 환경 예시화AI 학습 팁

제조 현장 특유의 환경 불일치 문제(생산망 PC, OT 서버 등)를 Docker가 어떻게 해결하는지 AI에게 구체화 요청하세요.

제조 공장 IT 담당자가 'AI 어시스턴트 앱이 내 PC에서는 되는데 생산관리 서버에서 안 된다'는 상황을 겪고 있다. Docker를 적용하면 이 문제가 어떻게 해결되는지, 구체적인 원인(Python 버전 차이, 의존성 충돌 등)과 Docker의 해결 방식을 단계별로 설명해줘.
이 팁이 도움이 됐나요?