이 글은 Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle 제출물입니다.
제가 만든 것 (What I Built)
그래서 저는 아티스트, 독립 크리에이터 및 소규모 창작 비즈니스를 위해 설계된 오픈소스 AI 기반 홍보 도우미인 AdMuse를 만들었습니다.
AdMuse는 제품 또는 서비스에 대한 정보, 타겟 오디언스, 홍보 채널, 작성 스타일, 언어, 마케팅 목표 등의 정보를 제공하여 사용자가 홍보 콘텐츠를 생성하도록 돕습니다. 이 애플리케이션은 제목, 홍보 문구, 행동 유도(call to action), 그리고 선택적 해시태그를 생성합니다.
또한 프로모션 기록과 워터마킹 기능을 포함하고 있어, 사용자들은 예술 작품 이미지에 연락처 정보나 로고를 추가할 수 있습니다.
이 아이디어는 저와 가까운 사람에게서 나왔습니다. 제 여동생은 작은 그래픽 및 인쇄 사업을 운영합니다. 저는 그녀가 자신의 작업을 더 쉽게 홍보하고 자신의 예술 작품에 보호 계층을 추가하는 데 도움이 될 실용적인 무언가를 만들고 싶었습니다.
추상적인 사용 사례를 중심으로 구축하기보다는, 처음부터 실제 사람과 실제 필요를 염두에 두었습니다.
시연 (Demo)
AdMuse가 실제로 작동하는 모습을 보여주며, 홍보 콘텐츠 생성 및 워터마킹 기능을 선보입니다.
코드 (Code)
GitHub 저장소: ArthurHebertt/AdMuse
AdMuse는 Java와 Spring Boot로 구축되었으며, 영속성(persistence)을 위해 PostgreSQL을 사용하고, Ollama를 통해 로컬 AI 추론(local AI inference) 기능을 통합합니다.
제작 과정 (How I Built It)
저는 Java와 Spring Boot를 사용하여 AdMuse를 만들었으며, Ollama를 통해 오픈 가중치 모델인 qwen3:4b-q4_K_M을 통합했습니다.
콘텐츠 생성을 위해 호스팅되는 AI API에 의존하는 대신, 이 애플리케이션은 Ollama를 통해 로컬에서 실행되는 모델로 요청을 보냅니다. 생성된 결과는 애플리케이션이 사용자에게 제시할 수 있도록 필드별로 구조화됩니다.
주요 기능에는 다음이 포함됩니다:
- 홍보 콘텐츠 생성: 제목, 홍보 문구, 행동 유도 문구(CTA), 선택적 해시태그를 생성합니다.
- 다양한 작성 스타일: 전문적인(professional), 캐주얼한(casual), 창의적인(creative), 우아한(elegant), 재미있는(fun) 스타일 중 하나를 선택할 수 있습니다.
- 다국어 생성: 브라질 포르투갈어, 영어, 스페인어로 콘텐츠를 제작합니다.
- 홍보 기록: 이전에 생성된 홍보물을 저장하고 검색할 수 있습니다.
- 작품 워터마킹: 작품 이미지에 연락처 정보나 로고를 추가할 수 있습니다.
또한 콘텐츠 생성과 저장 기능을 분리했습니다. 사용자는 저장 여부를 결정하기 전에 생성된 콘텐츠를 검토할 수 있습니다.
AdMuse는 백엔드 개발, 데이터베이스 영속성(database persistence), AI 통합, 그리고 실용적인 사용자 인터페이스(UI)를 하나의 프로젝트로 결합한 것입니다.
왜 오픈 이노베이션이 중요한가?
저는 오픈 AI가 소규모 비즈니스와 독립 창작자에게 보다 실질적인 도구를 어떻게 접근 가능하게 만들 수 있는지 탐구하고 싶었습니다.
AdMuse는 로컬 추론(local inference)을 통해 오픈 가중치 모델(open-weight model)을 사용함으로써, 해당 작업을 위해 유료로 호스팅되는 AI API를 요구하지 않고도 홍보 콘텐츠를 생성할 수 있습니다. 또한 개발자에게 독점적인 AI 제공업체에 전적으로 의존하지 않고 모델을 실험하고 애플리케이션을 조정할 자유를 줍니다.
적절하게 구성된 경우, 로컬 추론은 비즈니스 정보를 외부 AI 제공업체로 보내는 대신 사용자 기기에 보관하는 데 도움이 될 수 있습니다.
저에게 오픈 이노베이션이란 단순히 모델에 대한 접근성을 넘어섭니다. 그것은 개발자들에게 유용한 도구를 구축하고, 실제 사용자로부터 배우며, 그렇지 않으면 너무 비싸거나 실험하기 어려울 수 있는 해결책을 탐구할 기회를 제공하는 것입니다.
저의 첫 사용자
저의 첫 사용자는 AdMuse에 영감을 준 사람과도 같습니다. 바로 작고 그래픽 및 인쇄 사업을 운영하는 제 여동생입니다.
그녀는 애플리케이션을 테스트한 후 다음과 같은 피드백을 공유했습니다:
워터마킹 기능은 그녀에게 중요했습니다. 왜냐하면 자신의 예술 작품이 무단으로 재사용되는 것에 덜 취약하게 만들 실용적인 방법을 원했기 때문입니다. 워터마크가 도난을 막아줄 수는 없지만, 창작자를 식별하는 데 도움을 주고 일부 무단 사용을 단념시키는 역할을 할 수 있습니다.
그녀의 피드백은 저에게 중요한 이정표였습니다. 제가 우선순위를 두었던 기능들이 제가 원래 돕고 싶었던 사람과 관련성이 있다는 것을 보여주었습니다.
AdMuse는 여전히 초기 단계 프로젝트이지만, 첫 의도 사용자(intended user)가 이를 테스트하고 주요 기능들이 그녀의 필요를 충족한다는 것을 확인해 준 덕분에 프로젝트가 훨씬 더 실질적으로 느껴졌습니다.
최종 생각
AdMuse는 간단한 질문에서 시작했습니다. 오픈 소스 AI를 사용하여 작은 창작 비즈니스에 진정으로 유용한 무언가를 만들 수 있을까?
이 프로젝트를 진행하면서 저는 순전히 이론적인 데모를 만드는 것보다는 실제 문제에 초점을 맞추면서 Java, Spring Boot, PostgreSQL 및 로컬 AI 추론(local AI inference)을 결합할 수 있었습니다.
또한 이 경험은 초기 단계에서 피드백을 받는 것이 얼마나 중요한지 상기시켜 주었습니다. 어떤 기능은 개발자의 관점에서는 좋아 보일 수 있지만, 실제로 그것을 사용할 사람의 말을 듣는 것은 그것이 올바른 문제를 해결하는지 판단하는 데 도움이 됩니다.
AdMuse를 개선할 여지는 여전히 남아있지만, 이제 저는 작동하는 프로젝트, 시연(demonstration), 그리고 첫 사용자로부터 받은 피드백을 가지고 있습니다.
읽어주셔서 감사합니다! 다른 개발자들이 독립 창작자와 소규모 비즈니스를 위해 오픈 AI 모델을 사용하여 실용적인 도구를 만드는 방법을 듣고 싶습니다.