자동화 기초 08 협업/외주: Rules로 산출물 포맷 고정 + 보안 규칙 강제

자동화 기초·입문 · n8n 셀프호스팅 + 안티그래비티 실전

[08] 협업/외주: Rules로 산출물 포맷 고정 + 보안 규칙 강제

6~7편에서 “Import 가능한 n8n 워크플로우 JSON”을 뽑고, 에러 처리/알림까지 표준 패턴을 잡았습니다. 그런데 이걸 팀에서 굴리거나 외주로 넘기기 시작하면, 문제가 바로 생깁니다. 사람마다 결과물이 다르고, 키/개인정보가 섞이고, 테스트 절차가 빠지고, 결국 운영자가 고생합니다.

이번 편은 그걸 막는 방법입니다. 안티그래비티의 Rules / Workflows로 “산출물 포맷”과 “보안 규칙”을 강제해서, 누가 프롬프트를 치든 결과물이 같은 품질로 나오게 만드는 운영형 세팅을 정리합니다. (Rules / Workflows)

이 글을 끝내면
  • 팀/외주에서 공통으로 쓰는 Global Rules 템플릿을 만들고
  • 프로젝트별로 다른 정책을 Project Rules로 분리할 수 있으며
  • n8n 산출물의 “형식/보안/테스트”를 강제로 고정할 수 있습니다.

0) 협업/외주에서 자동화가 망하는 이유(대부분 이 4개)

  1. 산출물 포맷이 매번 다름: JSON이 먼저 나와야 하는데 설명부터 길게 쓰고 끝
  2. Credential/Key가 노출: 채팅에 토큰을 붙여넣거나, JSON에 값이 들어가버림
  3. 테스트 절차 부재: “어떻게 검증하는지”가 빠져서 재현이 안 됨
  4. 운영 실패 대응 부재: 에러 알림/실패 기준이 워크플로우마다 다름

6~7편에서 이미 해결 방향(Import JSON, 표준 에러 워크플로우)을 잡았으니, 이제는 이를 규칙으로 강제하는 단계로 넘어가면 됩니다.

1) Rules / Workflows 개요: “프롬프트”를 줄이고 “규칙”을 늘리자

안티그래비티는 Customizations 패널에서 Rules를 설정할 수 있고, Global Rules(전체 적용)와 프로젝트/상황별 규칙을 함께 운용할 수 있습니다. 즉, 프롬프트를 길게 쓰지 않아도 “기본 행동”을 고정할 수 있습니다. (Rules / Workflows)

운영 관점에서 Rules를 쓰는 목적
  • 출력 포맷을 강제해서 “늘 같은 산출물”이 나오게
  • 보안을 강제해서 “절대 하면 안 되는 행동”을 차단
  • 검증을 강제해서 “테스트 없는 자동화”를 없애기
  • 운영 패턴을 강제해서 실패 처리(알림/재시도)가 일관되게

2) (복붙) Global Rules 템플릿: 팀/외주 공통 “기본 헌법”

아래는 n8n 자동화 작업을 기준으로 만든 “공통 규칙 세트”입니다. 이걸 Global Rules로 넣어두면, 누구든 안티그래비티로 워크플로우를 만들 때 기본 품질이 고정됩니다.

[Global Rules - n8n Team Standard]
A. Output Format (무조건 고정)
1) 결과물은 항상 아래 순서로 출력한다:
   (1) Import 가능한 n8n 워크플로우 JSON을 "첫 번째" 코드블록으로
   (2) 노드별 역할 1~2줄 요약
   (3) 사용자가 채워야 할 Credential/환경변수 목록(이름만, 값 금지)
   (4) 로컬 테스트 절차(Execute Workflow → Test URL → curl 예시)

2) JSON은 설명/주석 없이 "순수 JSON"만 출력한다.
3) 워크플로우/노드 이름은 영문 snake_case를 기본으로 한다.

B. Security Rules (절대 금지)
1) API Key/OAuth Token/Password/Secret/개인정보 원문은 절대 출력하지 않는다.
2) 사용자가 키/토큰을 제공하더라도, 그대로 재출력하지 않는다.
3) Credential 값이 필요한 경우:
   - "Credential 이름" 또는 "환경변수명"만 제안한다.
   - 가능하면 _FILE 방식이나 secrets 사용을 우선 제안한다.

C. Minimal First, Then Expand (성공 루프)
1) 1차 버전은 최소 노드로 "Import/실행 성공"을 먼저 만든다.
2) 2차 버전에서 조건/예외/알림/재시도를 추가한다.

D. Error Handling Standard (운영 표준)
1) 입력 검증 실패는 Stop And Error로 '실패' 처리한다.
2) 모든 운영 워크플로우는 Error workflow(에러 워크플로우) 연결을 전제로 설계한다.
3) 알림에는 워크플로우명/노드/에러메시지/재현정보를 포함한다.

