본문 바로가기

패스트캠퍼스/50일 습관 챌린지 환급 챌린지

패스트캠퍼스 환급챌린지 10일차 : n8n 하나로 끝내는 AI 자동화의 모든 것 강의 후기

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://fastcampus.info/4oKQD6b

 

 

 

📌 오늘 배운 핵심 내용

오늘은 n8n에서 데이터를 다루는 기본 언어인 JSON에 대해 학습했습니다. n8n의 모든 데이터는 JSON 형태로 노드 간에 전달되므로, JSON 구조를 정확히 이해하는 것이 효율적인 워크플로우 구축의 핵심입니다.

JSON은 JavaScript Object Notation의 약자로, 키-값 쌍으로 구조화된 데이터 포맷입니다. 기본 데이터 타입은 다섯 가지입니다. 첫째, 문자열은 큰따옴표로 감싸진 텍스트입니다. 둘째, 숫자는 정수와 소수를 표현합니다. 셋째, 불리언은 참과 거짓을 나타내는 true와 false입니다. 넷째, null은 값이 없음을 의미합니다. 다섯째, 배열은 대괄호로 감싸진 순서가 있는 값들의 리스트입니다. 여섯째, 객체는 중괄호로 감싸진 키-값 쌍의 집합입니다.

n8n에서 JSON의 중요성은 특별합니다. 모든 노드는 JSON 형태의 데이터를 입력받고 출력합니다. API 응답, 데이터베이스 쿼리 결과, 파일 내용 모두 JSON으로 변환됩니다. 노드 간 데이터 전달은 JSON 객체의 배열 형태로 이루어집니다. 각 아이템이 하나의 JSON 객체이며, 여러 아이템을 처리할 때는 배열로 묶여서 전달됩니다.

JSON 경로 표기법도 배웠습니다. 점 표기법으로 중첩된 객체의 값에 접근할 수 있습니다. 예를 들어, user.profile.name은 user 객체 안의 profile 객체 안의 name 값을 가져옵니다. 배열 접근은 대괄호와 인덱스를 사용합니다. items[0]은 배열의 첫 번째 요소를 의미합니다. 복합 경로는 객체와 배열 접근을 조합할 수 있습니다. users[0].email은 첫 번째 사용자의 이메일을 가져옵니다.

n8n의 표현식에서 JSON 데이터를 참조할 때는 중괄호 두 개로 감싸서 사용합니다. 이전 노드의 데이터는 달러 표시로 접근하며, 특정 노드의 데이터는 노드 이름을 지정해서 가져올 수 있습니다.

 

✨ 흥미로웠던 부분

가장 흥미로웠던 점은 n8n이 JSON을 시각화하는 방식입니다. 백엔드 개발을 하면서 JSON은 항상 텍스트 형태로만 다뤘습니다. API 응답을 확인할 때도 터미널이나 Postman에서 긴 JSON 문자열을 스크롤하며 찾아야 했죠. 하지만 n8n은 JSON 데이터를 트리 뷰와 테이블 뷰로 제공합니다. 트리 뷰는 중첩된 구조를 접었다 펼 수 있어서 복잡한 데이터도 쉽게 탐색할 수 있고, 테이블 뷰는 배열 데이터를 엑셀처럼 보기 좋게 표시합니다. 특히 각 필드의 데이터 타입이 색상으로 구분되어 표시되어 한눈에 구조를 파악할 수 있다는 점이 좋았습니다.

또한 n8n의 표현식 에디터가 자동 완성을 지원한다는 것도 인상적이었습니다. 이전 노드의 데이터를 참조할 때, 달러 표시를 입력하면 사용 가능한 필드 목록이 드롭다운으로 나타나서 정확한 경로를 쉽게 입력할 수 있습니다. 오타로 인한 에러를 방지하고 개발 속도를 높이는 훌륭한 UX입니다. 백엔드 코드에서는 IDE의 자동 완성을 기대할 수 없는 동적 JSON 데이터도 n8n에서는 런타임에 구조를 파악해서 자동 완성을 제공합니다.

JSON 배열 처리의 명확성도 좋았습니다. n8n에서는 각 노드가 아이템의 배열을 처리한다는 개념이 일관되게 적용됩니다. 단일 객체도 배열로 감싸져서 전달되며, 루프 없이도 배열의 모든 요소가 자동으로 처리됩니다. 이는 함수형 프로그래밍의 map 개념과 유사하며, 백엔드 코드에서 반복문을 작성하는 것보다 훨씬 직관적입니다.

 

💡 업무 적용 방안

JSON 구조 이해는 현재 모든 프로젝트에서 즉시 활용할 수 있습니다. 학교 동창 서비스 MVP에서 Azure OpenAI API 응답을 처리할 때, 복잡한 중첩 구조에서 필요한 데이터만 추출해야 합니다. API 응답은 choices 배열 안에 message 객체가 있고 그 안에 content가 있는 구조인데, 정확한 JSON 경로 표기법을 사용하면 원하는 값을 정확히 가져올 수 있습니다. 예를 들어, choices[0].message.content로 AI의 응답 텍스트에 바로 접근할 수 있습니다.

Azure Cosmos DB의 쿼리 결과도 JSON 형태로 반환되는데, 여러 문서가 배열로 오면 각각을 처리해야 합니다. n8n의 자동 배열 처리 덕분에 루프 없이도 모든 문서에 대해 후속 작업을 수행할 수 있습니다. 예를 들어, 모든 사용자 문서를 가져온 후 각 사용자의 이메일을 추출해서 이메일 발송 노드로 넘기면, 자동으로 모든 사용자에게 이메일이 발송됩니다.

AI 해커톤 프로젝트에서는 여러 AI 모델의 응답을 통합할 때 JSON 경로 표기법이 필수적입니다. 감정 분석 API는 sentiment.score를 반환하고, 키워드 추출 API는 keywords 배열을 반환하며, 요약 API는 summary.text를 반환하는 식으로 각각 다른 구조를 가질 것입니다. 이런 이질적인 데이터들을 하나의 통합된 JSON 객체로 재구성할 때, 정확한 경로 지정이 중요합니다.

디버깅할 때도 JSON 이해가 핵심입니다. 워크플로우에서 예상과 다른 결과가 나올 때, 각 노드의 JSON 출력을 확인하면 어디서 데이터 구조가 잘못되었는지 빠르게 파악할 수 있습니다. 특히 외부 API는 문서와 실제 응답이 다른 경우가 종종 있는데, n8n의 JSON 뷰어로 실제 구조를 확인하고 표현식을 수정할 수 있습니다. JSON을 마스터하면 n8n의 모든 기능을 자유자재로 다룰 수 있을 것입니다!