YesTakeout! - v1.0.0 소개 및 사용 방법

YesTakeout! - v1.0.0 소개 및 사용 방법

Yes24 eBook에 작성한 하이라이트, 메모를 가져와 손쉽게 독서노트 작성

오늘은 YesTakeout v1.0.0 배포 기념으로 간단한 사용방법과 함께 소개글을 작성해보려고 한다. 그 사이에 갑작스럽게 여행을 가게 되어서 만들어두고 올리는 시기가 좀 늦어졌다.

먼저 이 프로젝트는 순전히 내가 필요했기 때문에 개인적인 용도로 만든 것으로 Yes24의 eBook 프로그램이 바뀌면 사용이 불가능할 수 있다. 지금은 Windows 버전만 만들었고 이후 MacOS 버전도 개발환경을 준비되면 배포해보도록 하겠다.

다운로드

아래 링크로 들어가서 오른쪽 Release란에 최신 버전을 클릭하고 Release.zip 을 다운받고 압축을 풀면 최신 버전을 사용할 수 있다.
YesTakeout 설치 링크

YesTakeout Windows 버전 다운로드 방법 설명

사용 방법

이 프로젝트는 Yes24 Ebook에서 사용하는 로컬 데이터베이스에 담긴 정보가 필요하므로 우선 Yes24 Ebook을 설치와 데이터 다운로드 과정이 필수적이다.

Yes24 eBook PC 뷰어 설치

⚠️ 반드시 아무런 세팅없이 다음을 눌러서 설치를 하셔야지 사용하실 때 번거롭지 않습니다.

  1. 아래 링크를 통해 Yes24 eBook PC 뷰어 설치

  2. Yes24 eBook PC 뷰어 설치 방법

    원하는 책의 다운로드 버튼을 눌러 책을 다운로드

  3. Yes24 eBook PC 뷰어에서 책 다운로드 방법

    다운로드 완료 후 2번 사진처럼 열기 버튼으로 바뀌었다면 열기 버튼 클릭

YesTakeout을 사용하여 하이라이트, 메모 열람

  1. yes_takeout.exe 파일 실행

  2. 아래와 같은 화면이 뜨면 Takeout 하러 가기 클릭

  3. Open database 를 클릭하여 Yes24 eBook 데이터베이스 선택

    • 기본 설정으로 설치했다면 Open database 클릭했을 때 바로 설정이 될 것이다.

    • 기본 데이터베이스 주소: %USERPROFILE%\AppData\Local\YES24eBook\databases

  4. 원하는 책 선택

  5. 인덱스 보기, 메모 보기, 하이라이트색 등을 토글할 수 있다.

    이제 원하는 부분을 드래그하여 선택한 후 독서노트를 작성하면 된다.

앞으로의 계획

앞으로는 다음과 같은 기능들을 만들어볼 예정입니다. 일단은 제가 필요하다고 생각하는 내용들을 위주로 넣어놨는데 지금도 충분한 것 같기는 해서 사용하시는 분들이 있는지 반응을 보고 필요하다면 업데이트를 해봐야겠습니다.

  • MacOS 지원

  • 템플릿 기능: 선택한 하이라이트를 템플릿에 맞춰서 내보내기

  • 옵시디언으로 내보내기 기능: 옵시디언으로 하이라이트와 메모, 책 정보 내보내기

  • 필사 기능: 그냥 복사하는 것이 아니라 직접 타이핑해서 복사

한계점

  • 우선 가장 큰 한계점은 Yes24 eBook PC 뷰어에 의존하고 있기 때문에 이 프로그램이 바뀌거나 했을 때 바로 대응이 안 될 수 있다. 개인적으로 필요해서 만들었기 때문에 그렇게 된다면 리*북스로 넘어가야할 것 같다.

  • PDF 기반의 eBook은 지원이 안된다. PDF 파일 자체에 주석이 저장되고 그 내용을 데이터베이스에 저장하는 방식인 것 같아서 그것까지는 어떻게 할 수가 없었다.

  • Web을 지원하려고 했으나 데이터베이스를 읽어오는 부분에서 문제가 생겨서 PC 버전으로 만들게 됐다. 귀찮을 수 있지만 다운받아서 사용해야 한다.

후기

Windows 프로그램을 만들어본 것은 처음이었지만 Flutter를 사용하니까 그냥 크로스플랫폼 앱 개발하듯이 매우 편하게 개발할 수 있었다. 후기에서는 이번에 시도해본 것들과 개발하면서 느낀점들을 간략하게 정리해보겠다.

  1. SQLite3의 Flutter Web 버전 지원 문제

    • Web 버전으로 만들어서 모두가 사용할 수 있도록 할 예정이었는데 큰 자칠이 생겼다. WASM을 이용해서 컴파일된 SQLite3를 지원하지만 로컬 데이터베이스를 읽어서 로드하는 기능을 지원하지 않아서 Web 지원을 포기하게 됐다.

    • BLE 기능을 도입하는 프로젝트에서도 공식적인 라이브러리가 없어서 flutter 사용이 굉장히 힘들었는데 이번에는 native에 대한 이해가 얼마나 중요한지와 flutter의 단점을 여실히 느낄 수 있었다.

  2. Clean architecture(?)

    • 이번에 clean architecture를 도입해보고 riverpod 이라는 상태관리 라이브러리의 2.0 버전을 사용해봤다. 일단 두 가지 다 좋은 방법이라고 생각이 되지만 익숙하지 않으니 시간이 꽤 오래 걸린 것 같다. 특히, 이게 맞는 방법인지가 확실하지 않으니까 더 더뎠던 것 같다.

    • 그리고 지금 프로젝트 규모에 비해서 너무 복잡한 설계를 사용한 것 같다. 추상화를 통해서 이득을 볼 부분을 없는 것 같은데 소 잡는 칼을 닭 잡는데 사용한 것 같은 꼴이었다.

    • 개발 속도 빼고 불편했던 점 중 하나는 바로 IDE의 지원이다. Interface에 의존을 하다보니 구현체로 이동하기 위해서는 하나의 스텝을 더 밟아야 해서 생각보다 거슬렸다.

    • 그래도 한 번 해보니까 추상화에 의존하게 되므로 구현을 수정해도 활용하는 부분이 영향을 받지 않는 다는 것은 확인할 수 있었다. 그래도 프로젝트 규모가 작아서 앞에서 말한 것처럼 그렇게 큰 효과는 보지 못한 것 같다.