본문 바로가기
DevOps/n8n

n8n - n8n은 무엇이고 왜 쓰는걸까?

by 민우's 코딩 2025. 4. 13.

안녕하세요! 복학으로 인한 블로그 글쓰기를 아주 미뤄버렸습니다....

 

최근에는 CloudClub이라는 클라우드 연합 동아리에 들어가게 되어서 

학교 공부와 동아리 스터디까지 동시에 진행하게 되었습니다..

 

스터디 내용은 github에 간간히 올리는 중이지만 스터디를 하던 중 n8n에 대해 관심을 갖게 되어서

따로 블로그에 정리해보려고 합니다!

 

(n8n의 자세한 설명에 대한 블로그는 아니고 진짜 왜 쓰는지? 어떻게 쓰는지?에 대한 궁금증을 정리한 포스트 입니다.)

 

요즘 클라우드, DevOps 등의 직무에서 가장 중요하게 생각하는 키워드가 바로 "자동화"라고 생각합니다. 하지만 회사를 다니지 않는 저에게 자동화가 왜 중요한지? 어떤 효율을 높히는지 잘 모르기 때문에 간단한 "예시"로 설명을 하자면

 

매일마다 해야하는 일 -> 계획 작성, 코딩테스트

이런 일을 매일 마다 해야하고 매일 직접 작성 및 풀이를 해야하는 상황에서

매일 정해진 시간마다 계획표 작성 알람 및 초안 작성, 코딩테스트 추천 문제 전달 등의 기능이 있다면

매일 쌓이면서 얼마나 많은 시간이 절약이 될까요?

 

이런 상황에서 가장 필요한 것이 바로 "자동화"입니다.

 

오늘 얘기할 n8n은 이 자동화를 쉽게 구현해주는 플랫폼입니다.

 

n8n?

오픈소스 기반의 워크플로우 자동화 도구!

 복잡한 코드를 직접 작성하는 대신, 다양한 기능을 가진 노드들을 연결해서 작업을 자동화합니다. 예를 들어, "이메일 받기", "데이터 추출", "텍스트 번역", "SNS에 게시"와 같은 노드들을 연결하면, 이메일이 오면 자동으로 내용을 추출해서 번역하고 SNS에 게시하는 워크플로우를 만들 수 있습니다.

 

좀 더 다양하게 장점을 정리하면 다음과 같습니다!

  • 코딩 몰라도 OK!: 드래그 앤 드롭 방식으로 노드를 연결하기만 하면 되니까, 코딩 지식이 없어도 쉽게 사용할 수 있어요.
  • 다양한 연동 기능: 구글 스프레드시트, 트위터, 슬랙, 깃허브 등 350개 이상의 다양한 서비스와 연동할 수 있어요.
  • 나만의 맞춤 워크플로우: 정해진 틀 없이, 내가 원하는 대로 워크플로우를 설계하고 만들 수 있어요.
  • 무료로 시작 가능: 오픈 소스 기반이라 무료로 사용할 수 있어요. (더 많은 기능을 원하면 유료 플랜도 있어요.)
  • 내 서버에서 안전하게: 내 컴퓨터나 서버에 설치해서 사용할 수 있어서, 데이터 보안 걱정 없이 안심하고 사용할 수 있어요.

제일 신기한 점은 코딩을 하지 않고 노드 연결만으로 자동화 워크플로우를 만든다는 점 입니다. 다양한 기능을 이용해서 자동화를 한다면 내가 직접 반복작업하는 상황이 없어지기 때문에 아주 편리하겠죠?

 

 

이 밖에도 이런 특징이 존재해요!

 

Best apps & software integrations | n8n

Optimize your workflows with these top software integrations. Seamlessly move and transform data between different apps with n8n.

n8n.io

 

이런 자동화 워크플로우가 가능한 다른 플랫폼과 비교를 해보았습니다!

 

 

이제 n8n이 무엇인지, 왜 쓰는지에 대해 알아보았으니 한 번 직접 실행시켜볼까요?

n8n을 쓰는 방법은 다양합니다.

  • n8n cloud - 별도의 설치 없이 바로 이용이 가능한 방법!
  • n8n Self-hosted - 자체 서버에 직접 설치하여 실시 (무료!)
  • n8n Embed - SaaS 상품에 n8n을 통합한 방법 (API 기반)

 

저는 홈서버 스터디를 하고 있어서 자체 서버에 직접 설치하는 방식인 n8n Self-hosted 방식을 이용해보았습니다!

 

Self-hosted 방식 중에도 다양한 방식으로 설치가 가능합니다.

npm, Docker, docker compose, kubernetes 등의 방식이 가능하고 또한 n8n에서 AWS EKS, Azure AKS, GCP GKE를 공식적으로 지원합니다.

 

저는 Docker Compose 방식을 이용해서 설치를 진행 해보았습니다.

docker-compose.yml 파일을 다음과 같은 내용으로 만듭니다!

 

version: "3.8"

services:
  postgres:
    image: postgres:15
    container_name: postgres
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - postgres_data:/var/lib/postgresql/data

  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: always
    ports:
      - "5678:5678"
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_USER=${POSTGRES_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
    depends_on:
      - postgres
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  postgres_data:
  n8n_data:

 

${}의 해당하는 값들을 .env 파일에 작성하는 걸 잊지말아주세요!

 

이제 docker compose up을 진행하고

localhost:5678에 접속을 하면 

n8n 웹 사이트에 접속하실 수 있습니다.

 

 

저는 아직 실제로 적용 시키진 않았지만 한번 워크 플로우를 작성해보았습니다!

 

  1. gmail oauth2로 연결해서 내 새로운 이메일을 가져온다.
  2. 만약 스팸 메일이라면? → delete (조건에 이메일 필터링 키워드 추가)
  3. 스팸 메일이 아니라면 메일 내용을 가져오고
  4. OpenAI key를 통해서 LLM에게 메일 내용 요약 전송
  5. 요약 내용 결과를 Slack 내 DM으로 전송하기

임시적으로 생성해둔 Workflow이고

안의 세부적인 조건은 추가적으로 추후에 설정 예정입니다.

 

다음 글은 실제로 적용해보고 정리하여 작성해보겠습니다!