해커톤에서 시작된 생성형AI 서비스 그 후 1년의 기록

2024-08-10 18:06:00


안녕하세요, 소플입니다.

작년 이맘때쯤 OpenAI와 SK텔레콤이 주최한 해커톤에 참여하면서 MarkSlides라는 서비스를 개발했었는데,

벌써 1년이라는 시간이 지났네요.
(이전 글: 2023년을 돌아보며)

처음에는 해커톤에 참여하기 위해서 서비스를 기획하고 개발하기 시작했지만,

당시 개발을 하다보니 저에게 너무 필요한 서비스라는 생각에 해커톤 이후에도 개발을 계속 이어나가게 되었습니다.

그렇게 지난 1년 동안의 기록을 이 글에 한 번 정리해보았습니다.

해커톤과 MarkSlides의 탄생 ✨

저는 작년에 OpenAI와 SK텔레콤이 주최한 해커톤(Prompt-er Day Seoul 2023) 에 참여했습니다.

해커톤의 주제는 ChatGPT API를 활용해서 서비스를 개발하는 것이었습니다.

지금은 생성형AI가 너무도 당연하게 많은 곳에서 사용되고 있지만,

당시에는 생성형AI를 기반으로 한 서비스가 이제 막 쏟아져나오고 있던 시기였습니다.

해커톤에 어떤 서비스를 개발해서 참여할지 고민을 많이 하다가,

평소에 제가 불편을 겪고 있던 슬라이드 작성 도구를 만들어 보기로 결심했습니다.

저는 그동안 Mac의 Keynote를 사용해서 강의 자료를 만들어 왔는데,

가장 불편한 부분은 소스 코드를 삽입하는 과정이었습니다.

Keynote에 소스 코드를 삽입하기 위해서는 아래와 같은 과정을 매번 거쳐야만 했습니다.

  1. VS Code에서 소스 코드를 복사한다.
  2. 소스 코드를 이쁘게 이미지로 만들어주는 서비스에 붙여넣는다.
  3. 이미지를 다운 받는다.
  4. Keynote에 다운 받은 이미지를 삽입한다.

소스 코드가 많지 않을 때는 이러한 과정이 크게 불편하지 않았지만,

강의 자료에 소스 코드를 넣을 일이 많아지거나 소스 코드에 오타가 발견되면 위 과정을 계속 반복해야 했습니다 😂

그래서 마우스나 트랙패드 보다는 키보드가 편한 개발자들을 위해서,

텍스트 기반의 슬라이드 작성 도구가 있으면 좋겠다는 생각을 하게 되었습니다.

이후 관련 기술들을 찾아보다가 전에 잠깐 보고 지나쳤던 Marp라는 오픈소스 프로젝트를 떠올리게 되었습니다.

Marp

MarpMarkdown을 기반으로 프레젠테이션을 생성할 수 있게 해주는 프로젝트입니다.

평소 개발자들이 많이 사용하는 Markdown을 기반으로 하기 때문에 진입장벽도 거의 없고,

소스 코드 Syntax Highlighting, Mermaid를 활용한 차트 렌더링 등이 기본으로 지원되기 때문에 저에게 정말 딱이라는 생각이 들었습니다.

그리고 추가로 ChatGPT는 Markdown과 Marp의 추가적인 문법을 이해하고 생성할 수 있기 때문에,

이걸로 생성형AI 기반의 서비스를 만들 수 있겠다고 생각했습니다.

그렇게 저는 한 달 동안 모든 일을 제쳐놓고 열심히 서비스 개발에 매진했습니다.

그 과정에서 해커톤 예선 1차, 2차를 모두 통과하고 본선까지 갔지만 아쉽게도 수상을 하진 못했습니다 😂

아래는 당시 해커톤에서 만들었던 서비스 화면입니다.

MarkSlides

해커톤에 너무 많은 에너지를 쏟아부은 나머지 탈락 이후 후유증으로 한동안 번아웃 증상을 겪었습니다 😢

힘들었지만 시간이 지나면서 자연스럽게 회복되었고, 다시 열심히 제품을 개발해 나가기로 마음을 먹었습니다.

클라우드 연동 ☁️

