ONS
도입하기
  • AI 인프라Dell Pro MaxOrcai SMS
  • AI 솔루션DifyAX Foundry
  • 블로그블로그
  • 회사소개소개연혁
AI 인프라
  • Dell Pro Max
    Dell Pro Max
  • Orcai SMS
    서버 모니터링 솔루션
AI 솔루션
  • Dify
    노코드 AI 앱 빌더
  • AX Foundry
    AI 전환을 위한 인사이트
블로그
  • 블로그
    트렌드와 인사이트
회사소개
  • 소개
    27년 인프라 전문기업
  • 연혁
    27년간의 연혁
Dify Tutorial

Dify에서 내 맘대로 Python 라이브러리 쓰기: 커스텀 샌드박스(dify-sandbox-py) 구축 가이드

 dify-sandbox-py 활용법
민규
민규
Apr 13, 2026
Dify에서 내 맘대로 Python 라이브러리 쓰기: 커스텀 샌드박스(dify-sandbox-py) 구축 가이드
Contents
🚀 왜 dify-sandbox-py인가요?순서🛠️ 3분 만에 커스텀 샌드박스로 교체하기STEP 1. 기존 샌드박스 컨테이너 중지STEP 2. docker-compose.yaml 수정STEP 3. 필요한 Python 패키지 지정STEP 4. 샌드박스 재시작🧪 실습으로 검증하기⚠️ 보안 주의사항 (Security Notice)

안녕하세요, 오픈네트웍시스템입니다.

최근 LLM 오케스트레이션 툴로 급부상한 Dify를 도입하는 기업이 많아졌습니다. Dify를 사용하다 보면 '코드(Code) 노드'의 강력함에 감탄하게 되는데요. 하지만 복잡한 데이터 처리를 위해 pandas를 임포트하거나 외부 API와 통신하려고 하면 곧바로 벽에 부딪히곤 합니다.

ModuleNotFoundError: No module named 'pandas'
# 또는 외부 API 호출 시...
Operation not permitted

이런 에러 때문에 답답하셨던 경험, 한 번쯤 있으시죠? 오늘은 이 문제를 깔끔하게 해결해 줄 오पन소스 프로젝트 dify-sandbox-py를 소개해 드립니다.

🚀 왜 dify-sandbox-py인가요?

Dify의 공식 샌드박스는 Go 언어 기반으로 설계되어 있으며, 강력한 보안을 위해 커널 수준에서 seccomp와 chroot 격리 기술을 사용합니다.

  • 보안상의 장점: 신뢰할 수 없는 코드가 실행되어도 호스트 서버 시스템 전체에 영향을 주지 않습니다.

  • 사용상의 단점: 시스템 콜(Syscall)이 강하게 제한되어 있어 특정 라이브러리(Numpy 2.0+, Matplotlib 등) 설치가 까다롭고, 아웃바운드 네트워크 통신도 기본적으로 차단됩니다.

반면, dify-sandbox-py는 다음과 같은 특징을 가집니다.

  • 드롭인(Drop-in) 교체: 공식 샌드박스 API와 100% 호환되어 설정만 바꾸면 바로 작동합니다.

  • 최신 환경 제공: Python 3.12 + Node.js 20 환경 기반

  • 압도적인 속도: 의존성 관리에 uv를 사용하여, 컨테이너 재시작 시 밀리초(ms) 단위로 패키지를 초고속 설치합니다.

  • 네트워크 제한 해제: 공식 샌드박스와 달리 외부 API 통신이 기본적으로 허용됩니다.

  • 라이선스: MIT 라이선스로 내부 시스템 및 소규모 팀에 최적화되어 있습니다.

항목

공식 샌드박스 (dify-sandbox)

커스텀 샌드박스 (dify-sandbox-py)

격리 방식

seccomp + chroot (커널 수준)

컨테이너 격리만 의존

네트워크

