Giting.
낮의 Giting

· 셀프호스트 · 자동화 · TypeScript · 모노레포

n8n 대표 이미지 203,266 / 60,542
분석 리포트실측 정보적용점원문 README

구조와 기능

n8n은 노드 기반 캔버스에서 여러 서비스를 연결해 워크플로를 만드는 자동화 도구로, 자체 호스팅이 가능하다는 점에서 Zapier·Make류의 SaaS 자동화 도구와 다른 포지션을 잡고 있다. 실측 기준 저장소는 파일 27,848개, 텍스트 총 4,988,765줄 규모이며, 그중 TypeScript가 20,163개 파일·3,871,367줄로 전체 라인의 약 78%를 차지한다. Vue 파일은 1,271개·294,150줄로 전체의 6%가량이다. 라인 수 기준으로 보면 노드 실행기·API·통합 로직을 담당하는 TypeScript 코어가 저장소의 절대 다수를 차지하고, 시각적 캔버스를 그리는 Vue 프런트엔드는 상대적으로 얇은 레이어로 구성돼 있다.

저장소에서 가장 큰 파일은 pnpm-lock.yaml(46,789줄)로, npm이 아니라 pnpm 워크스페이스 기반 모노레포임을 보여준다(반면 프로브가 자동 검출한 패키지 매니저 필드는 npm으로 잡혀 있어 실제 도구 체인과 프로브 메타데이터 사이에 불일치가 있다). 원격 태그 수는 2,144개로 매우 많은데, 모노레포에서 패키지별로 개별 태그를 찍는 방식일 가능성이 높다(추정). CI 워크플로는 101개로 대규모 저장소치고도 많은 편이며, 테스트 파일 10,599개(전체 파일의 약 38%)와 함께 커밋마다 상당한 자동 검증이 걸려 있음을 시사한다.

커밋 이력은 shallow clone(depth 1000) 기준으로 1,023건, 저자 109명이 2026-08-07부터 2026-09-03까지 약 27일 구간에 몰려 있다. 프로브 자체가 "shallow clone 기준이라 commitCount는 하한값"이라고 명시하므로 실제 활동량은 이보다 많을 것으로 봐야 한다. 상위 저자 목록에는 사람 기여자(Matsu, Declan Carroll, Jaakko Husso)와 함께 n8n-cat-bot[bot], n8n-assistant[bot] 같은 봇 계정이 섞여 있어, 최상위 커밋량 중 일부는 자동화된 릴리스·라벨링·문서 작업으로 봐야 한다.

하이라이트

가장 눈에 띄는 것은 테스트·CI 투자 규모다. 테스트 파일 10,599개는 전체 파일 27,848개의 약 38%에 해당하고, 여기에 스냅샷 테스트 파일 207개·82,630줄이 더해진다. 수백 개의 서드파티 통합 노드를 한 저장소에서 관리하는 구조에서는 노드 하나를 고치다가 다른 노드를 깨뜨리는 회귀가 가장 흔한 실패 모드인데, CI 워크플로 101개와 이 정도 규모의 스냅샷 테스트는 그 리스크를 정면으로 겨냥한 투자로 읽힌다. 이런 프로젝트에 기여하거나 포크해서 쓸 계획이라면, 새 코드를 추가하기 전에 기존 스냅샷 테스트 패턴부터 파악하는 쪽이 CI를 통과시키기 쉽다.

두 번째는 코드 구성의 무게 중심이다. TypeScript가 3,871,367줄로 전체 텍스트 라인의 78%를 차지하는 반면 Vue는 294,150줄(6%)에 그친다. 노드 실행·연결·API 처리를 담당하는 백엔드/코어 레이어가 저장소 크기의 대부분을 차지하고, 사용자가 마주하는 시각적 에디터는 상대적으로 얇다는 뜻이다. "노드 하나 추가"가 프런트엔드 작업보다 백엔드 작업에 가깝다는 걸 이 비율이 보여준다.

