Skip to content

Releases: MayOwall/book-book

Anna Karenina (v0.1.0)

23 Feb 10:56
d25a1b8
Compare
Choose a tag to compare
Pre-release

📚 Anna Karenina (v0.1.0)

cf. 북밋의 서비스 버전 이름은 알파벳 순서를 바탕으로 한 책 이름으로 구성됩니다.


북밋 서비스의 첫 프로토타입인 Anna Karenina (v0.1.0) 이 출시되었습니다 :D 🎉

북밋은 기록을 통해 즐거워지는 독서 생활이라는 슬로건을 바탕으로
유저분들이 기록을 통해 더 나은 독서 경험을 제공하기 위해 노력하는 서비스입니다.

따라서 첫 프로토타입 버전인 v0.1.0에서는 기록을 중요시하는 저희 서비스에서 가장 기본이 되는
책 등록 기능북밋 생성 기능이 도입되었습니다.


✅ 책 등록 기능

💁🏻‍♀️ 기능 설명

홈페이지에 진입시 새 책 등록 버튼을 통해 책을 등록할 수 있습니다.

네이버의 책 검색 API를 바탕으로 검색된 책을 클릭하면 읽고 있는 책 리스트에 추가됩니다.
읽고 있는 책 리스트는 홈 화면의 책 선반에서 확인할 수 있습니다 :)

⚙️ 기술적 구현

Next Route Handler를 통해 클라이언트(브라우저)와 네이버 API 간의 직접적인 통신 방지

클라이언트와 네이버 API가 직접적으로 통신해서는 안되는 이유는 크게 2가지였습니다.

  1. 네이버 Client Id와 Client Secret에 대한 보안상의 이유
  2. CORS

따라서 Next의 Route Handler를 이용해 구축된 서버를 통해 네이버 책 검색 API를 요청하도록 하여 클라이언트에서 직접적으로 네이버 책 검색 API를 요청할 일이 없도록 분리했습니다.

해당 기술에 대한 더 자세한 이야기는 아래 PR에서 확인할 수 있습니다.
PR #6

Zustand를 통한 모달 상태관리 도입

모달의 기능적 특성상 앱 어디에서든 쉽게 사용이 가능하도록 하고자 했습니다.
이에 Zustand를 통해 모달의 상태를 관리하는 로직을 구현하여 모달 컴포넌트를 타 서비스 컴포넌트들과 완전히 분리하여 독립적으로 사용이 가능하도록 했습니다.

해당 기술에 대한 더 자세한 설명은 아래 PR에서 확인할 수 있습니다.
PR #11


✅ 북밋 생성 기능

💁🏻‍♀️기능 설명

읽고 있는 책을 선택하여 북밋을 생성할 수 있습니다.

북밋이란?
북 + 커밋 => 북밋 오늘 읽은 책과 페이지에 대한 기록

읽고 있는 책 중 하나를 선택하면 새 북밋 생성 버튼이 활성화됩니다.
해당 버튼을 통해 북밋 생성이 가능합니다.
읽은 페이지를 입력한 후, 마지막으로 북밋 생성하기 버튼을 누르면 새로운 북밋이 생성되며
홈페이지로 이동하게 됩니다.

생성한 북밋은 홈페이지에서 전체 혹은 각 책 별로 확인할 수 있습니다.

2024-02-226 28 44-ezgif com-video-to-gif-converter

⚙️ 기술적 구현

북밋의 데이터 저장

북밋의 데이터들은 현재 로컬스토리지를 이용하여 저장됩니다.
로컬스토리지를 사용한 이유는 당장 필요한 기능을 구현하는데 가장 빠르게 구현할 수 있었기 때문이었습니다. 차후 기록의 백업 기능과 사용자 구분 기능이 필요할 때 서버리스 서비스로의 마이그레이션 계획이 있으나, 현재로선 로컬스토리지만으로도 충분하다고 판단했습니다.

로컬스토리지를 이용하는 로직은 src/api 폴더 내부에 메서드로 분리해 놓았습니다.


저희 서비스에 대해 읽어주셔서 감사합니다 😄


Contributor

@MayOwall