N8N과 함께하는 나만의 언어학습 도우미 "MyLango" -첫걸음-

1. 서비스 개요

1.1 배경 및 필요성
현대인들은 다양한 언어 정보와 텍스트 자료를 이미지 형태로 접하고 있습니다. 예를 들어, 해외 여행 시 메뉴판이나 표지판의 사진을 찍어두면, 이를 빠르게 번역하거나 학습에 활용하고 싶어합니다. 하지만 사진에 담긴 텍스트를 직접 타이핑하거나 별도의 OCR(문자인식) 프로그램을 사용해야 하는 번거로움이 존재합니다.
MyLango는 이러한 문제를 해결하기 위해, 이미지를 자동으로 업로드·수집하고, 필요한 텍스트를 추출·분석하여 즉시 활용할 수 있도록 돕는 서비스를 목표로 합니다.

1.2 서비스 콘셉트

  • Airtable에 이미지 또는 pdf(첨부파일) 정보가 저장되면, n8n에서 해당 이미지를 자동으로 가져와 Google Cloud Vision API로 텍스트를 인식(OCR)하는 워크플로우를 구성

  • 추출된 텍스트를 다시 Airtable에 저장하고, ChatGPT를 이용해 학습 데이터로 가공

  • 저비용·고효율의 No-Code/Low-Code 방식으로 구성하여, 개발 및 운영 인력을 최소화하고도 빠른 서비스 구축 가능

2. 서비스 목표

  1. 사용성 극대화

    • 이미지나 pdf파일 업로드만으로 바로 텍스트가 추출·분석되어, 사용자들이 번거로운 수작업(텍스트 타이핑 등) 없이 손쉽게 학습 자료를 활용하도록 함.

  2. 자동화된 워크플로우

    • n8n의 시각화된 노드 구성으로, 유지·보수가 용이하며 프로세스 확장과 수정이 간편.

  3. 유연한 확장성

    • 구글 클라우드 비전 API에서 OCR 외에도 라벨링, 얼굴 인식, 로고 인식 등 다양한 기능 활용 가능.

    • 장차 음성 인식, 번역 API와 연계해 더 고도화된 언어학습 서비스로 확장.

"여기까지 제 머리 속의 거대한 망상이었습니다 :)"

첫 번째 스터디장(박정기)님의 미니강의를 듣고 AI자동화 주제에 대해 다른 시각으로 고민을 해보게 되었습니다. 아직 정량적으로 AI 적용을 생각하기에는 너무 초보라, 지금 내가 만들어서 계속 쓸만한 것을 찾아보니 문득 떠오른 학습도구.

몇개월째 일본어 회화 학원을 다니고 있는데 바쁘단 핑계로 예습/복습 전혀 없이 그날 그날 수업만 듣고있으니 늘지도 않고, 짬 좀 내서 공부해보려니 내용도 잘 생각이 안나고 해서, 교재에 내용을 가지고 "정리노트를 만들어 보자!"가 이번 삽질의 시작입니다.

마일랑 마인드맵
<머리속 구상도>

<단계별 주요 기능>

  1. 이미지 수집

    • 사용자 혹은 외부 소스에서 이미지를 Airtable 테이블에 업로드

    • Airtable 이미지 URL(첨부파일 링크)을 자동으로 생성

  2. 텍스트 자동 추출 (OCR)

    • n8n에서 HTTP Request 노드와 Google Vision API를 활용, 이미지에서 텍스트를 식별

    • 추출된 텍스트를 JSON 형태로 수신

  3. 결과 저장

    • 텍스트 정보, OCR 정확도, 언어 감지 결과 등을 다시 Airtable에 자동 업데이트

    • 필요 시 다른 저장소(DB, 구글드라이브) 사용

  4. 학습 커리큘럼 개발

    • 추출된 내용을 ChatGPT가 분석하고 학습 커리큘럼 작성

    • 커리큘럼과 아웃풋 형식에 맞게 컨텐츠 작성 (ChatGPT)

  5. 학습 콘텐츠 연동(추가 확장)

    • 교육용 앱이나 학습 플랫폼에 추출된 텍스트·번역 결과를 연동

    • 예: 강의(음성/영상)생성, 플래시카드 자동 생성, 퀴즈 생성 등

<구현 진행 상황>

이전에 MAKE나 조금 깔짝거린 경험밖에 없고 이제 막 n8n가입을 한 상황에서

첫 단계 "이미지에서 텍스트 추출 자동화" 시도.

프로세스의 다양한 단계를 보여주는 다이어그램
<나의 첫번째 n8n!>

<구현 흐름>

  1. 이미지 업로드

    • 사용자가 Airtable의 첨부파일 필드에 이미지를 업로드하거나, 외부 연동을 통해 자동 삽입

  2. n8n 워크플로우 트리거

    • 일정 간격(Cron) 혹은 Webhook 트리거를 통해 Airtable 노드가 새 레코드를 조회 (Get All) -- 테스트에는 사용안함

  3. 이미지 다운로드

    • Airtable 레코드의 attachment.url 정보를 n8n HTTP Request 노드로 가져와 binary.data 형태로 저장

  4. Base64 변환

    • Extract from File 노드로 바이너리를 Base64 문자열로 변환(json.data)

  5. Vision API 요청

    • HTTP Request 노드(POST)에 Vision API URL + API Key 포함

    • Body는 image.content에 Base64 이미지, HeaderContent-Type:application/json

  6. 결과 처리

    • 응답 JSON 안의 textAnnotations에서 추출 텍스트, 위치 정보 등을 파싱

    • Airtable Update 노드로 해당 레코드에 인식 결과를 기입

<결과와 배운 점>

항목 목록을 보여주는 웹페이지의 스크린샷

꾸역꾸역 구현에는 성공을 했습니다.

핸드폰으로 교재사진을 찍어서 해봤는데 화질과 초점때문인지 추출된 텍스트의 품질이 그닥 좋지는 않네요.

::배운점::

  • Airtable

    • Personal Access Token 방식을 통한 API 접근(최신 권장 방식)

  • n8n

    • 처음 만져봄

    • Airtable 노드, HTTP Request 노드 등의 구성 설정

    • 인증 정보(Credentials)를 만들고 활용하기

  • Google Cloud Vision API

    • OCR(문자인식) 및 라벨링 등을 수행하는 AI 서비스

    • 프로젝트 활성화 후 결제(Billing) 연결 필수

도움 받은 글 (옵션)

박정기 님께 공유받은 n8n 기획용 ChatGPT(https://chatgpt.com/g/g-SVatmGSdQ-n8n-assistant-by-nskha)

향후계획

다음 단계 > 학습데이터 만들기

😀 머리속에서 생각한 대로 구현이 될지.. 고수님의 아이디어와 피드백 부탁드립니다!! 😅

Thank you!

2
3개의 답글

👉 이 게시글도 읽어보세요