Releases: MayOwall/book-book
Anna Karenina (v0.1.0)
📚 Anna Karenina (v0.1.0)
cf. 북밋의 서비스 버전 이름은 알파벳 순서를 바탕으로 한 책 이름으로 구성됩니다.
북밋 서비스의 첫 프로토타입인 Anna Karenina (v0.1.0) 이 출시되었습니다 :D 🎉
북밋은 기록을 통해 즐거워지는 독서 생활이라는 슬로건을 바탕으로
유저분들이 기록을 통해 더 나은 독서 경험을 제공하기 위해 노력하는 서비스입니다.
따라서 첫 프로토타입 버전인 v0.1.0에서는 기록을 중요시하는 저희 서비스에서 가장 기본이 되는
책 등록 기능
과북밋 생성 기능
이 도입되었습니다.
✅ 책 등록 기능
💁🏻♀️ 기능 설명
홈페이지에 진입시 새 책 등록 버튼을 통해 책을 등록할 수 있습니다.
네이버의 책 검색 API를 바탕으로 검색된 책을 클릭하면 읽고 있는 책 리스트에 추가됩니다.
읽고 있는 책 리스트는 홈 화면의 책 선반에서 확인할 수 있습니다 :)
⚙️ 기술적 구현
Next Route Handler를 통해 클라이언트(브라우저)와 네이버 API 간의 직접적인 통신 방지
클라이언트와 네이버 API가 직접적으로 통신해서는 안되는 이유는 크게 2가지였습니다.
- 네이버 Client Id와 Client Secret에 대한 보안상의 이유
- CORS
따라서 Next의 Route Handler를 이용해 구축된 서버를 통해 네이버 책 검색 API를 요청하도록 하여 클라이언트에서 직접적으로 네이버 책 검색 API를 요청할 일이 없도록 분리했습니다.
해당 기술에 대한 더 자세한 이야기는 아래 PR에서 확인할 수 있습니다.
PR #6
Zustand를 통한 모달 상태관리 도입
모달의 기능적 특성상 앱 어디에서든 쉽게 사용이 가능하도록 하고자 했습니다.
이에 Zustand를 통해 모달의 상태를 관리하는 로직을 구현하여 모달 컴포넌트를 타 서비스 컴포넌트들과 완전히 분리하여 독립적으로 사용이 가능하도록 했습니다.
해당 기술에 대한 더 자세한 설명은 아래 PR에서 확인할 수 있습니다.
PR #11
✅ 북밋 생성 기능
💁🏻♀️기능 설명
읽고 있는 책을 선택하여 북밋을 생성할 수 있습니다.
북밋이란?
북 + 커밋 => 북밋
오늘 읽은 책과 페이지에 대한 기록
읽고 있는 책 중 하나를 선택하면 새 북밋 생성 버튼
이 활성화됩니다.
해당 버튼을 통해 북밋 생성이 가능합니다.
읽은 페이지를 입력한 후, 마지막으로 북밋 생성하기 버튼을 누르면 새로운 북밋이 생성되며
홈페이지로 이동하게 됩니다.
생성한 북밋은 홈페이지에서 전체 혹은 각 책 별로 확인할 수 있습니다.
⚙️ 기술적 구현
북밋의 데이터 저장
북밋의 데이터들은 현재 로컬스토리지를 이용하여 저장됩니다.
로컬스토리지를 사용한 이유는 당장 필요한 기능을 구현하는데 가장 빠르게 구현할 수 있었기 때문이었습니다. 차후 기록의 백업 기능과 사용자 구분 기능이 필요할 때 서버리스 서비스로의 마이그레이션 계획이 있으나, 현재로선 로컬스토리지만으로도 충분하다고 판단했습니다.
로컬스토리지를 이용하는 로직은 src/api 폴더 내부에 메서드로 분리해 놓았습니다.
저희 서비스에 대해 읽어주셔서 감사합니다 😄