주식 추천 시스템 개발

04_서버 이관에 용이한 Docker로 구성(주식추천시스템)

Mr.Lee 하루 2026. 4. 20. 08:02

🐳 Docker로 개발한 프로젝트, 다른 PC로 옮기는 방법 (완벽 가이드)

👉 AI 종목 추천 서비스: https://www.leetrader.kr/


🚀 왜 Docker로 개발하면 PC 이동이 쉬울까?

개발하다 보면 이런 문제가 반드시 발생합니다.

  • PC 바꾸면 실행 안됨
  • 라이브러리 버전 충돌
  • DB 연결 깨짐
  • 환경변수 누락

👉 그런데 Docker를 쓰면 이런 문제들이 거의 사라집니다.


🔎 Docker의 핵심 개념 (쉽게 이해)

Docker는 한마디로:

“프로그램 실행에 필요한 모든 환경을 통째로 묶어서 옮기는 기술”

입니다.

즉,

  • Python 버전
  • Node 버전
  • 라이브러리
  • 실행 환경

👉 전부 컨테이너 안에 포함됩니다.


💡 Docker로 개발했을 때 장점

1️⃣ 환경 동일성 (가장 중요)

  • 내 PC = 다른 PC = 서버
  • 실행 결과 동일

👉 “내 컴퓨터에서는 되는데?” 문제 해결


2️⃣ 설치 과정 최소화

기존 방식:

  • Python 설치
  • Node 설치
  • 패키지 설치
  • DB 설정

Docker 방식:

👉 docker-compose up 한 줄로 끝


3️⃣ 서버 배포와 동일 환경

현재 서비스처럼:

👉 Render / AWS / VPS 등 어디든 동일하게 실행 가능


4️⃣ 유지보수 편함

  • 환경 깨져도 다시 컨테이너 실행
  • 재현성 100%

🧩 실제 프로젝트 이동 방법 (실습)

이제 가장 중요한 부분입니다.
👉 다른 PC로 옮기는 실제 방법


1️⃣ 준비물

새 PC에서 필요한 것:

Docker Desktop 설치
Git 설치

👉 필수 2개입니다.


2️⃣ 프로젝트 가져오기

방법 1: GitHub 사용 (추천)

git clone https://github.com/xxxx/xxxxx.git
cd xxxxx

방법 2: USB / 압축파일

  • 기존 프로젝트 폴더 압축
  • 새 PC에서 압축 해제

3️⃣ Docker 실행

프로젝트 폴더 안에서:

docker-compose up --build

👉 이 명령 하나로:

  • 이미지 생성
  • 컨테이너 실행
  • 서버 구동

⏱️ 최초 실행 시

  • 이미지 빌드 때문에 시간이 조금 걸립니다
  • 이후부터는 빠르게 실행됩니다

4️⃣ 실행 확인

브라우저에서:

http://localhost:포트번호

👉 예:
http://localhost:3000
http://localhost:8000


⚙️ docker-compose 구조 예시

실제 구성은 보통 이렇게 되어 있습니다:

version: "3"

services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db

  db:
    image: postgres
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password

🔐 환경변수 (.env) 중요 포인트

이거 안 하면 90% 실패합니다.

반드시 확인해야 할 것:

  • DB 연결 정보
  • API KEY
  • 포트 설정

예시

DB_HOST=localhost
DB_USER=postgres
DB_PASSWORD=1234

👉 .env 파일은 Git에 안 올라가는 경우 많음

👉 꼭 같이 옮겨야 합니다


⚠️ 자주 발생하는 오류

❗ Docker 실행 안됨

docker --version

확인


❗ 포트 충돌

Error: port already in use

👉 다른 프로그램 종료


❗ DB 연결 실패

👉 .env 확인


❗ 이미지 빌드 실패

docker-compose build --no-cache

📦 추천 구조 (실무 기준)

👉 프로젝트 폴더 구조

lee_trader/
 ├── docker-compose.yml
 ├── Dockerfile
 ├── .env
 ├── backend/
 ├── frontend/
 └── data/

🔥 추가 꿀팁 (실무)

1️⃣ 백그라운드 실행

docker-compose up -d

2️⃣ 종료

docker-compose down

3️⃣ 로그 확인

docker-compose logs -f

🚀 Docker를 쓰면 생기는 진짜 차이

항목 기존 방식 Docker
환경 세팅 복잡 매우 간단
PC 이동 어려움 쉬움
버그 재현 어려움 쉬움
배포 별도 작업 동일

📌 결론

이 프로젝트처럼:

  • AI 분석 시스템
  • DB 포함 구조
  • 웹 + 백엔드

👉 이런 시스템은 Docker 없으면 관리 거의 불가능합니다.


한 줄 정리

Docker는 “개발 환경을 그대로 복사해서 옮기는 기술”이다


아직 개인프로젝트 수준이기때문에
프로젝트 개발 환경을 이동하곤 합니다.

그래서 docker를 선택하게 되었습니다.