์ฑ ์ ๋ฆฌ๋ทฐํ๊ณ ์กฐํํ ์ ์๋ ์๋น์ค์ ๋๋ค.
-
ํ์๊ฐ์
- ์ฌ์ฉ์๋ ํ์๊ฐ์ ์ ํ ์ ์๋ค.
- ์ด๋ฉ์ผ, ํจ์ค์๋, ๋๋ค์(8์ ์ด๋ด)์ ์ ๋ ฅ๋ฐ์ผ๋ฉฐ, ์ด๋ฉ์ผ๊ณผ ๋๋ค์์ unique ํด์ผํ๋ค. ๋ชจ๋ ๊ฐ์ ํ์๊ฐ์ด๋ค.
- ์ด๋ฉ์ผ ์ธ์ฆ์ ๊ฒฝ์ฐ 72์๊ฐ๋ด์ ์ํํด์ผํ๋ค.
- ๋ชจ๋ ์ฌ์ฉ์๋ ํ์๊ฐ์
์ USER ๊ถํ์ ๊ฐ๋๋ค.
- ADMIN role๋ ์์ง๋ง, ๊ด๋ฆฌ์ ํ์๊ฐ์ ์ ๋ณ๋์ API๋ ์ ๊ณตํ์ง ์๋๋ค.
-
๋ก๊ทธ์ธ
- ์ฌ์ฉ์๋ ๋ก๊ทธ์ธ์ ํ ์ ์๋ค.
- ์ด๋ฉ์ผ ์ธ์ฆ์ด ๋ ์ด๋ฉ์ผ๋ก๋ง ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๋ค.
- ๋ก๊ทธ์ธ ์ ํ์๊ฐ์ ๋ ์ฌ์ฉํ ์์ด๋์ ํจ์ค์๋๊ฐ ์ผ์นํด์ผํ๋ค.
- ์คํ๋ง ์ํ๋ฆฌํฐ์ JWT๋ฅผ ์ฌ์ฉํ๊ณ , ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด ์ก์ธ์คํ ํฐ๊ณผ ๋ฆฌํ๋์ ํ ํฐ์ ๋ฐ๊ธํ๋ค.
-
์ฑ ๊ฒ์
- ๋ก๊ทธ์ธํ์ง ์์ ์ฌ์ฉ์๋ฅผ ํฌํจํ ๋ชจ๋ ์ฌ์ฉ์๋ ์ฑ ์ ๊ฒ์ํ ์ ์๋ค. '๋ค์ด๋ฒ ๊ฒ์ > ์ฑ Search API'๋ฅผ ์ฌ์ฉํ๋ค. https://developers.naver.com/docs/serviceapi/search/book/book.md#%EC%B1%85
- ๋ค์ด๋ฒ API ํธ์ถ ์ฅ์ ๋ฐ์ ์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด '์ํท ๋ธ๋ ์ด์ปค ํจํด'์ ์ฌ์ฉํ๋ค.
- ๊ฒ์ ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๊ฒ์๊ฒฐ๊ณผ๋ฅผ ์บ์์ ์ ์ฅํด๋๊ณ , Open API์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์บ์์ ์๋ ๋ฐ์ดํฐ๋ก ์๋ตํ๋ค.
- ๋ง์ฝ ์บ์์๋ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ์ง ์๋ค๋ฉด, ์นด์นด์ค ์ฑ ๊ฒ์ API๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์๊ฒฐ๊ณผ๋ฅผ ์๋ตํ๋ค.
- ์นด์นด์ค ์ฑ ๊ฒ์ API: https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-book
- ๊ฒ์ ๊ฒฐ๊ณผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก '์ ํ๋ ์'์ผ๋ก ์ ๋ ฌ๋๋ฉฐ, ๊ทธ ์ธ ์ ๋ ฌ์ผ๋ก๋ '์ต๊ทผ ์ถ๊ฐ์ผ ์'์ด ์๋ค.
- ์ฑ ์ด๋ฏธ์ง, ์ ๋ชฉ, ์ ์, ํ๋งค๊ฐ๊ฒฉ, ์ถํ์ฌ, ์ถ๊ฐ์ผ์ ๋ณผ ์ ์๊ณ , ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋ง์ ์ ์์ผ๋ฏ๋ก paging ์ฒ๋ฆฌํ๋ค.
-
์ฑ ์์ธ ์กฐํ
- ๋ก๊ทธ์ธํ์ง ์์ ์ฌ์ฉ์๋ฅผ ํฌํจํ ๋ชจ๋ ์ฌ์ฉ์๋ ์ฑ ์ ์์ธ ์กฐํํ ์ ์๋ค.
- ์ฑ ์ ์์ธ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์๋ค.
-
์ฑ ๋ฆฌ๋ทฐ ๋ฆฌ์คํธ ์กฐํ
- ๋ฆฌ๋ทฐ์ ๊ตฌ์ฑ์ ์์ฑ์์ ๋๋ค์, ๋ณ์ , ๋ด์ฉ, ์ข์์ ๊ฐฏ์, ์์ฑ ๋ ์ง๋ก ๊ตฌ์ฑ๋๋ค.
- '์ข์์์', '์ต์ ์'์ผ๋ก ์ ๋ ฌํ ์ ์๋ค.
- ๊ฒฐ๊ณผ๊ฐ ๋ง์ ์ ์์ผ๋ฏ๋ก paging ์ฒ๋ฆฌํ๋ค.
-
์ฑ ๋ฆฌ๋ทฐ ์์ฑ
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ง ๋ฆฌ๋ทฐ๋ฅผ ์์ฑํ ์ ์๋ค.
- ๋ฆฌ๋ทฐ ์์ฑ ํญ๋ชฉ์ ์์ฑ์์ ๋๋ค์, ๋ณ์ , ๋ด์ฉ์ผ๋ก ๊ตฌ์ฑ๋๊ณ ๋ชจ๋ ํ์๊ฐ์ด๋ค.
- ์ฑ ์ ๋ฐ๋ก DB์ ์ ์ฅํ์ง ์์ผ๋ฏ๋ก, ISBN๊ฐ์ ์ฌ์ฉํ๋ค.
-
๋ฆฌ๋ทฐ '์ข์์'
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ง ๋ง์์ ๋๋ ๋ฆฌ๋ทฐ์ '์ข์์'๋ฅผ ๋๋ฅผ ์ ์๋ค.
- ํ์์ ์ค๋ณต '์ข์์'๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ํ์ID, ๋ฆฌ๋ทฐID๋ฅผ unique๋ก ๊ฐ์ง๋ค.
- ๋ฆฌ๋ทฐ ์์ฑ์๋ '์ข์์ ์๋ฆผ'์ ๋ฐ๋๋ค.
-
๋ฆฌ๋ทฐ '์ข์์' ์ทจ์
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ ๋ณธ์ธ์ด ๋๋ฅธ '์ข์์'๋ฅผ ์ทจ์ํ ์ ์๋ค.
- ๋ฆฌ๋ทฐ ์์ฑ์๋ ์ทจ์์๋ฆผ์ ๋ฐ์ง ์๋๋ค.
- '์ข์์' ํ ์ด๋ธ์์ ์ญ์ ๋๋ค.
-
์๋ฆผ
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์๋ง ์๋ฆผ์ ๋ฐ์๋ณผ ์ ์๋ค.
- ์๋ฆผ์ ์์ ์, ๋ด์ฉ, ์๋ฆผ์ด ์จ ๋ ์ง, ์ฝ์ ์ํ๋ก ๊ตฌ์ฑ๋์ด์๋ค.
- ์ฝ์ ์ํ๋ ์ฝ์๋ ์ง ์ปฌ๋ผ์ ๋ ์ผ๋ก์จ ๊ตฌํํ๋ค.
- ์๋ฆผ์ด ๋ฌด์จ ํ์
์ธ์ง ํ์
ํ๊ธฐ์ํด enum์ผ๋ก ๊ด๋ฆฌํ๋ค. (e.g. LIKE, COMMENT)
- ํ์ฌ๋ 'LIKE'ํ์ ์ ์๋ฆผ๋ง ์กด์ฌํ์ง๋ง, ์ถํ์ ์ฌ๋ฌ ํ์ ์ ์๋ฆผ์ด ์ถ๊ฐ๋ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ๋๋ฌธ์ด๋ค.
- ์๋ฆผ์ [๋ด๊ฐ ์์ฑํ ๋ฆฌ๋ทฐ์ '์ข์์'๊ฐ ๋๋ ธ์ ๋]์ ๊ฐ์ ์ํฉ์ ๋ฐ์ํ๋ค.
- ๋ง์ฝ, [A์ ์ ๊ฐ ์ฌ์ฉ์๋์ '๋ฆฌ๋ทฐ1'๋ฅผ ์ข์ํฉ๋๋ค.] ๋ผ๋ ์๋ฆผ์ด ์จ๋ค๋ฉด, ํด๋น ์๋ฆผ ํด๋ฆญ ์ '๋ฆฌ๋ทฐ1'๋ก ์ด๋ํ๋ค.
- A์ ์ : action_member_id ์ปฌ๋ผ์ ๋ ์ผ๋ก์จ ๊ตฌํํ๋ค.
- ๋ฆฌ๋ทฐ1๋ก ์ด๋: target_type ์ปฌ๋ผ๊ณผ target_id ์ปฌ๋ผ์ ๋ ์ผ๋ก์จ ๊ตฌํํ๋ค.