세 번째는 에이전트 친화적 문서 패키징이다. 실측에서 hasAgentDocs가 true이고, agentPackaging 하위 항목 중 rootDocs·skillMd·agentsDir가 모두 true로 잡혔다(claudePlugin·codexPlugin은 false). 루트에 코딩 에이전트를 위한 문서와 skill.md, agents 디렉터리를 갖춰 놓았다는 뜻으로, AI 코딩 도구를 통한 기여를 어느 정도 염두에 두고 있다는 신호다. 다만 Claude Code나 Codex 전용 플러그인 매니페스트까지는 아직 연결돼 있지 않다.

주의점

가장 먼저 확인해야 할 것은 라이선스다. GitHub의 SPDX 자동 인식이 NOASSERTION으로 나온 이유를 검수 단계에서 LICENSE 원문으로 확인했다(검수 보강): n8n은 표준 오픈소스가 아니라 Sustainable Use License(페어코드)를 쓰고, 파일명에 .ee.가 들어간 소스는 별도 엔터프라이즈 라이선스로 다시 갈라 둔 이중 구조다. 내부 사용·자체 호스팅은 폭넓게 허용되지만, n8n을 서비스로 재판매·호스팅 제공하는 형태는 제한된다. 사내 자동화 용도면 문제없고, 사업 모델에 얹을 계획이면 법무 검토가 선행이다.

두 번째는 메타데이터 신뢰도다. 프로브가 검출한 패키지 매니저는 npm인데 실제 최대 파일은 pnpm-lock.yaml이다. 이런 자동 검출 필드는 참고용으로만 쓰고, 설치·빌드 절차는 저장소에 실제로 존재하는 lock 파일과 문서를 기준으로 판단하는 편이 안전하다. 이슈 응답 속도도 표본 25건 중 24건이 응답을 받았고 중앙값 응답 시간이 0시간으로 매우 빠르게 나왔는데, 이 정도로 즉각적인 응답은 사람 메인테이너보다 라벨링·트리아지 봇의 자동 응답일 가능성이 높다. 실제 이슈 해결 속도나 깊이를 보장하는 지표는 아니라는 점을 감안해야 한다.

설치 체감도 실측했다. npx 기반 콜드 설치는 7분을 넘겨 우리 실행 실측 도구의 타임아웃(5분)에 걸렸다 — 실패 기록 자체가 정보다. n8n의 권장 경로가 도커 이미지인 이유이며, 로컬 npm 설치로 가볍게 맛보는 도구는 아니라는 점을 감안해야 한다.

실측 정보

Stars / Forks
203,266 / 60,542
Open issues
1,146
커밋 (shallow, 하한값)
1,023건, 저자 109명 (2026-08-07~09-03)
원격 태그 수
2,144개
텍스트 총 라인
4,988,765줄 (파일 27,848개)
최대 파일
pnpm-lock.yaml, 46,789줄
라이선스(SPDX)
NOASSERTION (자동 분류 불가)

적용점

  • P0 · 비용 낮음도입 전 LICENSE 파일 원문을 직접 읽는다. GitHub SPDX가 NOASSERTION으로 잡힌다는 것은 표준 오픈소스 라이선스가 아닐 가능성이 크다는 뜻이므로, 특히 SaaS로 재제공할 계획이라면 반드시 확인해야 한다.
  • P1 · 비용 낮음패키지 매니저를 pnpm 기준으로 가정하고 설치 문서를 읽는다. 실측 저장소의 최대 파일이 pnpm-lock.yaml(46,789줄)인데 프로브가 잡은 매니저 표기는 npm이라, 실제 설치·빌드는 pnpm 워크스페이스 명령을 따라야 한다.
  • P1 · 비용 중간커스텀 노드나 플러그인을 얹기 전에 스냅샷 테스트(.snap 207개, 82,630줄) 구조를 먼저 훑는다. 회귀 방지 체계가 스냅샷에 크게 의존하므로 이 패턴을 따라야 CI가 계속 초록불을 유지한다.
◆ 도입 후보

