Zapier 쓰다 너무 비싼 비용에 n8n을 찾아 나서다
Zapier를 쓸 때 한 달 청구서가 무려 89달러가 나온 적이 있었습니다. 하루에 100건 정도 자동화 작업만 돌렸는데, 이 정도 비용이 과하다고 느껴졌어요. 그래서 직접 서버에 설치해서 쓰는 방법을 알아보다가 n8n을 발견했습니다. 설치가 쉽다고 해서 기대했지만, 네트워크 문제랑 백업 설정이 꼬이면서 생각보다 오래 걸렸습니다. 공식 문서가 너무 빈약해서 어디서 문제가 생긴 건지 알아내기도 힘들었고, 한참 동안은 뭐가 잘못됐는지 감도 못 잡고 시간을 허비했습니다.
n8n은 오픈소스 워크플로우 자동화 툴로, Docker를 활용해 개인 서버에 올릴 수 있습니다. 무제한으로 워크플로우를 실행할 수 있다는 점이 가장 큰 장점이고, 특히 OpenAI 같은 AI 모델과 연결이 상당히 수월했습니다. 그런데 설치 과정에서 네트워크 설정이 꼬여 Docker 컨테이너가 제대로 실행되지 않는 일이 잦았어요. 이런 부분 때문에 여러 번 재설정을 하면서 시간을 썼는데, 제가 직접 겪은 문제들과 해결 방법을 공유하려 합니다. 이런 점들을 미리 알았더라면 훨씬 덜 고생했을 텐데 하는 생각이 듭니다.
목차
-
>1. n8n 소개 및 셀프호스팅의 필요성
>2. Docker 설치 및 n8n 실행 방법
>3. 첫 워크플로우 설정하기: Gmail → AI → 텔레그램
>4. 경험한 에러와 해결책
>5. Zapier, Make, n8n의 비용 비교
1. n8n 소개 및 셀프호스팅의 필요성
n8n은 독일에서 만든 오픈소스 워크플로우 자동화 도구입니다. 드래그 앤 드롭 방식으로 노드를 연결하는 UI가 직관적이라 복잡할 거라는 선입견과 달리 생각보다 쉽게 사용할 수 있었습니다. 400개가 넘는 다양한 서비스와 앱을 연동할 수 있는 것도 인상적이었고요. 특히 JavaScript나 Python 스크립트를 직접 삽입해 기능을 확장하는 옵션이 있어 개발자에게는 큰 매력으로 다가올 겁니다. 2026년부터 LangChain 통합이 예정되어 있다는 소식도 들었는데, 이 부분이 실제로 얼마나 유용해질지는 차차 지켜봐야 할 것 같습니다.
클라우드 서비스는 매달 적잖은 비용이 나와서 저는 개인 서버에 n8n을 직접 설치하기로 결심했습니다. 그런데 설치 초기 네트워크 설정과 보안 문제 때문에 꽤 오래 걸렸어요. 방화벽 규칙이나 포트 개방 같은 기본적인 설정 사항이 공식 문서에 제대로 정리되어 있지 않아서, 몇 시간 동안 이 부분만 붙잡고 있었습니다. 서버 관리 경험이 전혀 없는 사람이 이걸 처음부터 하려면 상당히 힘들 거라는 생각이 들었습니다. 제가 겪은 시행착오와 해결법을 차근차근 알려드릴 테니 설치 과정에서 막히는 부분이 생기면 참고하시길 바랍니다.
n8n 실행 — 명령어 한 줄
n8n을 직접 돌리면서 가장 신경 써야 할 부분은 실행 명령어 한 줄에 모든 게 달려 있다는 점입니다. 특히 볼륨 마운트 설정을 빼먹으면 작업한 데이터가 싹 날아가서 낭패를 봅니다. 저는 이걸 처음에 놓쳐서 데이터가 사라지는 바람에 시간 낭비가 꽤 심했습니다. 아래 명령어를 그대로 복사해서 쓰면 되는데, 이 기본기를 무시하면 나중에 복구가 불가능하니 반드시 확인해야 합니다.
docker run -d
--name n8n
--restart unless-stopped
-p 5678:5678
-v n8n_data:/home/node/.n8n
-e GENERIC_TIMEZONE="Asia/Seoul"
-e TZ="Asia/Seoul"
docker.n8n.io/n8nio/n8n
실행 후 30초 정도 기다렸지만, 접속이 매끄럽지 않아서 꽤 당황했습니다. http://localhost:5678에 접속해도 로딩이 멈추거나 몇 번 새로고침을 해야 로그인 화면이 뜨더군요. 이런 불안정한 초기 접속 문제는 꽤 신경 쓰였고, 특히 처음 계정 만드는 과정에서 접속이 자꾸 끊겨서 스트레스가 쌓였습니다. 개선이 시급한 부분이라 생각합니다.
컨테이너 관리 명령어
n8n을 직접 관리하려면 컨테이너 상태를 숙지해야 하는데, 이 부분을 초반에 몰라서 상당히 시간을 허비했습니다. 아래 명령어들을 꼭 기억해 두세요. 업데이트할 때 컨테이너를 멈추고 삭제한 후 다시 실행하는 과정이 번거롭긴 해도 이 절차를 무시하면 버전 충돌과 데이터 꼬임이 발생합니다.
# n8n 중지
docker stop n8n
# n8n 재시작
docker start n8n
# n8n 버전 업데이트
docker pull docker.n8n.io/n8nio/n8n
docker stop n8n && docker rm n8n
# 위의 docker run 명령어 다시 실행
# 실행 상태 확인
docker ps
특히 업데이트할 때 docker rm n8n을 빼먹으면 이전 버전 컨테이너가 남아서 혼란스러웠습니다. 저도 이 때문에 한참 문제를 찾느라 시간을 날렸는데, 공식 문서가 더 명확했으면 좋겠다는 생각이 들었습니다. 그리고 docker ps로 상태 확인은 필수지만, 매번 터미널을 들여다보는 게 꽤 귀찮았습니다.
3. 첫 워크플로우 설정하기: Gmail → AI → 텔레그램
Gmail에 메일이 도착하면 AI가 중요도를 분석해 텔레그램으로 알려주는 워크플로우를 만들었는데, 개인적으로 이 조합은 쓸 만했습니다. n8n을 직접 호스팅하면서 월정액 SaaS를 쓰던 때보다 비용이 눈에 띄게 줄었어요. 다만 UI가 직관적이지 않아서 매번 설정할 때마다 시간을 낭비하는 경우가 많았습니다. 특히 모바일에서 메뉴 구조가 꼬여서 작업 흐름이 자꾸 끊기는 문제가 있었는데, 이 부분은 상당히 불편했습니다. 제가 겪은 문제와 함께 몇 가지 팁을 공유합니다.
1단계: Gmail Trigger 노드 추가
n8n 대시보드에서 새 워크플로우를 만들고, 중앙의 + 버튼을 눌러 Gmail Trigger 노드를 추가했습니다. 구글 계정을 OAuth2로 인증하는 과정이 생각보다 복잡했는데, 특히 모바일 환경에서 메뉴가 엉켜서 작업을 여러 번 반복해야 했던 점이 불편했습니다. 저는 Poll Times를 1분으로 설정했는데, 이 설정 덕분에 이메일 확인 주기가 딱 맞아떨어져서 꽤 만족스러웠어요. 너무 자주 이메일을 확인하면 API 제한에 걸릴까 봐 걱정했는데, 이 간격이 적당했습니다.
2단계: OpenAI 노드로 AI 중요도 분류
Gmail Trigger 옆에 OpenAI 노드를 배치했는데, 이 부분에서 어려움이 많았습니다. 저는 Resource에서 Chat을 선택하고, Model은 ‘gpt-4o-mini’로 설정했어요. 비교적 가벼운 모델이지만, 분류 정확도가 꽤 높아서 놀랐습니다. 다만 아래 문구를 정확히 입력하지 않으면 결과가 엉망이 되었는데, 처음에 이 부분에서 한참을 고생했네요.
다음 이메일의 중요도를 판단하세요.
제목: {{ $json.subject }}
내용 미리보기: {{ $json.snippet }}
반드시 아래 중 하나만 출력하세요: 중요 / 일반 / 스팸
3단계: IF 노드로 분기 처리 후 텔레그램 발송
OpenAI 노드 뒤에 IF 노드를 연결해 조건을 걸었습니다. 조건문은 {{ $json.message.content }} contains 중요로 설정했는데, 이게 핵심입니다. ‘중요’라는 단어가 포함된 메시지만 텔레그램으로 알림을 보내도록 했더니, 불필요한 알림이 확 줄었습니다. 처음에는 모든 메일을 알림 처리하려 했는데, 텔레그램 알림이 쏟아져서 감당이 안 됐습니다.
📬 중요 메일 도착
제목: {{ $('Gmail Trigger').item.json.subject }}
발신: {{ $('Gmail Trigger').item.json.from.value[0].address }}
조건을 설정한 뒤에는 꼭 상단 오른쪽의 [Save] 버튼을 눌러야 하고, 바로 옆에 있는 [Activate] 토글도 켜야 워크플로우가 제대로 작동합니다. 저는 이걸 깜빡해서 한참 원인을 찾느라 시간을 썼습니다. 설정이 완료되면 중요한 메일이 도착할 때마다 1분 내로 텔레그램 알림이 오는데, 가끔 알림이 한두 번 누락되는 현상이 있었습니다. 특히 모바일에서 텔레그램 알림이 안 뜨면 답답함이 커서 이 부분은 개선이 필요하다고 봅니다.
4. 경험한 에러와 해결책
에러 ① PC를 끄면 워크플로우가 멈추는 문제
노트북을 끄고 다시 켰더니 갑자기 Gmail 트리거가 작동하지 않는 걸 확인했습니다. Docker 컨테이너가 돌아가고 있어도 PC가 꺼져 있으면 n8n 워크플로우 자체가 멈춘다는 걸 몰랐던 거죠. 이 문제 때문에 한동안 왜 자동화가 멈추는지 이해가 안 됐습니다. 결국 실시간 자동화를 원한다면 항상 켜져 있는 서버가 필수라는 결론에 도달했습니다. 저는 비용 부담 때문에 클라우드 VPS를 알아봤고, Hetzner에서 월 5달러짜리 VPS를 써보니 이 문제가 말끔히 해결됐습니다. 개인적으로 초기 투자 아까웠던 마음이 있었지만, 안정성을 생각하면 VPS 쓸 만하다는 판단입니다.
에러 ② Gmail OAuth 인증 실패
Gmail 노드 인증 과정에서 redirect_uri_mismatch 에러가 계속 뜨면서 인증이 제대로 안 됐습니다. 구글 클라우드 콘솔에서 OAuth 앱 설정에 승인된 리디렉션 URI 목록에 http://localhost:5678/rest/oauth2-credential/callback 주소를 직접 추가해야 했습니다. 이 부분이 공식 문서에 거의 언급되지 않아, 왜 자꾸 인증이 튕기는지 파악하는 데 상당한 시간이 들었어요. 특히 n8n을 외부 도메인에 올려 운영한다면 localhost 대신 실제 도메인 주소를 입력해야 정상 작동하는 점을 절대 잊으면 안 됩니다. 저처럼 이 부분을 간과하면 인증 실패로 인한 스트레스가 꽤 큽니다.
5. Zapier, Make, n8n의 비용 비교
Zapier, Make, n8n을 직접 써본 입장에서 각 플랫폼의 비용과 특징을 솔직하게 적어봅니다. 사용자마다 요구사항이 다르기에 무조건 이게 최고라고 할 수 없다는 점부터 말씀드리고 싶네요.
| 항목 | Zapier | Make | n8n 셀프호스팅 |
|---|---|---|---|
| 월 비용 (하루 100건) | 약 89달러 | 약 19달러 | 0원 (VPS 비용 별도) |
| 과금 기준 | Task 수 | Operation 수 | 실행 횟수 무제한 |
| AI 연동 | AI Agent (베타) | AI Agent (정식) | LangChain 네이티브, LLM 완전 지원 |
| 난이도 | 쉬움 (15분) | 보통 (30분) | 높음 (45분+, Docker 지식 필요) |
| 데이터 주권 | 클라우드 전용 | 클라우드 전용 | 내 서버에서 완전 관리 |
Zapier는 설정이 정말 간단해서 자동화 처음 시작하는 사람에게 편리합니다. 다만 매달 89달러라는 고정비용이 부담스러워서 저는 곧바로 Make로 넘어갔어요. Make는 월 19달러 수준이라 부담이 적지만, Operation 단위 과금 방식 때문에 사용량이 많아지면 비용이 급격히 올라갑니다. 그리고 n8n은 셀프호스팅 특성상 설치 과정이 까다롭고 Docker 명령어를 다뤄야 해서 진입장벽이 높습니다. 설치하는 데만 45분 이상 소요됐고, 초보자라면 이 부분에서 좌절할 가능성이 큽니다. 그러나 일단 제대로 세팅하면 실행 횟수 제한 없이 무제한 사용이 가능해, 장기적으로 보면 비용 절감 효과가 확실하다고 생각합니다. 저처럼 서버 관리에 어느 정도 자신 있고 비용 문제에 신경 쓰는 사람이라면 n8n 셀프호스팅이 현명한 선택입니다. 단 설치 과정의 까다로움을 감안하면, 초보자에게 바로 추천하기는 어렵다고 판단합니다.