도커와 Ollama로 API 비용 없는 n8n 자동화 환경 구축하기

읽기 예상 시간: 8분

도커(Docker)를 활용하여 외부 API 비용 없이 n8n과 Ollama 로컬 LLM을 연동하는 완벽한 자동화 환경을 구축하는 방법을 알려드려요. LLMFit을 이용해 내 PC 하드웨어 사양에 가장 적합한 최적화 모델을 찾고, Ollama를 통해 Gemma4를 아주 손쉽게 설치하는 과정을 꼼꼼히 짚어볼게요. 복잡한 환경 설정 때문에 포기하지 않도록, 미리 완벽하게 준비된 깃허브 레포지토리를 활용해 n8n 도커 컨테이너를 단 몇 분 만에 빠르게 실행하는 비법까지 모두 담았습니다.

목차

사전 준비: 도커(Docker) 개념 이해 및 설치

자동화 툴을 마음껏 쓰고 싶은데, 쓸 때마다 나가는 API 비용이 부담되셨던 분들 꽤 많으시죠? 테스트 몇 번 돌렸는데 과금 알림이 오면 정말 신경 쓰이잖아요. 이번 글에서는 n8n을 완전 무료로 세팅하고, 대규모 언어 모델(LLM) API 비용을 단 한 푼도 쓰지 않고 자동화 파이프라인을 구축하는 방법을 아주 상세하게 알려드릴게요.

가장 먼저 우리 컴퓨터에 도커를 설치해야 해요. 도커가 뭔지 아직 생소하신 분들을 위해 잠깐 짚고 넘어갈게요. 아주 쉽게 말해 내 프로그램을 상자에 담아서 어디서든 똑같이 실행하게 해주는 마법 같은 기술이에요. 우리가 이사를 할 때를 떠올려 볼까요? 짐을 그냥 맨손으로 하나씩 들고 나르면 중간에 뭘 잃어버리기도 하고, 도착해서 정리하려면 엉망이 되죠. 하지만 튼튼한 이사 박스에 차곡차곡 담아서 나르면, 새집에 가서도 똑같이 정리된 상태로 바로 꺼내 쓸 수 있잖아요. 도커가 바로 그 역할을 해요.

도커에 대한 설명 이미지
도커에 대한 설명 이미지

만약 도커 없이 n8n을 실행하려고 하면 파이썬 버전 맞추고, 복잡한 설정 파일 건드리고, 온갖 패키지들을 일일이 깔아야 해요. 이러면 내 컴퓨터에서는 잘 되는데 다른 서버로 옮기면 갑자기 안 되는 골치 아픈 상황이 시도 때도 없이 생기죠. 도커를 쓰면 이 모든 걸 하나의 이미지(Image)라는 설계도나 레시피로 만들어두고, 어디서든 컨테이너(Container)라는 실행 박스를 뚝딱 만들어낼 수 있어요.

정리하자면, 이미지는 요리 레시피이고 컨테이너는 그 레시피를 보고 만들어낸 완성된 요리라고 생각하시면 이해하기 쉬워요.

1
도커(Docker) 다운로드 및 설치

구글에 도커를 검색해서 공식 웹사이트에 들어가 보세요. 윈도우나 맥 등 지금 사용 중인 운영체제에 맞는 설치 파일을 다운로드해서 설치를 진행해 주시면 돼요.

설치 후 프로그램을 실행했을 때, 화면 오른쪽 아래 트레이 아이콘에 고래 모양이 나타나고 초록색 불이 들어오면 설치가 무사히 완료된 거예요.

⚠️ Warning

윈도우 사용자의 경우 설치 과정에서 WSL 2 관련 에러 팝업이 뜰 수 있어요. 이때는 당황하지 마시고 터미널을 열어 wsl --install 명령어를 입력하고 컴퓨터를 재부팅해 주시면 정상적으로 다음 단계로 넘어가요.

n8n Code Node v2 작동 방식 이해하기