테스트 파일 10,599개, 스냅샷 테스트 82,630줄, CI 워크플로 101개가 한 저장소에 동시에 존재한다는 것은 수백 개 통합 노드를 한 번에 깨뜨리지 않으려는 회귀 방지 체계가 실제로 돌아가고 있다는 뜻이다. 커밋 로그에도 사람 저자 109명과 함께 자동화 봇 계정이 상위 커밋 저자에 올라 있어 릴리스·문서 갱신 다수가 자동화되어 있음을 보여준다. 다만 GitHub SPDX 인식이 NOASSERTION으로 나온다는 것은 표준 OSI 라이선스가 아니라는 신호이므로, 상용·호스팅 재배포를 검토한다면 저장소의 LICENSE 파일을 직접 읽고 조건을 확인해야 한다. 자체 호스팅으로 내부 워크플로 자동화를 도입하는 팀에는 candidate로 판단하되, 라이선스 확인을 선행 조건으로 둔다.

원문 README

아래는 n8n-io/n8n 저장소의 README 원문입니다(GitHub 렌더, 수집 시점 기준). 저작권은 원 프로젝트에 있으며 원 저장소의 라이선스를 따릅니다. GitHub에서 보기

README 전문 펼치기

Banner image

n8n – The Platform for AI Agents and Workflow Automation

Fair-code platform to build and deploy AI agents and workflows. Combine a visual canvas with custom code, run it self-hosted or in the cloud, and connect to 1500+ integrations. AI automation you can trust with real work, from prototype to production.

n8n.io - Screenshot

Key Capabilities

  • AI-Native Automation Platform: Build and operationalize AI workflows and multi-step agents using your own data, models, and tools
  • Model Flexibility, No Lock-In: Connect to OpenAI, Anthropic, Google, or open-source models and switch providers without changing your architecture
  • From Prototype to Production: Design multi-step AI workflows with logic, tool use, human approvals, and full observability
  • Code When You Need It: Combine visual building with JavaScript, Python, and npm packages for advanced AI workflows
  • Enterprise-Ready AI: Self-host or deploy securely with role-based access, audit trails, and support for sensitive data
  • Leverage What Already Exists: 1500+ integrations and 9,000+ workflow templates to connect AI with your existing systems

Quick Start

Try n8n instantly with our install script (requires Docker):

curl -fsSL https://get.n8n.io | sh

Or deploy manually with Docker:

docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Access the editor at http://localhost:5678

Resources

Support

Need help? Our community forum is the place to get support and connect with other users: community.n8n.io

License

n8n is fair-code distributed under the Sustainable Use License and n8n Enterprise License.

  • Source Available: Always visible source code
  • Self-Hostable: Deploy anywhere
  • Extensible: Add your own nodes and functionality

Enterprise Licenses available for additional features and support.

Additional information about the license model can be found in the docs.

Contributing

Found a bug 🐛 or have a feature idea ✨? Check our Contributing Guide for a setup guide & best practices.

Join the Team

Want to shape the future of automation? Check out our job posts and join our team!

What does n8n mean?

Short answer: It means "nodemation" and is pronounced as n-eight-n.

Long answer: "I get that question quite often (more often than I expected) so I decided it is probably best to answer it here. While looking for a good name for the project with a free domain I realized very quickly that all the good ones I could think of were already taken. So, in the end, I chose nodemation. 'node-' in the sense that it uses a Node-View and that it uses Node.js and '-mation' for 'automation' which is what the project is supposed to help with. However, I did not like how long the name was and I could not imagine writing something that long every time in the CLI. That is when I then ended up on 'n8n'." - Jan Oberhauser, Founder and CEO, n8n.io

의견

판정에 대한 반론, 도입 경험, 정정 제보를 환영합니다. GitHub 계정으로 참여합니다.

이것도 재봤습니다

전체 리포트 →

이번 주 실측, 메일로 받기

매주 금요일, 그 주의 리포트와 매거진을 보내드립니다. 광고 없이 실측만.