์ฃผ์ ์์
- ํด๋ผ์ด์ธํธ
- ์ปดํฌ๋ํธ ๋ถ๋ฆฌ(ProgressBar, autoRollingNews)
- autoRollingNews setTimeout์ผ๋ก ๋ฆฌํฉํ ๋ง
- ํ์ธ ๋ชจ๋ฌ ์์น ์กฐ์ ๋ฐ ๋ค๋ฅธ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ๊ด๋ฆฌ
- ์ปดํฌ๋ํธ ๋ถ๋ฆฌ(ProgressBar, autoRollingNews)
- ์๋ฒ
- ๋ฐ์ดํฐ ๊ตฌ์กฐ ๊ตฌ์
- ์๋ฒ ์ด๊ธฐ ํ๊ฒฝ์ค์
- ๋๋ฏธ๋ฐ์ดํฐ ์ฝ์
- ๊ธฐํ
- ์ฃผ๊ฐ๊ณํ์์ฑ
ํ์ต ํค์๋
- NOSQL
- useReduce
- firebase functions
๊ณ ๋ฏผ ๋ฐ ํด๊ฒฐ๊ณผ์
์๋ฒ๋ฆฌ์ค & ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฟผ๋ฆฌ ๊ตฌ์ฑ
๋๋ ์ด๋ฒ์ ๋ฐฐํฌ์ ํ์ํ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด์ ์ ๋ฒ ๋ฏธ์ ๊ณผ ๋์ผํ๊ฒ firebase functions๋ฅผ ํ์ฉํ์ฌ ์๋ฒ๋ฅผ ๋ง๋ค๊ณ , ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ firestore๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์์ ์ ์๋ฒ์์ ํ๋ ์์ผ๋ก ๊ตฌ์ํ๋ค.
์ด ๊ณผ์ ์์ ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ฏธ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด๋์ ๊ณํ์ด์์ง๋ง, ์ด ๊ณผ์ ์์ NOSQL์ธ ํด๋ผ์ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ์ฌ
- ๊ฐ ์นดํ ๊ณ ๋ฆฌ๋ณ ๋ด์ค ๋ฐ์ดํฐ
- ๋ด๊ฐ ๊ตฌ๋ ํ ์ธ๋ก ์ฌ์ ๋ด์ค ๋ฐ์ดํฐ
- ๊ฐ ์ธ๋ก ์ฌ์ ๋ด์ค ๋ฐ์ดํฐ
- ๋ด๊ฐ ๊ตฌ๋ ํ ์ธ๋ก ์ฌ
- ์ ์ฒด ์ธ๋ก ์ฌ ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ๋ถํ์ฌ ํด๋ผ์ด์ธํธ๋ก ๋๊ฒจ์ฃผ์ด์ผ ํ ๊น? ์ ๋ํ ๊ณ ๋ฏผ์ด ๋์๋ค.
๋ด๊ฐ ๊ด๋ฆฌํด์ผ ํ๋ ๋๋ฉ์ธ์ ๋๋์ด๋ณด์๋ฉด
- ์ธ๋ก ์ฌ(press)
- ๊ตฌ๋ (subscriptions)
- ์ธ๋ก ์ฌ์ ๋ด์ค(articles) ๊ฐ ์๋ค.
์ผ๋จ ํ์ฌ ๊ณํ์์ผ๋ก๋ ํด๋น ๋ค์ด์ด๊ทธ๋จ๊ณผ ๊ฐ์ด subscription์์๋ press property์์ press๋ค์ ์ฐธ์กฐํ๊ณ , Press์ articles ํ๋กํผํฐ์์๋ article๋ค์ ์ฐธ์กฐํ๋ฉฐ article์์๋ ๊ฐ ๊ธฐ์ฌ๋ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ์ ์๋๋ก ํ๋ค.
Articles
- id: number
- title:string
- created_at: string
- thumbnail_image:string
- openLink:string
- category:string
Press
- id: number
- pressName: string
- pressLogo:string
- openLink:string
- editDate:string
- articles : Articles[]
Subscription
- id: number
- subscriber: string
- press: Press[]
NOSQL์ ์์๋ณด๋ ๊ณผ์ ์์ Firestore์ ์ถ์ฒํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ต์ ์ด ์์๋ค.
- ๋ฌธ์์ ์ค์ฒฉ ๋ฐ์ดํฐ๋ก ํํ
- ํ์ ์ปฌ๋ ์ ์ผ๋ก ํํ
- ๋ฃจํธ ์์ค ์ปฌ๋ ์
์ด๋ฅผ ์ ์ ํ ํ์ฉํ๊ธฐ ์ํด ๋๋ ๊ฐ category, publisher, article์ collections๋ก ๊ตฌ๋ถํ ์ ์๊ฒ ํด ์ฃผ์ด ๋๋ฉ์ธ์ ๊ตฌ๋ถํ ์ ์๋๋ก ํด์ฃผ์๋ค.
๋ฐ๋ผ์
categories(collections) -> category(doc) -> publishers(collections) -> publisher(doc) -> articles(collections) -> article(doc)์ ๊ฐ์ ๊ตฌ์กฐ๋ก ๋๋ฏธ๋ฐ์ดํฐ๊ฐ ๊ตฌ์ฑ๋๋ค.