스니펫
스니펫 (Snippets)
Dify 공식 문서 — Snippets 를 한국어로 번역·재해석했어요. 기술 용어는 원문 표기를 보존했어요.
노드 그룹을 워크플로우 간에 재사용하고 공유하는 기능이에요.
유용한 노드 패턴은 대개 여러 워크플로우에서 반복해서 나타나요. 저장하고 재사용할 방법이 없으면 매번 같은 로직을 처음부터 다시 짜야 하죠. LLM과 도구 노드의 특정 체인, 데이터 처리 시퀀스, 다단계 요약 파이프라인 같은 것들이요.
노드 그룹을 스니펫으로 만들어 재사용 가능한 단위로 저장할 수 있어요. 로직을 한 번 만들어 두고 워크플로우 전체에서 재사용하고, 팀과 공유해서 다른 사람이 같은 걸 처음부터 만드는 수고를 덜어줄 수 있어요. 스니펫은 DSL 파일로 내보내면 워크스페이스 간에도 공유할 수 있어요.
스니펫 만들기
스니펫을 만드는 방법은 세 가지예요.
- 워크플로우에서: 재사용할 노드를 선택한 뒤 오른쪽 클릭 → Create Snippet. 선택한 노드의 설정이 스니펫에 저장돼요. 노드가 참조하는 외부 변수(선택하지 않은 노드의 출력, 환경 변수 등)는 자동으로 스니펫의 Input Variables가 돼요.
- 처음부터(blank): Studio 우측 상단의 Snippets → Create Snippet > Create from blank로 빈 캔버스에서 시작해요.
- DSL 파일에서: Studio 우측 상단의 Snippets → Create Snippet > Import DSL file로 기존 스니펫을 가져와요.
만든 스니펫은 워크스페이스와 공유돼요. 각 멤버가 그것으로 무엇을 할 수 있는지는 워크스페이스 역할에 따라 달라져요.
스니펫 수정하기
스니펫 만들기는 일반 워크플로우 만들기와 거의 비슷한데, 차이점이 두 가지 있어요.
첫째, 사용할 수 없는 노드가 몇 개 있어요. 스니펫은 워크플로우에 끼워져 실행되는 거지 홀로 실행되는 게 아니기 때문에, Start 노드(User Input이나 Trigger)와 끝 노드(Workflow의 Output, Chatflow의 Answer)가 없어요. Knowledge Retrieval과 Human Input도 아직 지원되지 않아요.
둘째, 스니펫에는 입력을 모으는 Start 노드가 없으므로, 받을 데이터를 지정하는 Input Variables를 직접 정의해요. 예를 들어 업스트림 노드에서 오는 변수 같은 거죠. 스니펫이 워크플로우에 추가되면 이 입력 변수들이 **연결 지점(connection point)**이 돼요.
스니펫 발행하기
수정하는 동안 변경 사항은 자동으로 초안으로 저장돼서, 다음에 이어서 작업할 수 있어요. 초안이 준비되면 Publish를 클릭해 사용 가능하게 만들어요. 워크플로우는 항상 발행된 버전을 사용하고, 초안은 사용하지 않아요.
발행할 때마다 스니펫의 버전 히스토리에 남아, 이전 버전을 검토하거나 복원할 수 있어요.
스니펫을 워크플로우에 추가하기
캔버스에서 오른쪽 클릭 → Add Node > Snippets에서 원하는 것을 선택해 삽입해요. 여기에는 발행된 스니펫만 나타나요.
스니펫은 워크플로우에 복사본으로 추가돼요. 삽입된 노드에서 각 입력 변수를 워크플로우의 적절한 변수에 연결해서, 받아야 할 데이터를 받도록 설정해요. 이후 원본 스니펫을 수정해도 이미 삽입된 복사본은 바뀌지 않아요.