본문 바로가기

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

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

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

https://fastcampus.info/4oKQD6b

 

 

 

📌 오늘 배운 핵심 내용

오늘은 n8n의 가장 강력한 기능 중 하나인 JSON 표현식을 활용한 데이터 가공 방법을 학습했습니다. 표현식을 사용하면 JavaScript 문법으로 데이터를 동적으로 변환하고 조작할 수 있어, 노코드 환경에서도 개발자 수준의 데이터 처리가 가능합니다.

표현식 기본 문법은 이중 중괄호로 감싸서 사용합니다. 중괄호 안에서는 JavaScript 코드를 작성할 수 있으며, 이전 노드의 데이터는 달러 표시로 참조합니다. 현재 아이템의 JSON 데이터에 접근할 때는 달러json을 사용하고, 특정 노드의 데이터는 달러node를 사용합니다. 배열의 특정 인덱스는 달러item으로 접근할 수 있습니다.

문자열 조작 메소드들을 배웠습니다. toUpperCase와 toLowerCase로 대소문자 변환, trim으로 공백 제거, slice와 substring으로 부분 추출, replace로 문자 치환, split으로 배열 변환, concat으로 문자열 결합이 가능합니다. 템플릿 리터럴도 사용할 수 있어서 변수를 문자열 안에 삽입할 수 있습니다.

배열 메소드도 강력합니다. map으로 배열의 각 요소를 변환하고, filter로 조건에 맞는 요소만 추출하며, find로 특음 요소를 찾고, reduce로 집계 연산을 수행합니다. sort로 정렬하고, join으로 문자열로 합치며, includes로 포함 여부를 확인할 수 있습니다. length로 배열 길이를 구할 수 있습니다.

숫자 연산은 기본 사칙연산 외에도 Math 객체의 메소드들을 사용할 수 있습니다. Math.round로 반올림, Math.floor로 내림, Math.ceil로 올림, Math.max와 Math.min으로 최댓값과 최솟값을 구하고, Math.random으로 난수를 생성할 수 있습니다.

날짜 처리도 가능합니다. Date 객체로 현재 시간을 가져오거나 특정 날짜를 생성하고, 포맷 변환을 할 수 있습니다. toISOString으로 ISO 포맷으로 변환하고, getTime으로 타임스탬프를 얻을 수 있습니다.

조건부 표현식은 삼항 연산자를 활용합니다. 조건 물음표 참일때값 콜론 거짓일때값 형태로 사용하며, 중첩도 가능합니다.

 

✨ 흥미로웠던 부분

가장 흥미로웠던 것은 JavaScript의 모든 기능을 표현식에서 사용할 수 있다는 점입니다. 백엔드 개발자로서 JavaScript에 익숙한 저에게는 엄청난 강점입니다. 노코드 도구라고 해서 단순한 설정만 가능한 것이 아니라, 실제로 복잡한 로직을 구현할 수 있습니다. 예를 들어, 배열 메소드를 체이닝해서 데이터를 필터링하고 변환하고 정렬하는 복잡한 파이프라인을 한 줄의 표현식으로 작성할 수 있습니다. 이는 Python의 리스트 컴프리헨션이나 JavaScript의 함수형 프로그래밍 패턴과 동일한 수준의 표현력을 가집니다.

또한 실시간 미리보기 기능이 매우 유용했습니다. 표현식을 작성하면 즉시 결과가 표시되어 디버깅이 쉽습니다. 백엔드 코드에서는 변경 사항을 확인하려면 서버를 재시작하고 API를 호출해야 하지만, n8n에서는 타이핑하는 즉시 결과를 볼 수 있어서 시행착오를 빠르게 반복할 수 있습니다. 특히 복잡한 정규표현식이나 날짜 포맷 변환을 테스트할 때 이 기능이 개발 속도를 크게 향상시킵니다.

문자열 템플릿 리터럴의 활용도가 높았습니다. API 요청 URL을 동적으로 생성하거나, 개인화된 메시지를 만들거나, 파일명을 날짜와 조합해서 생성하는 등 실무에서 자주 필요한 작업들을 간결하게 처리할 수 있습니다. 백엔드에서 문자열 연결을 위해 플러스 기호를 여러 번 사용하는 것보다 훨씬 가독성이 좋습니다.

 

💡 업무 적용 방안

학교 동창 서비스 MVP에서 Azure OpenAI API 응답을 가공할 때 표현식을 적극 활용할 수 있습니다. AI가 반환한 텍스트에서 불필요한 공백이나 특수문자를 제거하고, 특정 패턴을 추출하고, 길이를 제한하는 등의 전처리를 표현식으로 처리할 수 있습니다. 예를 들어, AI 응답에서 JSON을 추출해야 하는 경우 정규표현식과 JSON.parse를 조합해서 파싱할 수 있습니다. trim, slice, replace를 체이닝하면 복잡한 텍스트 정제 작업도 한 번에 처리 가능합니다.

배열 메소드는 데이터 필터링에 유용할 것입니다. Cosmos DB에서 가져온 사용자 리스트 중 특정 조건을 만족하는 사용자만 선택하거나, 나이순으로 정렬하거나, 특정 필드만 추출하는 작업을 filter, sort, map 메소드로 처리할 수 있습니다. 백엔드 코드에서 루프를 돌며 처리하던 작업을 표현식 한 줄로 대체할 수 있어 워크플로우가 훨씬 간결해집니다.

날짜 처리는 AI 해커톤의 Humane 메모라 프로젝트에서 필수적입니다. 사용자가 메모를 작성한 시간을 한국 시간대로 변환하고, 사람이 읽기 쉬운 형식으로 포맷하고, 날짜별로 그룹핑하는 작업에 Date 객체와 표현식을 활용할 수 있습니다. 특히 메모 검색 기능에서 오늘, 이번 주, 이번 달 같은 상대적 날짜 필터링을 구현할 때 날짜 연산 표현식이 유용할 것입니다.

조건부 표현식은 동적 워크플로우 제어에 활용하겠습니다. 사용자 입력의 길이에 따라 다른 AI 모델을 선택하거나, 시간대에 따라 다른 알림 메시지를 보내거나, 데이터 품질에 따라 다른 처리 경로를 선택하는 로직을 삼항 연산자로 간결하게 구현할 수 있습니다. IF 노드를 추가하지 않고도 표현식 내에서 조건 처리가 가능해 워크플로우가 더 깔끔해집니다.

또한 표현식으로 커스텀 데이터 변환 함수를 만들 수 있습니다. 예를 들어, 여러 API 응답의 다른 필드명을 통일된 스키마로 매핑하거나, 비즈니스 로직에 맞는 계산을 수행하거나, 복잡한 문자열 파싱을 처리할 수 있습니다. JavaScript의 모든 기능을 활용할 수 있어서 코드로 구현할 수 있는 거의 모든 데이터 변환을 표현식으로 처리할 수 있습니다. 표현식을 마스터하면 n8n의 가능성이 무한대로 확장될 것입니다!