가장 먼저 필요했던 기능은 바로 클라우드와 연동해서 사용자가 만든 모든 슬라이드를 원격으로 관리할 수 있는 기능이었습니다.

해커톤에서 개발한 버전에서는 애초에 로그인 기능 없이 Local-first로 사용할 수 있는 형태로 개발했었습니다.

아직 잘 알지도 못하는 서비스에 가입하는 것 자체가 하나의 장벽이라고 생각했기 때문입니다.

먼저 가입하지 않고 로컬에 파일을 저장하는 형태로 서비스를 사용해 볼 수 있게 하고,

이후 필요하다면 가입해서 원격 저장소에서 슬라이드들을 관리할 수 있도록 한 것이죠.

저는 초기 몇 달 동안 클라우드 연동 기능을 구현하는데 시간을 많이 쏟았습니다.

그렇게 2023년 끝무렵에 클라우드에 슬라이드를 저장하고 언제든지 열어서 편집할 수 있는 기능이 완성되었습니다.

Cloud integration

그리고 인터넷이 되는 곳 어디서든지 슬라이드를 열어볼 수 있게 되었기 때문에,

슬라이드를 공개하고 링크를 통해 공유할 수 있는 기능도 함께 추가했습니다.

그리고 이 기능을 사용해서 올해 2024년 1월에 있었던 프론트엔드 학습 로드맵 모임에서 MarkSlides를 이용해서 발표를 진행했습니다.

Meetup
(이전 글: 한빛N과 소플이 함께하는 프론트엔드 학습 로드맵 모임 후기)

초기 사용자 모으기 🎢

기본적으로 필요한 기능들을 모두 구현하고 난 이후에 초기 사용자를 모아보기로 했습니다.

이 서비스가 실제로 다른 사람들도 필요로 하는 것인지 궁금하기도 했고,

그리고 지금까지 개발한 서비스에 대해 실제 사용자들의 피드백을 받으면서 발전시켜 나가고 싶었기 때문입니다.

그래서 우선 주요 타겟인 개발자들이 많이 있는 커뮤니티를 위주로 홍보를 진행했습니다.

아래와 같이 GeekNews에도 홍보를 했고,

GeekNews promotion

GitHub에 Markdown으로 발표자료를 만드는 기술이나 서비스를 정리한 글에 포스팅을 하기도 했습니다.

GitHub promotion

또한 기존에 Marp를 사용하던 사용자 층이 이미 형성되어 있었기 때문에,

Marp 사용자와 Marp와 관련된 컨텐츠 등에 댓글을 달아서 서비스를 직접 알렸습니다.

그렇게 열심히 홍보를 한 결과 아래와 같이 초기에 약간의 J커브(?)를 만들 수 있었습니다 😆

Initial promotion result

하지만 홍보를 통해 일시적으로 모은 사용자들이기 때문에 유의미한 수치라고는 생각하지 않았습니다.

진짜 중요한 것은 '사용자들이 실제로 꾸준히 서비스를 사용하는가?' 였기 때문에,

일정 기간이 지난 이후의 리텐션이 더 중요하다고 생각했죠.

당시 서비스 방문자들 중에 대부분은 서비스를 잠깐 둘러보고 나갔고, 극히 일부만이 회원가입까지 진행했습니다.

그렇게 초기 홍보를 통해 사용자 약 100여명을 모을 수 있었습니다.

그 중에는 캐나다의 공과 대학에서 강의를 하는 강사 분도 계셨는데,

강의 자료를 모두 MarkSlides로 만들어서 실제로 강의를 진행하기도 했습니다.

또 어떤 회원 분은 MarkSlides로 만든 슬라이드를 동영상으로 제작해서 유튜브에 올리기도 했죠.

그렇게 유의미한 실제 사용자들을 획득하면서 서비스를 점차 발전시켜 나갔습니다.

오픈소스와 스폰서 ❤️

서비스를 개발하면서 '어떻게 하면 더 많은 개발자들에게 알릴 수 있을까?' 라는 고민을 계속 하게 되었습니다.

어찌됐든 이 서비스의 주요 타겟은 Markdown에 익숙한 개발자였기 때문이죠.