이제 우리가 자동화에 사용할 n8n에 대해 조금 더 깊게 알아볼게요. n8n은 여러 개의 노드를 시각적으로 연결해서 복잡하고 반복적인 작업을 자동으로 처리해 주는 아주 강력한 도구예요. 그중에서도 파이썬 코드를 내 맘대로 직접 작성해서 실행할 수 있는 Code Node라는 기능이 있는데, 이 기능이 버전 2.0으로 넘어오면서 아주 혁신적으로 바뀌었어요.

예전 v1 방식에서는 파이오다이드(Pyodide)라는 기술을 썼어요. 이게 약간 어떤 느낌이냐면, 영어를 한국어로 번역했다가 그걸 다시 영어로 번역해서 대화하는 것처럼 중간 과정이 너무 많았죠. 그래서 코드가 돌아가는 속도도 답답할 정도로 느리고, 우리가 쓸 수 있는 외부 패키지도 굉장히 제한적이었어요.

하지만 지금 v2에서는 Task Runner 방식으로 완전히 탈바꿈하면서, 가상의 환경이 아니라 진짜 파이썬을 직접 실행해요. 속도도 비교할 수 없을 만큼 훨씬 빨라졌고, 데이터 분석이나 크롤링에 필요한 다양한 외부 패키지도 아무 제약 없이 자유롭게 쓸 수 있게 되었죠.

Task Runner가 도대체 뭔지 비유를 들어서 한 번 더 설명해 볼게요. 대형 식당에서 손님들이 식사하는 홀과 요리를 하는 주방을 완전히 분리하는 것과 같아요. 예전에는 n8n 메인 공간인 주방 한가운데서 직접 파이썬 코드를 펄펄 끓이며 실행하다 보니, 코드에 문제가 생겨서 불이 나면 식당 전체가 마비될 위험이 컸죠. 이제는 코드 실행을 식당 밖에 있는 별도의 격리된 실험실 같은 공간에서 안전하게 처리해요. 덕분에 코드를 돌리다가 심각한 에러가 나더라도 n8n 메인 시스템은 전혀 영향을 받지 않고 튼튼하게 유지돼요.

📌 Note

Code Node v2의 Task Runner 방식은 도커 환경에서 가장 빛을 발해요. 호스트 PC의 환경을 더럽히지 않으면서도 독립된 컨테이너 안에서 무거운 파이썬 작업을 안전하게 격리하여 실행할 수 있기 때문이에요.

Ollama와 LLMFit으로 내 하드웨어에 맞는 로컬 LLM 설치하기

이제 우리가 가장 기다렸던, LLM API를 완전 무료로 무제한 사용하는 방법을 알아볼 차례예요.

보통 챗GPT나 클로드 같은 뛰어난 AI를 쓰려면 질문을 던질 때마다 꼬박꼬박 돈을 내야 하죠. 하지만 Ollama를 사용하면 고성능 LLM 모델을 내 컴퓨터에 직접 설치해서 돌릴 수 있어요. 비유하자면, 유명 셰프한테 매번 비싼 돈을 주고 요리를 배달시키는 대신, 우리 집에 요리사를 아예 직접 모셔다 두는 거라고 생각하시면 돼요. 인터넷이 완전히 끊긴 오프라인 상태에서도 아주 잘 작동하고, 아무리 많은 질문을 던져도 비용이 단 1원도 안 들어요.

다만 주의할 점이 있어요. 내 컴퓨터의 CPU나 그래픽카드 성능에 따라 원활하게 돌릴 수 있는 AI 모델의 크기가 다 달라요. 무턱대고 너무 큰 모델을 받으면 컴퓨터가 멈춰버릴 수 있죠. 그래서 내 컴퓨터 하드웨어 사양을 정확히 분석해 가장 적합하고 쾌적한 모델을 찾아주는 LLMFit 하드웨어 최적화 도구를 사용할 거예요. 이 도구를 쓰면 복잡한 계산 없이 내 환경에 딱 맞는 모델을 자동으로 추천받을 수 있어서 정말 편리해요.