기본 차단(별도 설정 필요)

기본 허용(자유로운 API 호출)

라이브러리 제한

Syscall 제한으로 일부 C-확장 모듈 차단

(pandas, numpy 등 완벽 지원)

적합 환경

멀티테넌트, 외부 사용자

내부 프로젝트, 사내 셀프 호스팅(On-Premise)

순서

🛠️ 3분 만에 커스텀 샌드박스로 교체하기

Dify를 Docker Compose로 띄워두셨다면, 아래 순서대로 아주 간단하게 교체할 수 있습니다.

STEP 1. 기존 샌드박스 컨테이너 중지

터미널을 열고 Dify 가동 디렉토리에서 기존 샌드박스를 멈춰줍니다.

services:
  sandbox:
    # image: langgenius/dify-sandbox:0.2.10 (기존 설정 주석 처리)
    image: svcvit/dify-sandbox-py:latest # 커스텀 이미지로 교체
    # ... 나머지 설정 유지

STEP 2. docker-compose.yaml 수정

docker-compose.yaml 파일을 열어 services.sandbox 항목의 이미지를 다음과 같이 변경합니다.

STEP 3. 필요한 Python 패키지 지정

프로젝트 볼륨으로 연결된 python-requirements.txt 파일에 Dify 코드 노드에서 사용하고 싶은 라이브러리를 적어줍니다.

  • 파일 경로 예시: ../docker/volumes/sandbox/dependencies/python-requirements.txt

    pandas
    matplotlib
    numpy
    requests

    STEP 4. 샌드박스 재시작

    설정이 끝났다면 컨테이너를 다시 백그라운드로 실행합니다. uv 덕분에 패키지가 순식간에 설치되는 것을 볼 수 있습니다.

    docker compose up -d sandbox

💡 문제가 발생하셨나요? 만약 샌드박스가 정상적으로 뜨지 않는다면 원래대로 되돌리는 것도 간단합니다. docker-compose.yaml에서 이미지명을 원래 (langgenius/dify-sandbox:버전)로 복구한 뒤 아래 명령어를 실행하세요.

docker compose up -d sandbox
docker compose ps sandbox

🧪 실습으로 검증하기

자, 이제 샌드박스가 성공적으로 교체되었는지 Dify 워크플로우에서 직접 테스트해 볼 차례입니다.
예제 1

⚠️ 보안 주의사항 (Security Notice)

dify-sandbox-py는 개발 편의성과 확장성을 위해 보안 제약을 완화한 도구입니다. 따라서 불특정 다수의 외부 사용자가 직접 코드를 입력하고 실행할 수 있는 오픈형 서비스 환경이라면 보안 리스크를 충분히 검토해야 합니다.

사내 내부용 프로젝트, 엔터프라이즈 인트라넷 환경, 혹은 신뢰할 수 있는 관리자만 워크플로우를 설계하는 환경에서 도입하시는 것을 강력히 권장합니다.

궁금한 점이나 인프라 구축 중 막히는 부분이 있다면 언제든 댓글이나 엔지니어 팀으로 문의해 주세요. 감사합니다!

Share article
Contents
🚀 왜 dify-sandbox-py인가요?순서🛠️ 3분 만에 커스텀 샌드박스로 교체하기STEP 1. 기존 샌드박스 컨테이너 중지STEP 2. docker-compose.yaml 수정STEP 3. 필요한 Python 패키지 지정STEP 4. 샌드박스 재시작🧪 실습으로 검증하기⚠️ 보안 주의사항 (Security Notice)
logo

(주)오픈네트웍시스템

경기도 의왕시 이미로 40, B동 907호 (포일동, 인덕원IT밸리)

사업자등록번호. 107-81-69444

대표이사. 박봉균

문의

ai@open-network.co.kr
📞 031-1544-0357
개인정보 처리방침
© OPEN NETWORK SYSTEM CO., LTD. All rights reserved.