오늘은 YesTakeout v1.0.0 배포 기념으로 간단한 사용방법과 함께 소개글을 작성해보려고 한다. 그 사이에 갑작스럽게 여행을 가게 되어서 만들어두고 올리는 시기가 좀 늦어졌다.
먼저 이 프로젝트는 순전히 내가 필요했기 때문에 개인적인 용도로 만든 것으로 Yes24의 eBook 프로그램이 바뀌면 사용이 불가능할 수 있다. 지금은 Windows 버전만 만들었고 이후 MacOS 버전도 개발환경을 준비되면 배포해보도록 하겠다.
다운로드
아래 링크로 들어가서 오른쪽 Release란에 최신 버전을 클릭하고 Release.zip 을 다운받고 압축을 풀면 최신 버전을 사용할 수 있다.
YesTakeout 설치 링크
사용 방법
이 프로젝트는 Yes24 Ebook에서 사용하는 로컬 데이터베이스에 담긴 정보가 필요하므로 우선 Yes24 Ebook을 설치와 데이터 다운로드 과정이 필수적이다.
Yes24 eBook PC 뷰어 설치
⚠️ 반드시 아무런 세팅없이 다음을 눌러서 설치를 하셔야지 사용하실 때 번거롭지 않습니다.
아래 링크를 통해 Yes24 eBook PC 뷰어 설치
- Yes24 eBook PC 뷰어 설치 링크 접속 후 사진에 표시된 버튼 클릭하여 설치
-
원하는 책의
다운로드
버튼을 눌러 책을 다운로드 -
다운로드 완료 후 2번 사진처럼
열기
버튼으로 바뀌었다면열기
버튼 클릭
YesTakeout을 사용하여 하이라이트, 메모 열람
yes_takeout.exe
파일 실행아래와 같은 화면이 뜨면
Takeout 하러 가기
클릭Open database
를 클릭하여 Yes24 eBook 데이터베이스 선택기본 설정으로 설치했다면
Open database
클릭했을 때 바로 설정이 될 것이다.기본 데이터베이스 주소:
%USERPROFILE%\AppData\Local\YES24eBook\databases
-
원하는 책 선택
인덱스 보기, 메모 보기, 하이라이트색 등을 토글할 수 있다.
이제 원하는 부분을 드래그하여 선택한 후 독서노트를 작성하면 된다.
앞으로의 계획
앞으로는 다음과 같은 기능들을 만들어볼 예정입니다. 일단은 제가 필요하다고 생각하는 내용들을 위주로 넣어놨는데 지금도 충분한 것 같기는 해서 사용하시는 분들이 있는지 반응을 보고 필요하다면 업데이트를 해봐야겠습니다.
MacOS 지원
템플릿 기능: 선택한 하이라이트를 템플릿에 맞춰서 내보내기
옵시디언으로 내보내기 기능: 옵시디언으로 하이라이트와 메모, 책 정보 내보내기
필사 기능: 그냥 복사하는 것이 아니라 직접 타이핑해서 복사
한계점
우선 가장 큰 한계점은 Yes24 eBook PC 뷰어에 의존하고 있기 때문에 이 프로그램이 바뀌거나 했을 때 바로 대응이 안 될 수 있다. 개인적으로 필요해서 만들었기 때문에 그렇게 된다면 리*북스로 넘어가야할 것 같다.
PDF 기반의 eBook은 지원이 안된다. PDF 파일 자체에 주석이 저장되고 그 내용을 데이터베이스에 저장하는 방식인 것 같아서 그것까지는 어떻게 할 수가 없었다.
Web을 지원하려고 했으나 데이터베이스를 읽어오는 부분에서 문제가 생겨서 PC 버전으로 만들게 됐다. 귀찮을 수 있지만 다운받아서 사용해야 한다.
후기
Windows 프로그램을 만들어본 것은 처음이었지만 Flutter를 사용하니까 그냥 크로스플랫폼 앱 개발하듯이 매우 편하게 개발할 수 있었다. 후기에서는 이번에 시도해본 것들과 개발하면서 느낀점들을 간략하게 정리해보겠다.
SQLite3의 Flutter Web 버전 지원 문제
Web 버전으로 만들어서 모두가 사용할 수 있도록 할 예정이었는데 큰 자칠이 생겼다. WASM을 이용해서 컴파일된 SQLite3를 지원하지만 로컬 데이터베이스를 읽어서 로드하는 기능을 지원하지 않아서 Web 지원을 포기하게 됐다.
BLE 기능을 도입하는 프로젝트에서도 공식적인 라이브러리가 없어서 flutter 사용이 굉장히 힘들었는데 이번에는 native에 대한 이해가 얼마나 중요한지와 flutter의 단점을 여실히 느낄 수 있었다.
Clean architecture(?)
이번에 clean architecture를 도입해보고 riverpod 이라는 상태관리 라이브러리의 2.0 버전을 사용해봤다. 일단 두 가지 다 좋은 방법이라고 생각이 되지만 익숙하지 않으니 시간이 꽤 오래 걸린 것 같다. 특히, 이게 맞는 방법인지가 확실하지 않으니까 더 더뎠던 것 같다.
그리고 지금 프로젝트 규모에 비해서 너무 복잡한 설계를 사용한 것 같다. 추상화를 통해서 이득을 볼 부분을 없는 것 같은데 소 잡는 칼을 닭 잡는데 사용한 것 같은 꼴이었다.
개발 속도 빼고 불편했던 점 중 하나는 바로 IDE의 지원이다. Interface에 의존을 하다보니 구현체로 이동하기 위해서는 하나의 스텝을 더 밟아야 해서 생각보다 거슬렸다.
그래도 한 번 해보니까 추상화에 의존하게 되므로 구현을 수정해도 활용하는 부분이 영향을 받지 않는 다는 것은 확인할 수 있었다. 그래도 프로젝트 규모가 작아서 앞에서 말한 것처럼 그렇게 큰 효과는 보지 못한 것 같다.