N8N으로 부동산 중개 매물 소개 블로그 자동화 하기!

소개

본인의 업무를 자동화하다보니 더 자동화할 것등을 찾는 과정에서 지인이 일손이 부족하여서 부동산, 인스타그램, 유튜브를 꾸준히 올릴 여력이 부족하다고 하여 N8N으로 자동화를 도전하기로 하였습니다.

기존의 제 업무는 Make 프로그램으로 자동화를 하였기에 별도의 스터디 없이 바로 N8N으로 작업에 착수하여서 온갖 삽질을 시작하였습니다.

<사용도구>

  1. N8N(N8N 제공 무료 14일 이용) : 자동화 구현 프로그램

  2. 네이버지도 API : 매물 위치의 네이버지도를 캡처한 이미지 생성

  3. Openweathermap(날씨) API : 블로그 서론(인사말)에 날씨 이야기를 위해 사용

  4. GCP(구글 콘솔) 프로젝트 및 API : 구글 문서 생성 및 등록을 위해 이용

  5. 구글 스프레드시트 & 구글 드라이브 : 사진 및 매물정보 기입 및 자동화 결과물 등록

  6. Azure API : 사진 속 객체를 특정하여서 분석하는 API로 매물의 사진 정보를 분석하는데 사용

<프로그램 흐름 개요>

  1. 매일 아침 6시에 구글 스프레드시트에서 새로운 매물 정보 확인

  2. 날씨 정보 확인

  3. 하나의 매물씩 자동화 프로그램 작동

  4. 작업시간 입력

  5. 건물의 층 정보를 분리하기

  6. 매물의 주소 분석하여서 지도 생성하기

  7. 매물의 사진을 분석하기

  8. 사진 분석정보로 사진 설명 작성

  9. 인사말, 마무리인사, 임대정보, 해시태그, 제목 등을 생성

  10. 구글 문서에 하나의 글로 생성

  11. 작업완료 입력

<들여다보기>