참고: n8n은 민감 정보를 별도 파일에서 읽는 구성(_FILE)을 지원합니다. (Configuration methods) 또한 에러 워크플로우는 Error handling 가이드와 Error Trigger로 표준화할 수 있습니다. (Error handling, Error Trigger)

3) Project Rules: 고객/프로젝트마다 다른 규칙을 “분리”해서 관리

Global Rules는 “모든 작업의 기본 품질”을 고정하는 용도라면, Project Rules는 고객/프로젝트에 따라 달라지는 요구사항을 분리하기 위한 용도입니다. 예를 들어 이런 경우가 많습니다:

Project Rules로 분리하기 좋은 예
  • Webhook 경로 규칙: /clientA/inquiry처럼 네이밍 표준
  • 로그/실행 데이터 보관 정책: 민감 데이터는 저장 금지
  • 알림 채널: 고객사 Slack 채널/내부 운영 채널 분리
  • 데이터 마스킹 규칙: 이메일/전화번호 마스킹 기준

3-1) (복붙) Project Rules 예시

[Project Rules - clientA]
1) Webhook path는 반드시 /clientA/* 형태로 만든다.
2) 알림은 Slack #clientA_ops 채널로 보내는 노드를 기본 포함한다(값은 넣지 말고 Credential 이름만).
3) 이메일/전화번호는 알림 메시지에서 마스킹한다.
4) 에러 워크플로우 알림에도 동일 마스킹 규칙을 적용한다.

4) 외주/팀 협업 프로세스: “요구사항 → 산출물 → 검증”을 체크리스트로 고정

Rules로 출력 품질을 고정해도, 사람 프로세스가 없으면 운영에서 삐끗합니다. 그래서 외주/팀 협업에서는 아래 체크리스트를 “납품 기준”으로 박아두는 걸 추천합니다.

납품 체크리스트(추천)
  1. Import 가능한 JSON 제공(파일로)
  2. 노드별 역할 1~2줄 요약
  3. Credential/환경변수 목록 제공(값 금지)
  4. 테스트 절차 제공(Execute Workflow + Test URL + curl)
  5. 에러 처리: Stop And Error + Error workflow 연결 가이드 포함

에러 워크플로우 연결/구조는 n8n 공식 Error handling 문서에 절차가 나와 있습니다. (Error handling)

5) 안티그래비티에 “외주/팀용”으로 말하는 프롬프트 예시

Rules가 있어도, 초반 프롬프트가 너무 빈약하면 결과가 흔들립니다. 아래 프롬프트는 “외주/팀 표준”을 전제로, 산출물을 더 안정적으로 뽑는 말투입니다.

프롬프트 A) 표준 산출물 강제(팀 공통)

너는 우리 팀 n8n 표준에 맞춰 워크플로우를 만드는 역할이야.

요구:
- Import 가능한 n8n 워크플로우 JSON을 반드시 첫 코드블록으로
- 그 다음: 노드별 역할 요약, Credential/환경변수 목록(값 금지), 테스트 절차(curl 포함)
- 입력 검증 실패는 Stop And Error로 처리하고, Error workflow 연결을 전제로 설계해줘

금지:
- 키/토큰/비밀번호/개인정보 원문 출력 금지
- 과도한 노드 추가 금지(최소 성공 → 확장)

프롬프트 B) 외주용(납품 패키지 형태로)

외주 납품 형태로 결과를 만들어줘.

출력 패키지:
1) workflow.json (Import 가능한 JSON)
2) README 요약:
   - 노드 역할 요약
   - 설정해야 할 Credential/환경변수 목록(값 금지)
   - 로컬 테스트 절차(Execute Workflow → Test URL → curl)
   - 에러 처리 방식(Stop And Error + Error workflow 연결 위치)

주의:
- 민감정보(키/토큰/개인정보)는 절대 포함하지 말 것.

6) “보안 사고”를 줄이는 현실 팁 5개

  1. 키/토큰은 채팅에 붙여넣지 말고, Credential/환경변수로만 처리
  2. 가능하면 _FILE 방식(별도 파일) 또는 secrets로 분리 (Configuration methods)
  3. 에러 알림에는 “입력 전체” 대신 “필요 최소 + 마스킹”만
  4. Rules에 “민감정보 출력 금지”를 강제하고, 외주 작업물 검수 시 그 항목을 1순위로 확인
  5. 큰 실험/변경 전에는 로컬 볼륨 백업(4편 루틴)으로 복구 가능 상태 유지

다음 편 예고

안티그래비티 파트는 여기까지입니다. 다음(9편)부터는 다시 “운영형 서버로 확장” 파트로 넘어가서, 왜 HTTPS/WEBHOOK_URL/N8N_HOST가 중요한지, 셀프호스팅에서 어디서 터지는지, 그리고 “도커 컴포즈 운영 템플릿”으로 어떻게 안정화하는지 본격적으로 다룹니다.

댓글 남기기