일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 웹 강의
- Java
- NPM
- 라라벨 설치
- 라라벨
- .md
- 구글
- 백엔드
- 웹 개발
- php
- 별별 웹 용어
- composer
- C
- 태그
- 웹
- C++
- 배우기 쉬운 언어
- 통합 개발 환경
- 객체지향프로그래밍
- go언어
- 소프트웨어융합학과
- 마크다운 문법
- laravel
- 경희대학교 국제캠퍼스
- 아누북스
- 개발 환경 구축
- 새로운 언어
- tailwindcss
- HTML
- HTTP
- Today
- Total
세상의 모든 지식
아누북스, 8개월 간의 여정을 되돌아보며 (1) 본문
올해 4월달, 텍스트 인터렉션 기반 독서 커뮤니티 플랫폼 '아누북스'라는 아이템으로 창업경진대회를 참여하게 되었다. 처음에는 무작정 무료한 군생활을 달랠 수 있는 활동으로 시작했다. 참가 신청을 위한 사업계획서도 제출 기한 직전에 마무리 하였으니, 예선에 참여해 적당히 좋은 성적만 거두어도 만족할 일이었다. 하지만 해군창업경진대회 장려상을 시작으로, 국방부 창업경진대회도 통과하면서 K-Startup 예선까지 참여하게 되었다. 아슬아슬 줄타기를 하며 8개월 동안 우리가 만들어온 아이템, 그리고 그 과정에서 느꼈던 점들을 남겨보려고 한다.
4월달, 무작정 시작했던 창업
해군 소프트웨어개발병으로 근무하는 나는 마음 맞는 동기들과 함께 창업 경진대회를 시작했다. 그때 당시 내가 전자책과 관련된 아이템에 꽂혀 있어서, 사람들이 함께 책을 읽을 수 있는 전자책 플랫폼을 개발해보면 어떨까 했던 것이 '아누북스'의 시작이었다.
처음에는 '오픈북'이라는 개발자가 지은 티가 팍팍나는 이름으로 시작했다. 전자책을 읽으면서 문장에 밑줄을 긋고, 댓글/감정표현을 통해 다른 사람과 소통할 수 있는. 혼자 해야했던 독서를 다른 사람과 함께 하는 활동으로 바꾸는, 세상에는 없던 새로운 독서경험을 제공한다는 것이 아이템의 컨셉. 개발자들답게 시장에 대한 분석 등 보다는 직관에 의존해 아이템 빌드를 시작하였다.
밑줄 긋는거, 어떻게 구현하는데?
처음에 개발한 것은 epub 파일을 불러와 보여주는 뷰어와 밑줄을 긋고 댓글을 달 수 있는 기능이었다.
드래그한 문장을 데이터베이스에 저장하고 불러오는 것부터 쉽지 않았다. 장편소설 기준 한 권 평균 1만자가 넘는 텍스트 중에서 특정 페이지 혹은 위치의 문장을 특정하는 것이 쉽지 않았다. 가령 '다'라는 한 글자만 드래그 하고 댓글을 달았을 때, 유저가 드래그한 '다'라는 글자가 몇 페이지 몇 번 문장에 있는 '다'인지 알아내는 것은 불가능한 일이다. 1만자 중에서 '다'라는 글자를 검색하면 아마 3,000개가 넘는 검색 결과가 나올 것이다.
이를 해결하기 위해 '라이너'라는 서비스를 참고하였다. 라이너는 웹 문서에서 기록하고 싶은 문장에 밑줄을 긋고, 간단한 메모 등을 남길 수 있는 서비스이다. 라이너가 어떤식으로 데이터를 저장하는지 분석해보았는데, 그 방식이 뒷통수를 한대 얻어 맞은 것처럼 단순하고 기발했다.
그것은 바로 유저가 특정 문장을 저장하면 그 문장의 앞뒤 10글자 정도를 함께 저장하는 것이다. html 문서를 파싱해서 텍스트 노드만 따로 추출한 뒤, 앞뒤로 특정 개수의 글자수를 함께 저장한다. 하지만 이렇게 함께 저장된 문장 조차도 중복될 수 있기 때문에, 앞뒤 10글자를 합친 문장과 같은 문장이 문서 내에 존재하는지 2중으로 검증하고, 만약 존재한다면 앞뒤로 붙이는 글자의 수를 1개씩 늘려가면서 앞뒤 글자가 합쳐진 문장이 문서 내 유일한 문장이 될때까지 반복한다.
이 방식을 그대로 적용해 '아누북스' (당시 '오픈북') 리더에도 밑줄 그은 문장을 정확하게 특정할 수 있는 기능이 탑재되었다.
군 내에서 개발할 수 있는 환경이 마땅치 않았기 때문에 우리는 새벽 내내 사지방(사이버지식정보방)에서 개발을 해야 했다. 지금 생각해보면 새벽 4시쯤 잠들어서 다음날 6시 반에 기상해 출근하는 생활을 일주일 넘게 했다는 사실이 믿겨지지 않는다. 서류 제출 당일에는 사지방에서 밤을 새고 바로 점호에 나가기도 했다. 😤 생각해보면 본선 서류 및 발표 영상 제출 막바지에는 면연력이 약해서져 감기를 달고 살았던 기억이 떠오른다.
(물론 후에 ebook 리더에 사용했던 라이브러리 epub.js를 자세히 분석해보니 'CFI'라는 epub 내에서 밑줄친 문장을 특정할 수 있는 저장 방식을 활용하면 너무 간단하게 구현할 수 있었다는 사실을 알고 좀 충격이었다. ㅎㅎ)
그리고 발표를 수십차례 했지만 한 사람도 기술의 구현가능성에 대한 의문을 제시하지 않았다는 점도 의아했다. 투자자들은 인공지능이나 블록체인 같은 신기술이 아니면 웬만한 것들은 그냥 뚝딱하면 만들어진다고 생각하고 있는 걸지도 모르겠다. ㅠㅠ
생각보다 높았던 저작권의 장벽
다음 문제는 서비스에서 제공할 콘텐츠를 확보하는 문제였다. 우리는 콘텐츠를 확보하기 위해 여러 출판사에 연락을 돌려 보았다. 하지만 답장은 거의 오지 않았고, 그나마 온 답변도 콘텐츠를 무료로 제공할 수 있는 방법은 없다는 것이었다. 그래서 우리가 선택한 방법은 작가들에게 직접 연락을 해서 콘텐츠를 확보하는 것이었다.
물론 유명작가들에게 연락을 하기는 쉽지 않았기에, 브런치에서 활동하는 작가들에게 주로 연락을 돌렸다. 거절도 많이 당하고, 무엇보다 출판이 되는 순간 콘텐츠를 제공하고 복제할 수 있는 권한이 출판사로 넘어가버리기 때문에 해당 콘텐츠를 사용할 방법이 없었다. 그래도 다행히 작가 4~5분이 자신의 미출간 작품을 1개월 정도 서비스할 수 있게 도와주셨다! 🙂
물론 출판되지 않은 작품이기 때문에 우리가 손수 epub 파일로 변환하는 작업을 거쳐야 했다. 다행히 Sigil이라는 무료 툴로 쉽게 epub 파일을 제작할 수 있었다. 👍 이번에 알게된 한 가지 놀라운 사실은 epub 확장자가 단순히 압축파일이었다는 것이다. 챕터 정보, 글, 이미지, 폰트 등등을 특정 디렉토리에 넣어서 압축한 뒤 확장자를 epub으로 바꾼 것이 epub이었던 것이다! 그래서 epub 관련 라이브러리들을 뜯어보다 보면 압축 해제하는 라이브러리를 사용한다는 사실을 확인할 수 있다.
그래서 누가 써주는데?
아이템을 검증하기 위해서 테스트를 진행해야 했다. 우리는 확실하고 빠르게 테스트를 진행할 수 있는 방법이 필요했다. 온라인으로 사람을 모으고, 실험을 진행하게 한 뒤 설문조사를 하는 것은 효율이 좋지 않을 것 같았다. 그래서 우리는 부대에 있는 사람들에게 부탁해 오프라인으로 테스트를 진행하기로 했다. 전날 미리 양해를 구하고, 점심시간에 사지방에서 테스트를 진행하기로 했다. 그날 우리는 점심 먹는 것도 포기하고, 사람들이 점심을 먹고 오면 바로 테스트를 진행할 수 있게 메뉴얼을 출력하고 컴퓨터 셋팅을 해놓았다. 옆방에서는 테스트를 마친 사람들을 대상으로 설문과 심층 인터뷰를 진행하였다.
이날 무려 15명이나 되는 사람들이 실험에 참여해주었다. 🙂 고등학생 때도, 대학생 때도 조별과제를 할 때 테스트는 당연히 단톡방에 구글폼을 올려서 진행했었다. 그때는 그게 최선의 방법이라고 생각했다. 그리고 사실 오프라인으로 사람들을 모으는 것이 조심스럽고 부담이 되어 껄끄러웠다. 하지만 이번 테스트를 진행하면서 조금의 시간과 노력을 더 투자하더라도 오프라인으로 사람들을 모아서 테스트하는 것이 얼마나 큰 힘을 가지는지 알게 되었다.
사람들이 우리 아이템을 쓰는 모습을 뒤에서 지켜보면서 그들의 감정 변화를 직접적으로 볼 수 있는게 제일 좋았다. 특히 다른 사람이 문장에 단 댓글을 보며 피식 웃거나 고개를 갸우뚱하며 답글을 다는 모습을 볼 때 정말이지 너무 신나서 껑충 뛰고 싶었다.
그리고 양질의 피드백을 얻을 수 있다는 점도 좋았다. 불편함을 느꼈던 점이나, 추가되었으면 하는 기능 등등을 그들의 입으로 더 자세하게 들을 수 있었다. 사람들이 어떤 부분에서 더 많이 불편함을 느끼고 있는지, 어떤 부분들을 필요로 하는지 서로의 얼굴을 마주보며 이야기할 때 더 진정성있는 답변을 들을 수 있었다.
우리는 이번 테스트를 통해 아이템을 개선하고, 사람들이 정말 원하는 것이 무엇인지 알 수 있었다.
이후 그룹핑 기능과 혼자 집중해서 책을 읽을 수 있게 댓글을 숨겨주는 토글 기능등을 추가해 아이템을 개선했고, 국방부 창업경진대회에 진출할 수 있었다!
국방부 창업경진대회를 진출하면서 팀에 많은 변화가 생겼다. 무엇보다 팀원이 추가되었다!!
좋은 일일 수도 있지만, 우리는 팀원이 추가되면서 처음에 큰 난황을 겪여야 했다... 😨
그 이야기는 다음 편에서 다루도록 하겠다. 그럼 다들 안녕~ 👋