[목 차]
CHAPTER 1 생성형 AI와 앱 개발의 기초
1.1 생성형 AI 시대를 따라잡다
___1.1.1 왜 지금 AI 앱 개발이 주목받을까?
___1.1.2 생성형 AI란
1.2 생성형 AI 앱 개발 시대로
___1.2.1 생성형 AI 앱이란
___1.2.2 생성형 AI 앱의 구조
1.3 누구나 할 수 있는 AI 앱 개발
___1.3.1 Dify 잠재력을 활용하자
1.4 생성형 AI 앱 개발에 도전하자
___1.4.1 이 책의 학습 목표
CHAPTER 2 Dify 사용 준비
2.1 Dify 개요
___2.1.1 Dify란 어떤 도구인가?
___2.1.2 Dify는 어떻게 사용하는가?
2.2 Dify를 시작하자
___2.2.1 Dify 계정 만들기
___2.2.2 Dify 스튜디오 둘러보기
CHAPTER 3 챗봇 만들기
3.1 챗봇
___3.1.1 챗봇이란
___3.1.2 Dify 챗봇의 특징
3.2 간단한 챗봇을 만들자
___3.2.1 간단한 챗봇 만들기
___3.2.2 챗봇 설정하기
___3.2.3 챗봇 테스트하기
___3.2.4 모델 변경하기
___3.2.5 작성한 앱 게시하기
___3.2.6 앱 서비스 비활성화하기
3.3 RAG를 알아보자
___3.3.1 RAG는 뭘까?
3.4 RAG 챗봇을 만들자
___3.4.1 지식 생성하기
___3.4.2 RAG용 챗봇 만들기
___3.4.3 챗봇에 지식 추가하기
___3.4.4 앱 미리보기 및 공개하기
3.5 웹 사이트 문서를 참조하는 챗봇을 만들자
___3.5.1 지식을 웹 사이트(URL)에서 불러와 활용하기
___3.5.2 Jina Reader와 API 연계하기
___3.5.3 크롤링한 정보를 지식으로 변환하기
___3.5.4 지식 이름 변경하기
___3.5.5 웹 페이지의 지식을 추가한 챗봇 만들기
CHAPTER 4 텍스트 생성기 만들기
4.1 텍스트 생성기
___4.1.1 텍스트 생성기란
___4.1.2 일괄 실행 활용하기
4.2 SNS 게시물 생성기를 만들자
___4.2.1 SNS 게시물 생성기 만들기
___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.3.5 선택 추가하기
___4.3.6 숫자 추가하기
___4.3.7 나머지 변수 설정하기
___4.3.8 접두사 프롬프트 설정하기
___4.3.9 사용자 입력 필드의 기능 활성화하기
___4.3.10 디버그 및 미리보기
CHAPTER 5 에이전트 만들기
5.1 에이전트
___5.1.1 Dify의 에이전트 기능이란
___5.1.2 챗봇과 에이전트의 차이점
5.2 쓸 만한 에이전트를 만들자
___5.2.1 에이전트 앱 만들기
___5.2.2 에이전트 설정하기
___5.2.3 에이전트가 사용할 도구 추가하기
___5.2.4 미리보기 화면에서 에이전트 테스트하기
___5.2.5 기능을 활용해 사용자가 이용하기 쉽게 만들기
___5.2.6 음성 입력 테스트하기
5.3 이미지 생성 에이전트를 만들자
___5.3.1 이번에 만들 에이전트 소개하기
___5.3.2 이미지 생성 앱 만들기
___5.3.3 에이전트 설정하기
___5.3.4 에이전트가 사용할 도구 추가하기
___5.3.5 앱을 실행해 결과 확인하기
5.4 복잡한 작업을 처리하는 에이전트를 만들자
___5.4.1 이미지 생성 에이전트의 실용성 강화하기
___5.4.2 에이전트 역할을 다시 정의하기
CHAPTER 6 채팅 플로우 만들기
6.1 채팅 플로우
___6.1.1 좀 더 똑똑한 챗봇 만들기
___6.1.2 채팅 플로우의 특징
6.2 채팅 플로우를 만들자
___6.2.1 채팅 플로우 앱 만들기
___6.2.2 도대체 노드란 뭘까?
___6.2.3 LLM 노드 설정 편집하기
___6.2.4 채팅 플로우 테스트 및 공개하기
6.3 지식을 가진 채팅 플로우를 만들자
___6.3.1 채팅 플로우 설계하기
___6.3.2 채팅 플로우 편집하기
___6.3.3 플로우 중간에 노드 추가하기
___6.3.4 지식 검색 노드에 지식 추가하기
___6.3.5 LLM 노드에 컨텍스트 설정하기
___6.3.6 앱 미리보기 및 공개하기
6.4 조건 분기를 활용하는 채팅 플로우를 만들자
___6.4.1 조건 분기를 활용하는 앱 만들기
___6.4.2 시작 노드 편집하기
___6.4.3 IF/ELSE 노드 추가하기
___6.4.4 IF/ELSE 노드 설정하기
___6.4.5 IF/ELSE를 이용해 조건 분기 노드 추가하기
___6.4.6 LLM 노드 추가 및 설정하기
___6.4.7 노드 복제하기
___6.4.8 답변 노드 추가 및 설정하기
___6.4.9 앱 미리보기 및 공개하기
6.5 여러 LLM을 활용하는 채팅 플로우를 만들자
___6.5.1 앱 복제하기
___6.5.2 LLM 노드 추가 및 설정하기
___6.5.3 답변 노드 편집하기
___6.5.4 앱 미리보기 및 공개하기
6.6 병렬 처리를 활용하는 채팅 플로우를 만들자
___6.6.1 LLM을 병렬로 처리하기
___6.6.2 앱 만들기
___6.6.3 LLM 노드 설정하기
___6.6.4 독립된 노드 추가하기
___6.6.5 답변 노드 설정하기
___6.6.6 앱 미리보기 및 공개하기
6.7 검색 API를 활용하는 채팅 플로우를 만들자
___6.7.1 도구 노드를 활용하는 채팅 플로우 만들기
___6.7.2 앱 만들기
___6.7.3 검색 API 노드 추가하기
___6.7.4 검색 API 노드 설정하기
___6.7.5 LLM 노드 설정하기
___6.7.6 복수의 LLM 노드를 추가하고 설정하기
___6.7.7 답변 노드 설정하기
___6.7.8 앱 미리보기 및 공개하기
CHAPTER 7 워크플로우 만들기
7.1 워크플로우
___7.1.1 워크플로우란
7.2 이미지에서 데이터를 추출하는 워크플로우
___7.2.1 이미지 인식 앱 만들기
___7.2.2 시작 노드 편집하기
___7.2.3 LLM 노드 추가 및 설정하기
___7.2.4 출력 노드 추가 및 설정하기
___7.2.5 앱 미리보기 및 공개하기
7.3 음성 데이터로 회의록을 작성하는 워크플로우
___7.3.1 음성 인식 앱 만들기
___7.3.2 시작 노드 편집하기
___7.3.3 LLM 노드 추가 및 설정하기
___7.3.4 출력 노드 추가 및 설정하기
___7.3.5 앱 미리보기 및 공개하기
CHAPTER 8 다양한 앱에 도전하기
8.1 GAS를 이용한 본격적인 생성형 AI 앱을 개발하자
___8.1.1 HTTP 요청으로 생성형 AI 앱의 확장성 높이기
___8.1.2 이용하는 도구의 특징 파악하기
___8.1.3 JSON
8.2 GAS 스크립트 작성과 HTTP 요청 테스트
___8.2.1 GAS로 스크립트 작성하기
___8.2.2 GAS 프로젝트 배포하기
___8.2.3 Dify에서 테스트 앱 만들기
___8.2.4 Dify에서 HTTP 요청 노드 추가 및 설정하기
___8.2.5 답변 노드 설정하기
___8.2.6 미리보기로 GET 요청 확인하기
___8.2.7 미리보기로 POST 요청 확인하기
8.3 영수증 관리 앱을 만들자
___8.3.1 영수증 관리 앱 만들기
___8.3.2 시작 노드 편집하기
___8.3.3 LLM 노드 추가 및 설정: 영수증 읽기
___8.3.4 LLM 노드 추가 및 설정: JSON 데이터 생성하기
___8.3.5 GAS 프로젝트 만들기
___8.3.6 GAS 프로젝트 배포하기
___8.3.7 HTTP 요청 노드 추가 및 설정하기
___8.3.8 IF/ELSE 노드 추가 및 설정하기
___8.3.9 출력 노드 추가 및 설정하기
___8.3.10 앱 실행 및 공개하기
8.4 대화형 가계부 앱을 만들자
___8.4.1 가계부 앱 만들기
___8.4.2 LLM 노드 설정하기
___8.4.3 LLM 노드 추가 및 설정하기
___8.4.4 GAS 프로젝트 만들기
___8.4.5 GAS 프로젝트 배포하기
___8.4.6 Dify에서 HTTP 요청 노드 추가 및 설정하기
___8.4.7 답변 노드 추가 및 설정하기
___8.4.8 앱 실행 및 공개하기
CHAPTER 9 업무를 앱으로 구현하는 테크닉
9.1 떠오른 아이디어를 앱으로 구현하자
___9.1.1 일상적인 업무에서 대상 찾기
___9.1.2 업무를 작업으로 분해하기
___9.1.3 필요한 도구와 데이터 검토하기
___9.1.4 앱의 전체 구조 설계하기
___9.1.5 설계한 앱 구현하기
___9.1.6 앱을 사용해 UI/UX 확인하기
부록 A 각종 API 키 발급하기
A.1 OpenAI API 키 발급받기
A.2 Reader API 키 발급받기
A.3 Google Search API 키 발급받기
A.4 Stability AI API 키 발급받기
A.5 Gemini API 키 발급받기
부록 B 기본 노드 상세 설명
B.1 시작 노드
___B.1.1 시작 노드의 특징
___B.1.2 입력 필드 추가하기
___B.1.3 시스템 변수
___B.1.4 다음 단계
B.2 LLM 노드
___B.2.1 LLM 노드의 특징
___B.2.2 LLM 노드의 설정 요소
___B.2.3 모델 매개변수 상세 설정하기
B.3 지식 검색 노드
___B.3.1 지식 검색 노드의 특징
___B.3.2 지식 검색 노드의 설정 항목
___B.3.3 지식 검색 설정하기
B.4 답변 노드
___B.4.1 답변 노드의 특징
___B.4.2 답변 노드의 설정 요소
B.5 IF/ELSE 노드
___B.5.1 IF/ELSE 노드의 특징
___B.5.2 IF/ELSE 노드의 설정 요소
___B.5.3 ELSE 분기의 플로우
B.6 HTTP 요청 노드
___B.6.1 HTTP 요청 노드의 특징
___B.6.2 HTTP 요청이란
___B.6.3 요청 메서드의 종류
___B.6.4 HTTP 요청 노드의 설정 요소
부록 C 사용자 입력 필드의 기능 활성화
C.1 사용자 편의성을 향상시키자
___C.1.1 사용자 입력 필드의 기능 활성화하기
___C.1.2 대화의 시작
___C.1.3 팔로우업
___C.1.4 텍스트에서 음성으로
___C.1.5 음성에서 텍스트로
___C.1.6 파일 업로드
___C.1.7 인용 및 소유권
___C.1.8 콘텐츠 모더레이션
[본 문]
“프로그래밍 같은 건 나한테는 무리야.”
예전부터 이렇게 생각해 온 분이 많지 않을까요? 이 책을 쓴 저 역시 한때는 같은 생각을 품고 있었습니다. 학창 시절 ‘앞으로는 IT 시대’라고 느껴 프로그래밍을 배우려고 학원에도 다녔지만, 영락없이 내 길이 아니라는 사실만 절감한 채 좌절을 맛본 쓰라린 경험이 있습니다.
그대로 사회인이 되어 은행원으로 커리어를 시작했고, 이후 컨설팅 분야와 일반 기업의 신규 사업 론칭 업무에 종사하면서 프로그래밍이나 개발 분야와는 점점 멀어졌습니다.
독립 후 사업을 펼쳐 나가는 과정에서도 개발과는 늘 거리가 있었습니다. 코드를 작성하고 오류를 수정하며 무언가를 작동시켜 가는 과정 자체가 인문계 출신이자 비즈니스 분야에서 일해 온 저와 어딘가 맞지 않는 듯 느껴졌습니다. 직접 프로그램을 만들 수 없으니 기존 도구를 잘 활용하고 전문가에게 시스템 구축을 의뢰하는 수밖에 없다며 단념하고 있었습니다.
하지만 2020년대 중반에 접어들면서 AI의 진화는 우리 일상과 업무 환경을 크게 바꾸기 시작했습니다. 지금 빠르게 확산되고 있는 생성형 AI 도구, 그중에서도 챗GPT로 대표되는 LLM(대규모 언어 모델)의 등장은 우리가 ‘개발’에 지녀 온 고정 관념을 뿌리부터 흔들고 있습니다. 지금까지는 개발을 코드 작성 능력이나 전문 지식을 갖춘 사람만 다룰 수 있는 영역으로 여겼습니다. 생성형 AI가 등장하면서 이제는 자연어, 즉 ‘언어’로 소통하는 능력만 있으면 그 영역에 다가갈 수 있게 되었습니다.
저는 이 AI 도구의 발전에 큰 충격을 받았습니다. 2023년 아이가 태어나 아버지로서 새로운 삶이 시작되면서 시간과 노력을 효율적으로 배분해야 할 필요성을 한층 더 크게 느꼈습니다. 육아, 회사일, 개인 사업 등 바쁜 일상에서 생산성을 높일 수 있는 도구와 시스템이 필요했는데, 바로 그때 AI를 활용한 여러 가지 업무 효율화 방법을 접한 것입니다.
지난날 프로그래밍에 좌절했던 제가 다시 ‘무언가를 만드는 일’에 도전할 용기를 얻은 것도 바로 AI 기술 덕분입니다. AI는 ‘무엇을 하고 싶은지’ 말하기만 하면 그것을 실현할 수 있도록 도와줍니다. 이런 큰 변화 덕분에 저처럼 개발과 멀어졌던 사람도 완전히 새로운 방식으로 앱 개발에 도전할 수 있습니다.
이 흐름은 결코 일시적인 유행이 아니며, 앞으로 더욱 확산되리라고 확신합니다. AI 등장 이전에는 앱 개발에 높은 기술 장벽과 투자 비용이 따랐고, 개인이 추진하기 어려운 막대한 노력과 사전 준비가 필요했습니다. 하지만 AI 시대에는 이런 상식이 크게 변화될 것입니다. 노코드/로우코드 도구와 대화형 AI가 결합되면서 개발자가 아니더라도 저비용으로 빠르게 자기 손으로 아이디어를 구체화할 수 있게 되었습니다.
_지은이의 말
딸각 딸각! 클릭만 하면 앱이 뚝딱!
코딩 한 줄 없이 완성하는 나만의 앱!
Dify는 복잡한 LLM 애플리케이션 개발 과정을 시각적인 워크플로로 변환해 누구나 AI 서비스를 구축할 수 있도록 돕는 오픈소스 플랫폼입니다. 직관적인 UI를 통해 코딩 없이 앱을 만들 수 있어, 누구나 실제 서비스를 구현할 수 있는 환경을 제공합니다.
이 책은 Dify의 기초적인 사용법부터 시작해 RAG(검색 증강 생성)를 도입한 고급 챗봇, 그리고 SNS 게시물, 상품 설명, 기사 요약 등 다양한 글쓰기를 자동 생성하는 텍스트 생성기를 만들어 봅니다. 더 나아가, 챗봇보다 한 단계 더 발전한 AI 에이전트를 만들어 보고 복잡한 대화 제어 및 멀티모달 기반의 업무 자동화 워크플로까지 구현해 봅니다. 특히 구글 스프레드시트, Google Search API, DALL·E 등 외부 툴과 연동해 ‘영수증 관리’나 ‘회의록 작성’ 같은 프로젝트를 직접 구축해 볼 수 있도록 구성했습니다.
비개발자도 막힘없이 따라 할 수 있도록 풍부한 도해와 단계별 그림을 수록하여 이론보다는 실전 중심의 학습을 돕습니다. 이 책과 함께라면 막연하게만 느껴졌던 생성형 AI 서비스 생성부터 배포까지의 모든 과정을 자연스럽게 익힐 수 있습니다. 이제 기술의 한계를 넘어, 여러분의 상상력을 완벽하게 작동하는 AI 앱으로 바꾸는 즐거움을 경험해 보세요.