
코드 없이 내게 필요한 업무 자동화 앱을 만들자!
쉽고 쳬계적인 로드맵을 통해 노코드 워크플로부터 RAG·에이전트·배포까지,
Dify 하나로 LLMOps 기반 생성형 AI 앱 개발을 완성!
도서 구매 사이트
[ 교보문고 ] [ 알라딘 ] [ YES24 ] [ 쿠팡 ]
도서명 가장 쉬운 AI 앱 빌더 DIfy 실무 가이드
지은이 오노 사토시
옮긴이 두발타고
발행일 2026-02-20
페이지 536 | 판형 188*257mm | 무선제본
ISBN 9791127499303
정 가 43,000원
키워드
디파이, Dify, AI, 생성형, 노코드, 자동화, LLM, RAG, 앱제작, 실무
분야
IT모바일 > 인공지능 > 생성형 AI
IT모바일 > 컴퓨터 입문/활용
IT모바일 > 프로그래밍 언어
경제경영 > 경영관리 > 경영혁신
Dify는 단순히 챗봇을 만드는 툴을 넘어, LLMOps(LLM 운영) 전반을 관리할 수 있는 강력한 오픈소스 플랫폼입니다.
전 세계 100만 개 이상의 앱이 이 플랫폼을 사용하고, 수많은 기업에서 DIfy를 선택한 이유는 무엇일까요?
복잡한 AI 로직을 드래그 앤 드롭(Drag-and-Drop) 방식으로 설계한 노코드/로우코드 기반의 시각적 워크플로,
AI가 내부 문서나 최신 정보를 바탕으로 답변하게 만드는 RAG 시스템 내장,
특정 AI 모델이 아닌 상황에 맞는 최적의 모델 사용, 스스로 추론하고 도구를 사용하는 지능형 에이전트 구축,
운영단계에서 필요한 보안, 모니터링, 관리기능을 체계적으로 제공 등 많은 장점을 지니고 있습니다.
Dify를 사용하면 이전에 소프트웨어를 개발하던 방식으로 돌아갈 수 없습니다. 그만큼 강력하고 편리한 기능을 제공하고 있기 때문입니다.
이 책은 소프트웨어 개발 전문가가 소개하는 생성 AI 본격 활용 가이드북입니다. 오랜 개발 경험의 노하우를 바탕으로 저자는 누구나 쉽고 체계적으로 할 수 있는 로드맵을 작성했고, 이 로드맵을 통해 여러분은 눈에 띄게 성장한 앱 개발 실력을 확인할 수 있을 것입니다.
지은이 오노 사토시
소프트웨어 개발 이력만 40년이 넘는 베테랑 기술자.
저서로는 <소프트웨어 개발에 ChatGPT는 쓸만한가?(ソフトウェア開発にChatGPTは使えるのか?)>, <역산식 SQL 교과서(逆算式SQL教科書)>, <최신 도해 데이터베이스의 모든 것(最新図解 データベースのすべて)>, <3스텝으로 확실히 배우는 Oracle 입문(3ステップでしっかり学ぶ Oracle入門)>, <MCP입문-생성 AI 앱 본격 개발(MCP入門―生成AIアプリ本格開発)> 등이 다수.
웹 앱부터 데이터베이스까지 폭넓은 지식과 기술을 지니고 있으며, 최근에는 파이썬 AI 관련, IoT 관련 시스템 개발 업무를 주력으로 하고 있다.
옮긴이 두발타고
duubaltago309@gmail.com
모터사이클에 몸을 싣고 세계 곳곳을 누비며 개발하고 번역하는 삶을 꿈꾼다.
괜찮은 상태의 바이크와 노트북 한 대만 있으면 어디에서든 살아갈 수 있을 것이라 굳게 믿는다.
오늘은 출퇴근길이지만, 내일은 그 어딘가에서 흙먼지를 휘날리고 있을 것이다.
목차
Chapter 1 기초 지식 및 개발 도구 준비
1.1 생성형 AI가 대답하는 구조와 사용자 애플리케이션
1.2 Dify의 역할과 문제 해결 주도 개발
1.2.1 Dify의 등장
1.2.2 무엇을 만들고 싶은가?
1.2.3 인간과 AI의 새로운 협업
1.2.4 Dify로 시작되는 문제 해결 주도 개발
1.3 Dify란 무엇인가?
1.3.1 오픈 소스의 장점
1.3.2 노-코드, 로우-코드 개발의 매력
1.3.3 API로서 호출 가능
1.3.4 로컬 환경 실행 가능
1.3.5 Dify의 부족한 점
Chapter 2 챗봇 작성
2.1 Dify 사용하기
2.1.1 Dify 시작하기: 클라우드 버전과 커뮤니티 버전
2.1.2 Dify 계정 만들기
2.1.3 첫 애플리케이션 만들기
2.1.4 애플리케이션 테스트하기
2.1.5 애플리케이션 공개하기
2.1.6 챗봇 웹 애플리케이션 공유하기
2.1.7 다음 단계로
2.2 LLM 모델 등록
2.2.1 기본 모델 확인하기
2.2.2 다른 LLM 사용하기
2.2.3 API 요금
2.2.4 Gemini를 사용할 수 있게 하기
2.2.5 Gemini 모델로 테스트하기
2.3 LLM 매개변수 조정
2.3.1 매개변수 설정 기본
2.3.2 매개변수 차이 경험하기
2.3.3 LLM 매개변수 구조 이해하기
2.3.4 Temperature: 창조성 온도 조정
2.3.5 Top P: 선택지 제한
2.3.6 2개의 매개변수 연동하기
2.3.7 실전: 용도에 맞게 설정하기
2.4 프롬프트
2.4.1 프롬프트의 중요성
2.4.2 시스템 프롬프트와 사용자 프롬프트
2.4.3 제로-샷 학습과 퓨-샷 학습
2.4.4 제로-샷 학습
2.4.5 퓨-샷 학습
2.4.6 CoT로 문제를 해결하기
2.4.7 정리
2.5 웹페이지에 챗봇 삽입
2.5.1 삽입하기
2.5.2 이렇게 간단해도 되는가?
2.6 이력 확인과 모니터링
2.6.1 로그 확인 방법
2.6.2 로그의 중요성
2.6.3 챗봇 모니터링
2.6.4 모니터링과 로그의 진가
Chapter 3 RAG 활용
3.1 RAG란?
3.1.1 RAG를 4단계로 이해하기
3.1.2 유사도 검색 이해하기
3.1.3 RAG의 뛰어남
3.1.4 Dify로 RAG를 구현하기
3.2 지식 구축
3.2.1 지식 베이스 만들기
3.2.2 텍스트 전처리와 클리닝
3.2.3 인덱스 모드와 임베딩 모델 선택하기
3.2.4 검색 설정하기
3.2.5 검색 기능 테스트하기
3.3 챗봇에서 RAG 수행
3.3.1 새로운 애플리케이션 만들기
3.3.2 프롬프트와 컨텍스트 설정하기
3.3.3 모델 선택하기
3.3.4 디버그와 미리보기
3.3.5 실제 채팅해보기
3.4 RAG의 핵심은 입력 데이터
3.4.1 데이터 준비
3.4.2 분할(덩어리)이 왜 중요한가?
3.4.3 데이터 정리 방법
3.4.4 문학 작품을 AI에게 읽게 하기
3.4.5 PDF 변환의 함정
3.4.6 ‘텍스트 문단화 방법’ 등장
3.4.7 문단화의 효과
3.4.8 출력 결과를 통합해 벡터화 하기
3.4.9 깔끔하게 정렬된 데이터가 가진 위력
3.4.10 우선 여기에서 시작하자
3.5 하이브리드 검색
3.5.1 재랭크를 통해 검색 결과를 한 단계 고도화하기
3.5.2 Cohere 모델 사용하기
3.5.3 하이브리드 검색을 사용해 보다 망라적으로 검색하기
Chapter 4 에이전트 작성
4.1 에이전트란
4.1.1 왜 에이전트 시대라 부르는가?
4.1.2 AI 에이전트의 간단한 구조
4.1.3 AI 에이전트를 구축하려면
4.2 Dify로 에이전트 구현
4.2.1 에이전트 선택과 만들기
4.2.2 컨텍스트 등록하기
4.2.3 도구 등록하기
4.2.4 ‘단계’에 프롬프트 작성하기
4.2.5 개별 도구의 기능을 대화로 테스트하기
4.2.6 정리
4.3 도구 연동 실제 예시
4.3.1 시간과 정보 검색 연동하기
4.3.2 웹 검색과 계산 연동하기
4.3.3 지식과 계산 연동하기
4.3.4 정리
4.4 멀티 모달 대응 실제 예시
4.4.1 멀티 모달의 가능성
4.4.2 에이전트 설정하기
4.4.3 이미지를 읽어 질문하기
4.4.4 PDF 파일을 읽어 요약하기
4.4.5 정리
Chapter 5 워크플로우 작성
5.1 AI 애플리케이션 개발 기본 기술
5.1.1 일반적인 워크플로우와 AI 워크플로우의 차이
5.1.2 Dify를 사용한 워크플로우란
5.2 워크플로우 만들기
5.2.1 새로운 워크플로우 만들기
5.2.2 ‘시작’ 노드 설정하기
5.2.3 ‘LLM’ 노드 추가하기
5.2.4 ‘LLM’ 노드 설정 항목
5.2.5 테스트 실행하기
5.2.6 ‘출력’ 노드 연결하기
5.2.7 워크플로우 공개하기
5.3 두 가지 워크플로우 공개 모드
5.3.1 애플리케이션 실행하기
5.3.2 앱 일괄 실행하기
5.4 지식 연결 및 통합
5.4.1 사내 상담 창구 유스케이스
5.4.2 ‘지식 검색’ 노드 연결하기
5.4.3 총무 담당자 노드 추가하기
5.4.4 책임자 노드 추가하기
5.4.5 실제 예시: 상사의 갑질 상담
5.5 회의록 작성
5.5.1 간단한 회의록 작성하기
5.5.2 보다 자세히 정리하도록 개선하기
5.5.3 이 방법의 포인트
5.6 DSL 내보내기와 가져오기
5.6.1 DSL 내보내기
5.6.2 DSL 가져오기
5.6.3 그 밖의 DSL 내보내기 방법들
5.6.4 실전 어드바이스: 효과적인 DSL 활용법
Chapter 6 다양한 노드 타입
6.1 타입 1 = 시작 - 종료 : 알파이자 오메가
6.1.1 노드란?
6.1.2 모든 시작은 ‘시작’에서
6.1.3 가장 기본적인 조합, ‘시작’ - ‘출력’
6.1.4 이 안에서 어떤 일이 일어나는가?
6.1.5 입력 필드 설정 이해하기
6.1.6 여러 입력 필드 설정하기
6.1.7 여러 출력 변수를 지정할 때의 주의점
6.1.8 마크다운을 사용해 보다 풍부하게 출력하기
6.2 타입 2 = 시작 - LLM - 종료: 궁극의 형태
6.2.1 왜 ‘궁극‘인가?
6.2.2 LLM 추가
6.2.3 변수 설정하기
6.2.4 이 형태가 가진 진짜 힘
6.2.5 CoT를 ‘LLM’ 노드로 구현하기
6.3 타입 3 = 조건 분기: 조건에 따른 처리 분기
6.3.1 단순한 조건 분기 IF/ELSE
6.3.2 각 분기에 LLM을 연결해 설정하기
6.3.3 ‘출력’ 노드 추가하기
6.3.4 실행하기
6.3.5 ELIF
6.3.6 질문 분류기 노드를 사용해 자동으로 분류하기
6.3.7 질문 분류기 노드 설정하기
6.4 형태 4 = 지식 취득: RAG로 지식 취득
6.4.1 왜 워크플로우에서 RAG를 사용하는가?
6.4.2 ‘시작’ 노드 설정하기
6.4.3 ‘지식 검색’ 노드 추가 및 설정하기
6.4.4 ‘LLM’ 노드 추가하기
6.4.5 ‘출력’ 노드에 연결하기
6.4.6 워크플로우에서 RAG 응용하기
6.5 형태 5 = 변수 꺼내기: 매개변수 추출
6.5.1 매개변수 추출이란?
6.5.2 실제 만들어보기
6.5.3 매개변수 추출 패턴 모음
6.5.4 단순한 배열 패턴 예시
6.5.5 매개변수 추출의 진가
6.6 형태 6 = 반복 처리: ‘반복’ 노드 사용
6.6.1 가장 간단한 반복 처리 만들기(과일 색상 가이드)
6.6.2 테스트하기
6.7 형태 7 = 형태가 정해진 문장 처리: 템플릿 사용 방법
6.7.1 반복 처리를 수행한 뒤 무엇을 해야 하는가?
6.7.2 보다 뛰어난 템플릿
6.7.3 템플릿 기본
6.7.4 보다 복잡한 템플릿
6.7.5 입력 처리에서 템플릿 활용하기
6.7.6 템플릿 타입의 본질
6.7.7 템플릿 활용 팁
6.8 형태 8 = 코드 실행: 비장의 카드
6.8.1 ‘코드’ 노드 사용하기
6.8.2 다양한 샘플
6.8.3 httpx로 API 호출하기
6.9 형태 9 = API 소환술: ‘HTTP 요청’ 노드를 사용한 API 연동
6.9.1 왜 ‘HTTP 요청’ 노드를 사용하는가?
6.9.2 지명에서 위도와 경도를 얻어보기
6.9.3 실행 및 응답 확인하기
6.9.4 데이터 추출 및 형태 정리하기(‘코드’ 노드)
6.9.5 다시 실행하기
6.10 형태 10 = 병렬 실행: 노드 동시 실행
6.10.1 병렬 실행의 기본 형태
6.10.2 실행해보기
6.10.3 ‘출력’ 노드 이외의 다른 노드에서 병렬 실행 결과 받기
6.10.4 주의점과 팁들
6.10.5 병렬 실행 활용 예시
6.10.6 정리
6.11 형태 11 = 파일 처리: 다양한 파일 읽기
6.11.1 문서를 읽어 요약하기
6.11.2 워크플로우 작성하기
6.11.3 이미지 파일을 읽어 설명하게 하기
6.11.4 음성 파일을 읽어 녹취록 작성하기
6.11.5 목록 처리로 나누어 처리하기
6.12 형태 12 = 구조화 출력: 비구조화 데이터 구조화
6.12.1 텍스트에서 구조화 출력하기
6.12.2 이미지로부터 구조화 출력하기(명함 리더 유스케이스)
6.13 정리: 12개의 형태와 그 무한한 가능성
Chapter 7 다양한 도구 사용 방법
7.1 에이전트와 워크플로우에서의 도구 사용
7.1.1 에이전트와 워크플로우에서의 사용 방법의 차이
7.1.2 에이전트에서 만들고 워크플로우에서 사용하기
7.2 웹 브라우징 작성
7.2.1 에이전트에서 만들기
7.2.2 워크플로우에서 만들기
7.2.3 정리 및 실전 포인트
7.3 Code Interpreter 작성
7.3.1 에이전트로 만들기
7.3.2 실행 및 확인하기
7.3.3 워크플로우에서 구현하기(매개변수 추출기 사용)
7.3.4 결과를 ‘템플릿’ 노드에서 정리하고 실행하기
7.3.5 워크플로우에서 구현하기(구조화 출력 사용)
7.3.6 정리: 두 가지 Code Interpreter 구현 방법
7.4 워크플로우 도구 삽입
7.4.1 워크플로우를 도구화 하는 것이 좋은 이유
7.4.2 워크플로우를 도구로 저장하기
7.4.3 도구 사용하기
7.4.4 도구 설정 및 실행하기
7.4.5 실행하기
7.4.6 이 방법이 훌륭한 이유
7.5 커스텀 도구 작성
7.5.1 커스텀 도구의 정체
7.5.2 GitHub API 시험하기
7.5.3 커스텀 도구 설정하기
7.5.4 테스트 버튼으로 동작 확인하기
7.5.5 의문 = 응답 제어에 관해
7.5.6 OpenAPI(Swagger) 사양 중 가장 중요한 부분은 어디인가?
7.6 정리: 창조를 위한 3가지 비기
7.6.1 비기 1: 형태를 사용해 기초 다지기
7.6.2 비기 2: 도구를 사용해 가능성 넓히기
7.6.3 비기 3: 사용 방법 구분하기
7.6.4 창조의 문이 열렸다
Chapter 8 채팅 플로우 작성
8.1 채팅 플로우 이해
8.1.1 왜 마지막에 채팅 플로우인가?
8.1.2 채팅 플로우의 특징
8.1.3 채팅 플로우 실전 활용하기
8.1.4 채팅 플로우의 발전성
8.2 채팅 플로우 작성
8.2.1 가장 간단한 Q&A 봇
8.2.2 실행하기
8.2.3 조금 더 개선하기
8.2.4 실행하기
8.2.5 지식을 사용해 개선하기
8.2.6 실행하기
8.3 멀티 모달 대응
8.3.1 멀티 모달의 가능성
8.3.2 멀티 모달 채팅 플로우의 구조
8.3.3 채팅 플로우 만들기
8.3.4 이미지를 업로드 설정하기
8.3.5 실행 및 테스트하기
8.3.6 문서 처리 경로 구현하기
8.3.7 문서 읽기 대응하기
8.3.8 실행 및 테스트하기
8.3.9 실전 사용 예시 생각하기
8.4 임의로 대화를 기억할 수 있는 대화 변수와 변수 대입
8.4.1 왜 대화 변수가 필요한가?
8.4.2 대화 변수란?
8.4.3 대화 변수 설정하기
8.4.4 ‘변수 할당자’ 노드 추가하기
8.4.5 실행하기
8.4.6 대화 변수 응용하기
8.4.7 주의점
8.4.8 정리
Chapter 9 API로서의 활용
9.1 자유를 안겨주는 API
9.1.1 Dify는 BaaS이기도 하다
9.1.2 API로 확장되는 가능성
9.2 Dify API 접근
9.2.1 간단한 애플리케이션 만들기
9.2.2 API 키 얻기
9.2.3 API 호출하기(cURL 사용)
9.2.4 명령어 설명
9.2.5 동작 설명
9.2.6 Python으로 프로그래밍하기
9.2.7 API를 호출하는 프로그램 작성하기
9.2.8 보다 실용적인 프로그램으로
9.2.9 웹 UI에서 테스트하기
9.2.10 워크플로우 API 정리
9.3 챗봇 API 사용
9.3.1 기본적인 챗봇
9.3.2 API 키 얻기
9.3.3 API 동작 시키기
9.3.4 Python + Gradio를 사용해 챗봇 만들기
9.4 스트리밍 대응
9.4.1 스트리밍이란?
9.4.2 시험해보기
9.4.3 Python 프로그래밍
9.4.4 프로그램 설명
9.5 에이전트 대응
9.5.1 에이전트 대응을 위해서는
9.5.2 에이전트 API 키 얻기
9.5.3 에이전트 API 테스트하기
9.5.4 응답 내용 해석하기
9.5.5 에이전트로서 프로그래밍하기
9.6 API를 사용한 지식 조작
9.6.1 왜 지식 API가 필요한가?
9.6.2 지식 구조 이해하기
9.6.3 빈 데이터셋 만들기
9.6.4 API 키 생성하기
9.6.5 텍스트를 문서에 추가하기
9.6.6 API로 문서 업데이트하기
9.6.7 파일에서 문서 만들기
9.6.8 파일에서 문서 업데이트하기
9.6.9 그 밖의 주요 지식 API
9.6.10 정리: 필자가 실제 예시를 통해 본 Dify API의 가능성
Chapter 10 로컬 환경 구축
10.1 Docker
10.1.1 다양한 주민들이 살고 있는 Linux 거리
10.1.2 편리한 이삿짐 상자의 등장
10.1.3 Docker… 그리고 Dify
10.2 Docker를 사용한 설치 방법
10.2.1 Docker 설치를 위한 조건
10.2.2 준비: Git 설치
10.2.3 Docker 설치하기
10.2.4 Docker 사용 방법
10.2.5 Dify를 Docker 위에 설치하기
10.2.6 Dify 버전 업데이트 순서
10.3 Dify 내부 구조
10.3.1 docker-compose.yml 이해하기
10.3.2 다양한 컨테이너의 세부 사항 확인하기
10.3.3 웹 서비스 살펴보기
10.3.4 Dify 기억 장치 이해하기
10.3.5 weaviate
10.3.6 정리
10.4 환경 변수와 커스터마이즈
10.4.1 무엇을 설정할 수 있는가?
10.4.2 환경 변수 세계 확인하기
10.4.3 환경 변수 문법 이해하기
10.4.4 환경 변수 설정 방법
10.4.5 환경 변수 우선 순위 이해하기
10.4.6 .env 파일 활용하기
10.4.7 커스터마이즈 설정 예
10.4.8 트러블 슈팅
10.4.9 정리: 환경 변수 마스터의 길
10.5 Ollama로 로컬 AI 챗봇 작성
10.5.1 시스템 요구사항 체크하기
10.5.2 모델 다운로드 및 실행하기
10.5.3 환경 변수 설정하기(외부 접근 허가하기)
10.5.4 외부 접근 확인하기
10.5.5 Dify와 연동하기
10.5.6 정리
'도서소개' 카테고리의 다른 글
| 보안 엔지니어 입문 가이드 (0) | 2026.03.10 |
|---|---|
| 실무자의 게임 데이터 성장 비법 (0) | 2025.12.05 |
| 블렌더 3D CG 애니메이션 실전 입문 (1) | 2025.09.19 |
| Live2D 모델링 & 애니메이션 팁 (1) | 2025.08.19 |
| 스퀘어 에닉스의 게임 AI (4) | 2025.07.11 |