n8n 활용 데이터 크롤링 정보를 자동으로 이미지로 제작하는 봇 제작(나의히어로아카데미아 캐릭터 정보를 토대로 포켓몬 카드 형식의 이미지 제작)

소개

중학교 1학년 아들과 함께 해커톤에 참여했습니다. 저나 아들이나 둘 다 실력은 엇비슷해서 아들이 흥미를 갖는 프로젝트를 정하고 무조건 결과를 만들어보기로 했습니다.

그래서

  1. 나의 히어로 아카데미아 캐릭터 정보를 검색

  2. 검색한 정보를 토대로 카드게임 형식의 이미지 제작

  3. 이후 캐릭터 정보에 포함되는 스탯 기반 전투 알고리즘 구성

  4. 3의 과정에서 승리하면 2의 결과물을 토대로 캐릭터 간 승패 이미지가 담긴 카드 이미지 제작

이었습니다. 하지만 누구나 맞기 전까지는 그럴싸한 계획을 가지고 있는 것처럼, 그냥 계획으로 남았고, 1과 2의 과정은 자동화 봇 제작에 성공했습니다.

4인 1조로 같은 주제의 프로젝트를 돌리다 보니 api소진률이 너무 빨라서 계정을 리셋하거나 결제하는데 너무 많은 시간이 걸렸습니다. 그래서 3, 4는 포기!

진행 방법

머신 러닝 알고리즘의 프로세스를 보여주는 다이어그램

1과정은 퍼플렉시티를 활용해 데이터를 수집했습니다. 노드에 퍼플렉시티를 넣고, 프롬프트를 넣어 구동시켰습니다.

=====================

<프롬프트>

나의 히어로 아카데미아 캐릭터 20명을 리스트로 보여줘. 각 캐릭터는 다음 정보를 포함해줘:

- name (영어)

- quirk (개성 이름)

- power (1~10)

- intelligence (1~10)

- speed (1~10)

JSON 형식으로 characters 배열 안에 객체로 정리해줘. 각 객체는 다음 키를 포함해야 해: name, quirk, power, intelligence, speed.

=========================

해당 프롬프트는 처음부터 설정한 것이 아니라, 전체 프로세스를 설정하고 오류를 잡아가는 과정에서 챗GPT가 추천한 프롬프트 입니다.

데이터 추출 결과가 Characters 아래 [이름],[개성],[파워],[지능],[스피드] 속성이 배치되어야 해당 데이터를 처리하는 과정을 쉽고 간결하게 처리할 수 있는데, 이 데이터 구조를 만들어 가는데 많은 시간을 소비했습니다.

2과정은 코드 노드를 배치했는데, 코드 노드에서 이미지 생성 AI에 데이터를 연계해주는 역할을 수행합니다. 이 부분은 GPT가 알려주는 대로 코딩을 작성해서 넣었습니다.

코드 편집기의 스크린 샷

==================

<코딩>

const response = $json.message?.content;

let characters = [];

try {

const parsed = typeof response === 'string' ? JSON.parse(response) : response;

characters = parsed.characters || [];

} catch (e) {

throw new Error('JSON 파싱 실패');

}

// characters 배열을 그대로 반환

return characters.map(c => ({

json: {

name: c.name?.trim(),

quirk: c.quirk?.trim(),

power: c.power,

intelligence: c.intelligence,

speed: c.speed

}

}));

======================================

3과정은 이미지 생성 과정으로 제미나이 이미지 생성을 가져와서 노드를 구성했습니다.

실행 결과를 보게 되면, 오른쪽에 숫자가 있는데, 캐릭터 이미지가 총 20개가 생성이 되었습니다.

1번 이미지 결과

캐릭터가있는 카드 이미지
My Hero Academia 카드 제작자의 스크린 샷

3번 이미지 결과

새벽 4시 20분 이미지를 보는 순간! 모두 함성을 지르고 좋아했습니다.

그런데, 이미지를 자세히 살펴 보면, 글자에 오타가 있고, 글씨가 많이 뭉그러진 것을 확인할 수 있습니다. 이 글자를 제대로 잡기에는 시간이 부족했습니다.

결과와 배운 점

배운 점

  • n8n 프로세스를 구성하는 기본적인 방법을 알게 됨

  • 오류가 발생할 경우 오류를 해결할 수 있는 방법을 알게 됨

  • 일단 프로세스를 구성해 두고, GPT에게 원하는 목적을 정확하게 이야기 하면서 오류를 보정하는 방식으로 진행하는게 효과적인 것 같음

  • 내가 원하는 프로세스의 예제를 검색해서 최대한 프로세스를 먼저 완성하는 것이 효과적인 것 같음

과정 중에 어떤 시행착오를 겪었나요?

  • 네 명이 팀을 이뤄 같은 프로젝트를 수행하면서 api를 공유하다 보니 api 사용 횟수가 너무 빨리 소진되어 시간이 오래 걸림

  • api 관리만 잘 했더라도 게임 제작까지 가능했을 것으로 에상

앞으로의 계획이 있다면 들려주세요.

  • 이제는 원래 하려 했던 업무 자동화 봇을 만들어 보겠습니다. ㅍ피

4시 22분 성공 후 인증샷!!!!

2
3개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요