저는 개인적으로 성능이 아주 훌륭하게 나온 구글의 최신 모델인 Gemma4를 설치해 볼게요. 만약 설치 과정에서 막히는 부분이 있거나 더 자세한 정보가 궁금하시다면 Ollama Gemma4 설치 가이드를 꼭 참고해 주세요.

2
로컬 LLM 모델 다운로드 및 실행

준비가 되셨다면 아래 명령어를 터미널에 그대로 입력해서 모델을 다운로드해 주세요.

bash
# ollama를 사용해 gemma4 모델의 e4b 버전을 다운로드하고 실행합니다.
ollama pull gemma4:e4b

명령어를 치고 엔터를 누르면 다운로드가 시작돼요. 터미널 화면에 다운로드 진행률이 쭉쭉 올라가고, 최종적으로 100%가 되면서 success라는 단어가 출력되면 완벽하게 설치가 완료된 거예요.

⚠️ Warning

모델 용량이 꽤 크기 때문에 다운로드 도중 네트워크 연결이 불안정해서 끊기면 에러가 날 수 있어요. 만약 에러가 나더라도 당황하지 마시고 명령어를 다시 한 번 입력해 주시면 끊긴 부분부터 이어서 받아져요.

GitHub 레포지토리로 n8n 도커 구성 환경 준비하기

로컬 LLM 세팅을 무사히 마쳤으니 이제 본격적으로 자동화의 핵심인 n8n을 도커 위에 올려볼게요.

원래 도커로 n8n을 올리려면 docker-compose.yml 파일도 직접 작성해야 하고 볼륨 연결 설정도 꼼꼼히 해야 해서 머리가 꽤 아파요. 그래서 제가 여러분이 복잡한 설정 없이 바로 다운로드해서 쓸 수 있도록 깃허브에 필요한 파일들을 싹 다 준비해 뒀어요. n8n 도커 구성 환경 레포지토리에 들어가시면 필요한 모든 설정 파일이 가지런히 들어 있답니다.

3
n8n 세팅 파일 가져오기

컴퓨터에 깃(Git)이 이미 설치되어 있다면, 터미널을 열고 아래 명령어를 쳐서 바로 가져오시면 돼요.

bash
# git clone 명령어를 이용해 제가 준비한 레포지토리를 내 컴퓨터로 복사해옵니다.
git clone https://github.com/FLOWIT28999/n8n-python-self-hosted-kit.git

명령어 실행 후 터미널에 done.이라는 메시지가 기분 좋게 뜨고, 내 컴퓨터 폴더에 n8n-python-self-hosted-kit라는 새로운 폴더가 생겼다면 성공적으로 모든 파일을 가져온 거예요.

💡 Tip

만약 터미널에서 git: command not found라는 에러가 뜬다면 현재 컴퓨터에 깃이 설치되어 있지 않은 거예요. 이럴 때는 당황하지 마시고, 제가 알려드린 깃허브 페이지에 접속해서 우측 상단의 초록색 ‘Code’ 버튼을 누른 뒤 ‘Download ZIP’을 클릭하세요. 다운로드된 압축 파일을 직접 풀어주시면 똑같이 진행할 수 있어요.

환경 변수(.env) 설정 및 n8n 도커 실행

이제 가져온 폴더에서 아주 간단한 설정만 살짝 만져주면 모든 준비가 끝나요. 조금만 더 힘내세요.

4
환경 변수 설정 및 실행

비밀번호, 포트, 타임존 등 필수 환경 변수를 설정하고 도커 컴포즈를 이용해 컨테이너를 본격적으로 실행합니다.

방금 다운로드하거나 압축을 푼 폴더 안에 들어가 보세요. 파일 목록을 쭉 보면 .env.example이라는 파일이 하나 보일 거예요. 이 파일의 이름을 .env로 깔끔하게 바꿔주세요. 윈도우나 맥의 기본 파일 탐색기에서 우클릭 후 파일 이름 바꾸기를 하시면 쉽게 변경할 수 있어요.