한국어로 된 게임 스크린샷
  1. 매일 6시마다 새로운 매물 정보(작업상태 열의 정보가 '대기'인 것을 감지하여 작동하도록 만들었습니다.

  2. 또한 인사말에 사용할 날시 정보를 Openweathermap API를 상뇽해서 불러왔습니다.

  3. N8N의 문제인지 제 문제인지 모르겠는데, 특정 노드의 정보가 일정 구역을 넘어가면 자료가 전달이 되지 않아서 edit 노드(날시 정보 흘러가기)로 똑같은 정보를 받은 다음에 처리하였습니다.

  1. 사용자가 자동화 또는 AI툴 등에 익숙하지 않은 사람이어서 그나마 엑셀과 비슷한 구글 스프레드시트를 트리거로 이용하였습니다. 매물의 기준은 매물번호로 하고, 트리거 기능은 '대기' 작업상태를 적용하였습니다.5.

    한국어로 문서를 작성하는 과정을 보여주는 다이어그램
  2. 작업은 무조건 하나씩 처리하기 위해 필터링을 하고, 아까 날씨정보와 마찬가지로 제일 핵심이되는 '매물 정보 확인(구글 시트에 저장된 매물 정보들)'가 전달이 되었다가 안되었다 하는 상황이 생겨서 정보를 한 번 복제하는 노드를 하나 만들어서 적용하였습니다. 아직도 원인이 무엇인지는 모릅니다.

  3. 작업시간을 입력하여서 현재 프로그램이 작동중인 것을 가시적으로 사용자가 알 수 있도록 하였습니다.

  4. 대부분의 정보는 열 하나에 정보 하나를 기입하여서 자동화 또는 챗GPT가 이용하기 좋게 하였는데, 건물마다 층수와 지하층의 정보등이 각기 다르기 때문에 이 정보를 하나의 셀에 입력하게 하고, 자동화 과정에서 쉼표(,)를 기준으로 층(1층,2층,3층 ---)과 평(100평, 200평 ---)을 묶어서 정리하게 했습니다.

    게임을 만드는 과정을 보여주는 다이어그램
  5. 주소를 적으면 위도로 변환시켜서 네이버지도 API를 호출하고, 매물의 정확한 위치를 노출하면 안되기 때문에 난수를 적용하여서 네이버지도의 중심 위치를 매물의 위치와 다르게 설정하였습니다.

  6. 매물 입지 기반 키워드와 매물위치 픽셀변환은 최종적으로 사용하지 않는데, 픽셀 변환은 위도/경도를 픽셀값으로 변환해서 적용하는 것인데, 실제 지도와 오차가 계속 발생해서 폐기하였습니다. 또한 입지 기반 키워드도 특정 음식점, 건물 등을 나타낼 수 는 있으나 부동산 관점에서의 입지 분석과는 거리가 있는 것으로 보여서 최종적으로 사용하지 않았습니다.

  7. 네이버지도를 생성한 뒤 구글 드라이브에 올리는 과정과 이어서 바로 사진을 찾아서 분석하는 구조여서 이 과정을 '사진 폴더'를 찾은 뒤에 병렬적으로 처리하도록 하여 자동화 시간을 매우적은 시간 줄이는데 이용하고, 노드의 연결성을 강화했습니다.

  8. 대량의 사진을 구글 드라이브에 올려놓으면, 사진 이름(사진 파일 이름을 미리 지정된 이름들을 사용)에 따라서 건물소개, 내부사진, 외부사진, 부대시설 4가지 타입으로 나누어주고, 각 층, 호실, 공간마다 묶어서 중복되는 사진은 제외하고 대표사진을 가지고 사진을 분석하여서 분석 비용과 시간을 절약했습니다.

  9. 사진 분석은 Azure API(사진 속 객체를 태그로 지정하여 분석)를 사용하여서 분석 결과를 태그값으로 받은 뒤에 간략한 한 줄 영어 설명을 만들고, 이를 챗GPT가 부동산 중개 사무소의 직원에 빙의하여서 분석글을 생성하였습니다.

  10. 사진이름과 설명을 간략하게 정리하여서 블로그 글 생성시 해당 위치에 배열하였습니다.ㅇ

    한국어 애플리케이션 스크린샷
  11. 인사말, 마무리인사, 임대정보, 제목, 해시태그 등을 위와같이 정보제공하는 것을 마크다운 정보로 가공해서 챗 GPT에게 넘기는 방법을 사용했습니다. json 파일에서 직접 챗 GPT에 넘기는 것을 잘 반영하지 못하는 것으로 체크되어서 중간 과정을 여러번 넣는 형태로 진행하게 되었습니다. 이 점은 Make와 다른 점으로 인지가 됩니다.

    한국 게임 스크린샷
  12. 앞서 작성한 모든 글을 합쳐서 하나의 노드에 취합하고, 이를 마크다운으로 변형해서 구글 문서에 업로드하였습니다. Make에서는 html 모드를 통해서 글의 스타일까지 지정하였는데 반해 Make에서 Html 형태로 올리는 것에 실패하여서 텍스트 상태로 올리게 되고 이는 스타일은 지정되지 않은 형태의 글 등록으로 되었습니다.

  13. 프로그램의 작동이 끝나면 '작업완료'로 상태를 변경하여서 가시적으로 사용자가 결과물이 나온 것을 확인하도록 하였습니다.

결과와 배운 점

한국에서 한국으로 보낸 편지 스크린샷

글 서식을 지정하지 못하고 올리기 때문에 이 부분은 조금 아쉽지만, 네이버 블로그에 올릴 글이기 때문에 아쉬움은 뒤로하여야 할 것 같습니다. 그리고 이상하게 N8N이 불안정한건지 제가 노드를 잘못만들어서인지 프로그램이 작동하였다가 중간에 오류가 나는 것을 반복해서 이 부분을 해결해야지 상용적으로 사용할 수 있을거 같습니다.

빠른 시일내에 지금 겪고 있는 이 문제를 해결해서 안정적으로 사용하는 것과 이에대한 후기를 남겨보겠습니다. 그리고 완성 후 다음으로는 이어서 인스타그램 릴스와 유튜브 영상을 자동화하는 것을 만들어서 블로그-인스타그램릴스-유튜브 영상 업로드까지 3개를 한방에 또는 2개로 이원화해서 부동산 중개 사무소의 콘텐츠 자동화를 완성해보겠습니다.

N8N VS Make 개인적인 차이점을 느낀 것

  1. N8N은 노드가 비교적 단순하게 생겨서 이용이 편리해보인다. 다만 편리하게 생긴만큼 편의성을 위한 세팅은 비교적 없는 것 같습니다. 반면에 Make는 다소 복잡해 보이지만 그만큼 사용 편의성이 좋아서 모듈의 기능을 정확히 알고, 필요한 것이 다 갖추어져 있을경우에 빠르게 작업할 수 있었던 거 같습니다.

  2. N8N은 노드의 정보를 참조할 때 앞선 노드를 찾는 것이 Make보다는 디자인적으로 조금 밋밋하여서 시각적으로 조금 아쉬움이 있었습니다.

  3. N8N에서 가장 좋았던 것은 안되는 것은 일단 자바스크립트 코드를 작성해서 어떻게든 되게 만든다는 것이고, 반대로 코드를 사용하지 않으면 뭐 하나 만들기 어려울 정도로 노드가 부족하다는 것이었습니다.

도움 받은 글 (옵션)

참고한 지피터스 글이나 외부 사례를 알려주세요.

(내용 입력)

15
16개의 답글

👉 이 게시글도 읽어보세요