소설 연재 플랫폼 개발 일지 010
December 9, 2022
기술 관련 #
cljs -> js #
클로저스크립트를 사용하여 개발해보고 싶었지만 프로토타입까지는 자바스크립트로 개발해야겠다. 여러 이유가 있는데 가장 큰 이유는 지금 당장의 생산성 문제가 컸다. fulcro 외의 다른 프레임워크를 찾아보던 중 리액트 17+를 지원하는 가벼운 리액트 래퍼 프로젝트들(helix, uix)을 발견했고, 리액트의 대안으로 solid를 발견했는데 리액트와 동일한 생산성이 나오면서 컴파일 후 번들 사이즈도 훨씬 작은 solid를 사용해야겠다고 생각했다.
cljs 코드로 solid를 작성할 수 있는 프로젝트는 아직 없기에-squint는 cljs가 아니다. squint를 사용하면 solid 같은 프레임워크가 필요없다고 말하긴 하지만 내가 원하는 것은 solid를 레버리징 할 수 있는, 말 그대로 solid 문법 js로 컴파일되는 더 축약된 문법의 clj 매크로 라이브러리가 있으면 좋겠다. 하지만 이게 옳은 접근법인지는 모르겠다. 리액트 래퍼 라이브러리가 어떻게 작성되어 있는지 보면 알 수 있을 듯 하다.
fulcro? #
fulcro는 기본 컴포넌트로 클래스 기반을 사용하기 때문에 this를 반드시 넘겨야 하는 것이 마음에 들지 않는다. 클로저 세상에 어울리는 독창적인 프레임워크인 것 같지만 지금의 내게는 맞지 않는 도구인 것 같다. 나중에 fulcro에서 데이터를 다루는 방식을 좀 더 깊게 들여다보고 앞으로 활용할 수 있다면 좋겠다.
서비스 관련 #
기존 서비스들과의 차이점으로 기획한 것이 득이 될지 실이 될지 확신할 수 없다면 개발을 하지 않는 것이 나은 것일까?
탑다운 방식의 생각법, 필요한 기능이 이미 있다고 생각하고 전체 구조를 작성해보는 희망적 사고.
개발하고 싶은 기능들 #
읽기 #
표지 이미지 책 내용에 따라 자동 생성되는 기능. 단순한 책 내용을 중개하는 서비스가 아니라 이 플랫폼을 통해 퍼블리싱 되는 모든 컨텐츠에 브랜드 가치를 부여하고 싶다. 그리고 책 표지 외주 비용을 없애고 이미지를 css/js로 프론트에서 바로 그려내면 별도의 이미지 스토리지, cdn을 운영하지 않아도 된다. 구현 방안은 자주 사용되는 일상 단어를 제거하고 명사들의 빈도를 추출해 완전한 문장을 만들어 이미지 생성 AI api에 넘겨 결과를 받는 방식과 AI 도움 없이 알고리즘을 작성해보는 방향이다. AI를 활용하게 되면 부를 때마다 새로 만들어달라고 할 순 없으니 이미지 스토리지가 필요할 것 같다.
TTS 활용 오디오북 서비스 API 호출 비용이 있으니 유료 사용자만. 다른 옵션 조사 필요.
모든 국가 공공사업 도서를 사용자의 언어로 읽을 수 있게 만들고 싶다. 구글 번역기를 돌리고, 잘못된 번역은 수정 제안에 참여할 수 있게 만들자.
초개인화 추천. 넷플릭스, 유튜브 사례 참고하여 구현. 이를 위해 그래프 DB 필요함.
쓰기 #
더 쉬운 마크다운 문법. ‘.’ 만으로 글 양식의 차이들을 만들어 낼 수 있을 것 같다. 띄워쓰기 없이 단어 뒤에 .이 찍혀있다면 문장으로 간주한다. 문장 시작 단어에 .을 찍으면 h1, ..은 h2로 만든다. 소설의 경우에 필요한 장식은 크게 없을 것 같지만 이는 작가들과 상의해가며 발전시키면 될 듯.
따옴표를 누르면 자동으로 따옴표 사이에 커서가 들어가는 등의 코드 에디터 기능들.
배경, 사건, 인물의 관계도. 유저를 DB에 저장하듯이 작가가 작성하는 글의 인물 또한 그래프DB에 저장한다. 이를 통해 장편 서사의 흐름을 한 눈에 파악하며 글을 작성할 수 있게 한다. 그리고 글 작성 중 필요할 때마다 검색할 수 있게 한다.
작성 중 원고 내 검색. 글 작성 중 단어 뒤에 ?를 붙이면 작성 중인 원고에서 검색한 결과를 팝업으로 띄운다.