그리고 그렇게 하기 위해서는 이 프로젝트를 오픈소스화 시키는 것이 좋겠다고 판단했습니다.

MarkSlides는 태생부터 오픈소스인 Marp를 기반으로 탄생한 것이기 때문에,

이 프로젝트 또한 오픈소스화 시킨다면 자연스럽게 개발자들에게 스며들 수 있을거라 생각했습니다.

그렇게 한 동안 기존 프로젝트의 코어 부분을 별도의 오픈소스 패키지로 분리하는 작업을 진행했습니다.

그리고 아래와 같이 GitHub에 오픈소스로 공개하게 되었습니다.

OpenSource
https://github.com/markslides/markslides

생성형AI 연동이나 클라우드 연동 등의 부가적인 기능들을 제외한 모든 부분을 공개했고,

지금도 꾸준히 유지보수를 하면서 발전시켜나가고 있습니다.

그리고 MarkSlides의 기반인 Marp에 조금이나마 감사의 마음을 전하고자,

Marp의 개발자인 Yuki Hattori의 Organization 스폰서로 참여하기 시작했습니다 🥳

GitHub sponsor

큰 금액은 아니지만 이러한 스폰서 문화가 확산되어야 오픈소스 생태계가 꾸준히 발전할 수 있다고 생각합니다.
(원래 Organization 스폰서가 하나 더 있었는데 지금은 MarkSlides가 유일하네요ㅎㅎ)

서비스 성장기 📈

서비스가 어느정도 알려지고나니 별도의 홍보 없이도 하루에 1~2명씩은 꾸준히 가입하는 상태가 되었습니다.

그리고 많지는 않지만 지속적으로 서비스를 사용하는 사용자들도 생겨나기 시작했습니다.

여기서 서비스를 더 알리기 위해서는 MarkSlides로 만든 슬라이드가 여기저기 자연스럽게 퍼질 수 있어야 한다고 생각했습니다.

그래서 슬라이드를 Publish해서 검색 엔진 등에서 검색이 되도록 만들 수 있는 기능을 추가했고,

이렇게 Publish된 슬라이드들을 개인 페이지에서 모아볼 수 있는 기능도 추가했습니다.

아래는 제 개인 페이지이고, 제가 만든 슬라이드들을 모두 보실 수 있습니다 😎

Soaple page
https://www.markslides.ai/@soaple

이렇게 만든 강의 자료들은 제가 실제로 강의할 때 사용하기도 하고,

수강생 분들에게는 링크를 공유해서 언제든지 다시 볼 수 있게 하고 있습니다.

그리고 그 과정에서 자연스럽게 사용자도 늘어나고 있고요ㅎㅎ

그밖에도 실제 사용자들의 피드백을 기반으로 불편한 점을 개선하고 기능을 점점 발전시켜나가고 있습니다.

앞으로의 방향 🧭

이제 MarkSlides의 실제 서비스 repository는 1,000 커밋을 넘겼습니다.

그동안 수많은 서비스와 제품을 개발하다보니,

개인적으로는 대략 1,000 커밋 정도는 넘겨야 어느정도 쓸만한 제품이 되는 것 같습니다ㅎㅎ

그리고 이 글을 쓰는 시점을 기준으로 가입한 회원 수는 400명을 넘겼고,

1,100개 이상의 슬라이드가 생성되었습니다.

회원수 측면에서는 아주 빠르게 성장하는 서비스라고는 할 수 없지만,

저는 먼저 소수의 핵심 사용자들에게 만족스런 서비스가 되는 것을 목표로 하고 있습니다.

그걸 달성한 이후에는 제품이 자연스럽게 널리 알려질거라고 생각하고 있기 때문입니다.


지난 1년을 돌아보면 저도 굉장히 지치기도 하고 코딩이 하기 싫었던 적도 있지만,

실제 사용자들이 서비스를 사용하는 것을 보면 언제 그랬냐는듯 에너지가 생기는 것 같습니다 💪

저는 앞으로도 꾸준히 제품 개발과 기능 개선에 매진하도록 하겠습니다.

앞으로도 MarkSlides에 많은 관심을 가져주시기 바랍니다!

감사합니다.

Copyright ⓒ Soaple. All rights reserved.