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

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

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

## 다운로드

아래 링크로 들어가서 오른쪽 Release란에 최신 버전을 클릭하고 Release.zip 을 다운받고 압축을 풀면 최신 버전을 사용할 수 있다.  
[**YesTakeout 설치 링크**](https://github.com/Aqudi/YesTakeout/tree/main)

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1705235134415/a5974312-3d3c-420b-ac3a-089e0b80b84b.png align="center")

![YesTakeout Windows 버전 다운로드 방법 설명](https://cdn.hashnode.com/res/hashnode/image/upload/v1705139757786/8543d18c-9754-41a8-8a84-027ec531bf3d.png align="center")

## 사용 방법

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

### Yes24 eBook PC 뷰어 설치

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

1. 아래 링크를 통해 Yes24 eBook PC 뷰어 설치
    
    * [Yes24 eBook PC 뷰어 설치 링크](https://www.yes24.com/notice/eBookGuide/guide_pc.aspx) 접속 후 사진에 표시된 버튼 클릭하여 설치
        
2. ![Yes24 eBook PC 뷰어 설치 방법](https://cdn.hashnode.com/res/hashnode/image/upload/v1705140071126/1d339943-0a8a-4f25-b2d9-b383fb46c205.png align="center")
    
    원하는 책의 `다운로드` 버튼을 눌러 책을 다운로드
    
3. ![Yes24 eBook PC 뷰어에서 책 다운로드 방법](https://cdn.hashnode.com/res/hashnode/image/upload/v1705140247728/fdfa10fd-8730-40ec-a323-96242d1461de.png align="center")
    
    다운로드 완료 후 2번 사진처럼 `열기` 버튼으로 바뀌었다면 `열기` 버튼 클릭
    

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

1. `yes_takeout.exe` 파일 실행
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1705140429693/dc1a7ad4-33bf-4b55-9fae-2e64634a6e7f.png align="center")
    
2. 아래와 같은 화면이 뜨면 `Takeout 하러 가기` 클릭
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1705139809003/125b2556-0c5c-4ab5-9d4d-39b321e98beb.png align="center")
    
3. `Open database` 를 클릭하여 Yes24 eBook 데이터베이스 선택
    
    * 기본 설정으로 설치했다면 `Open database` 클릭했을 때 바로 설정이 될 것이다.
        
    * 기본 데이터베이스 주소: `%USERPROFILE%\AppData\Local\YES24eBook\databases`
        
4. ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1705145349981/894746de-fa4d-4513-93ab-902ff97b868a.png align="center")
    
    원하는 책 선택
    
5. 인덱스 보기, 메모 보기, 하이라이트색 등을 토글할 수 있다.
    
    이제 원하는 부분을 드래그하여 선택한 후 독서노트를 작성하면 된다.
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1705145719355/33f2f7d9-67c6-455e-b444-aee6f4d33a03.png align="center")
    

## 앞으로의 계획

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

* 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에 의존을 하다보니 구현체로 이동하기 위해서는 하나의 스텝을 더 밟아야 해서 생각보다 거슬렸다.
        
    * 그래도 한 번 해보니까 추상화에 의존하게 되므로 구현을 수정해도 활용하는 부분이 영향을 받지 않는 다는 것은 확인할 수 있었다. 그래도 프로젝트 규모가 작아서 앞에서 말한 것처럼 그렇게 큰 효과는 보지 못한 것 같다.