이름을 바꾼 .env 파일을 메모장이나 VS Code 같은 코드 편집기로 열어보세요. 안에 몇 가지 빈칸들이 준비되어 있어요. 여기에 내가 n8n 데이터베이스에서 사용할 비밀번호나 포트 번호 등을 내 입맛에 맞게 적어주시면 돼요. 만약 어떤 값을 넣어야 할지 헷갈리신다면 n8n 공식 환경 변수 설정 문서를 참고하시면 아주 큰 도움을 받을 수 있어요.

파일을 꼼꼼하게 채우고 저장을 완료했다면, 터미널에서 해당 폴더 경로로 이동해 주세요. 그런 다음 도커 컴포즈 명령어를 통해 컨테이너를 한 번에 쫙 실행해 주시면 돼요. 명령어를 치고 나면 브라우저를 열고 http://localhost:5678에 접속해 보세요. n8n 초기 회원가입 화면이나 로그인 화면이 짠 하고 뜬다면, 모든 설치가 정말 완벽하게 끝난 거예요. 이제 여러분만의 무료 자동화 환경이 탄생했습니다.

❗ 중요

.env 파일에 값을 입력할 때 띄어쓰기나 오타가 들어가면 도커가 실행되다가 중간에 원인 모를 에러를 뿜으며 멈출 수 있어요. 특히 등호(=) 양옆에 절대 공백이 들어가지 않도록 딱 붙여서 작성해 주셔야 안전하게 실행돼요.

자주 묻는 질문

Q. n8n 설치 시 .env 파일에는 구체적으로 어떤 값을 넣어야 하나요?

처음 보시는 분들은 까만 화면에 영어만 잔뜩 있어서 당황하실 수 있는데, 아주 기초적인 것만 채워주시면 돼요. 예를 들어 POSTGRES_PASSWORD 항목에는 데이터베이스에서 사용할 비밀번호를 남들이 모르게 마음대로 적어주시고, N8N_PORT 항목은 기본값인 5678을 웬만하면 그대로 쓰시면 돼요. 타임존은 한국 시간에 맞게 GENERIC_TIMEZONE=Asia/Seoul로 딱 맞춰주세요. 더 자세한 옵션은 본문에서 안내해 드린 n8n 공식 환경 변수 설정 문서를 참고하시면 좋아요.

Q. 설치를 마쳤는데, n8n과 Ollama가 연동이 잘 되었는지 어떻게 테스트하나요?

n8n 화면에서 직접 간단한 워크플로우를 하나 만들어서 바로 확인해 볼 수 있어요. 가장 쉬운 방법은 n8n 공식 Ollama 채팅 워크플로우 템플릿을 복사해서 내 n8n 화면에 그대로 붙여넣는 거예요. 그런 다음 워크플로우 안에 있는 Ollama 노드를 클릭해서 설정 창을 열고, 모델 이름을 우리가 아까 다운로드한 gemma4:e4b로 맞춰주세요. 그리고 노드를 실행해서 AI가 똑똑하게 답장을 잘 보내는지 확인해 보세요. 그럴싸한 답장이 오면 연동이 완벽하게 된 거예요.

Q. 도커 환경에서 Ollama를 연결할 때 포트 충돌이나 연결 오류가 발생하면 어떻게 하나요?

도커 컨테이너 안에 갇혀 있는 n8n이 내 컴퓨터(호스트)에 깔린 Ollama에 접근하려고 하다 보니, 네트워크가 막혀서 연결 문제가 꽤 자주 생겨요. 이럴 때는 당황하지 마시고 n8n의 Ollama 노드 설정에서 Base URL을 http://localhost:11434 대신 http://host.docker.internal:11434로 싹 바꿔서 입력해 보세요. 도커가 호스트 PC를 인식하는 전용 주소랍니다. 그래도 혹시 해결이 안 된다면 n8n Ollama 노드 공통 문제 해결 가이드를 차분하게 읽어보시면 원인을 금방 찾으실 수 있을 거예요.

이 글이 마음에 드세요?

RSS 피드를 구독하세요!

댓글 남기기