- ์ํ๋ผ์ด์ฆ์ destroy ๋งค์๋์ ๋ผ์ฐํฐ ํ์ฉ
- ์ํ๋ผ์ด์ฆ์ update ๋งค์๋์ ๋ผ์ฐํฐ ํ์ฉ
- ์ฌ์ฉ์-๊ฒ์๊ธ ๋ชจ๋ธ ๊ฐ N:M ๊ด๊ณ ์ ๋ฆฝ ํ ๋ผ์ฐํฐ ํ์ฉ
- ๋ฑ๋ก์์ ํ์ฌ ๋ก๊ทธ์ธํ ์ฌ์ฉ์๊ฐ ๊ฐ์ ๋, ์ํ๋ผ์ด์ฆ์ destroy ๋งค์๋์ ๋ผ์ฐํฐ ํ์ฉ
- ๊ฐ์ฒด ์ ์ธ ํ ๊ฐ์ฒด์ ์ฌ์ฉ์ ์ ๋ณด ์ ์ฅ, ๊ฐ์ฒด ์์ ์บ์ฑ๋ ๊ฐ์ด ์์ผ๋ฉด ์กฐํ
- ์งํ ์ํจ
- ์บ์ ๋ฐ์ดํฐ์ ๋๋น๋ฐ์ดํฐ์ ๋ถ์ผ์น๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก ์ฒ๋ฆฌ๋จ์ด ์์
๊ธฐ๋ฅ ๋ช ์ธ
- ํ์๊ฐ์ ,ํ์ ํํด
- ๋ก๊ทธ์ธ ,๋ก๊ทธ ์์
- ํ๋ก์ํ๊ธฐ/์ธํ๋ก์ํ๊ธฐ
- ํด์ํ๊ทธ ์ถ๊ฐ/์์ -์ญ์ (๊ธ์์ ์ผ๋ก ๋์ฒด)/๊ฒ์
- ๊ธ ์ถ๊ฐ/๋ณด๊ธฐ/์ญ์ , ์์
- ์ด๋ฏธ์ง ์ ๋ก๋ , ์์ , ์ญ์
๊ธฐ์ ๋ช ์ธ ํจ์คํฌํธ ์ธ์ฆ ์ฒ๋ฆฌ - passport ํ๋ฉด ๋ฐ์ดํฐ ์ ์ก - axio ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ฒ๋ฆฌ - sequelize ์ด๋ฏธ์ง ์ฒ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ - multer
์น ๊ฐ๋ฐ ํจํด M: Model V: View C: Controller(router)
๊ธฐ๋ฅ ์ค๊ณ์ -๊ฒ์๊ธ ์ข์์/์ข์์ ์ทจ์ ๊ธฐ๋ฅ ์ค๊ณ
- ์ข์์ ๋ฒํผ์ ๋ง๋ ๋ค
- ์ฒ์์๋ ์๋ฌด์์ด ์๊ณ ๋๋ ์ ๋ ๋ฒํผ ์์ด ๋ฐ๋๋ค
- ์ข์์๊ฐ ๋์ด ์์ผ๋ฉด ๋ค์ ๋๋ ์ ๋ ์์ด ์ฌ๋ผ์ง๋ค
- ๋ด๊ฐ ์ข์์ ๋๋ ๋ ๊ฒ๋ง ์์ด ์น ํด์ ธ์ ๋์จ๋ค
- ๊ตฌํ ๋ฐฉํฅ ํ๋ก ํธ ์ค๊ณ
- if ์กฐ๊ฑด์ผ๋ก ์์ ๋ฃ์์ง ๋ง์ง๋ฅผ css๋ก ์กฐ์ ์ด ๋๋ค
- user์ likePost ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ฒ ํด์ ํ๋ฉด์์ ์ข์์๋ฅผ ๋ณด์ฌ์ค์ง ๋ง์ง ์ ํด์ค๋ค
- user ์ ๋ณด๋ฅผ ์๋ฒ๋ก ๋ณด๋ด์ค๋ค
- post ์ ๋ณด๋ ์๋ฒ๋ก ๋ณด๋ด์ค๋ค
- axio ๋ก ์๋ฒ๋ก ๋ณด๋ด์ค๋ค
- ์ข์์/์ข์์ ํด์ ๋ฅผ ๋ถ๊ธฐํด์ ์ฒ๋ฆฌ
๋ฐฑ์๋ ์ค๊ณ
- db ์ค๊ณ
- ์ข์์ ํ ์ด๋ธ์ ๋ง๋ ๋ค
- sequelize ๊ด๊ณ ์ค์ ์ ํ๋ฉด ์๋์ผ๋ก ๋ง๋ค์ด์ง๋ค
-
์ข์์ ์ปฌ๋ผ์๋ id, postId, userId, createdAt 3, ์ข์์๋ ์ฐ๊ด๊ด๊ณ๊ฐ post, user์ ๋ชจ๋ ์์ด์ผ ํ๋ค
-
router ์์ ํ๋ก ํธ์์ ์ค ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ค
- url์ ๋ฐ๋ผ like ์ like-cancel ์ด ๋ถ๊ธฐ๊ฐ ๋์๋ค
- data๋ฅผ ๋ฐ์์ผ๋ ํด๋น ๊ฒ์๊ธ์ ๋๋น์์ ์ผ์น๋๋ ์ข์์ ํ ์ด๋ธ์ userId, postId ๊ฐ ์ผ์น๋๋ ๋ก์ฐ๊ฐ ์๋์ง ํ์ธํ๋ค
- ์ข์์ ์์ผ๋ฉด ์๋ก์ด ์ข์์ row๋ฅผ ์ถ๊ฐํ๋ค
- ์ข์์ ์์ผ๋ฉด ๊ธฐ์กด ์ข์์๋ฅผ row์์ ์ญ์ ํ๋ค
- addLike, removeLike ๋ฅผ ํธ์ถํด์ ์ ์ด
- ์๋ฃ ์๋ต์ ํ๋ก ํธ์ ์๋ ค์ค๋ค
- ํ๋ก ํธ์์๋ ์๋ก๊ณ ์นจ์ ํตํด ๋ผ์ดํฌ์ํ๋ฅผ ๊ฐฑ์ ํ๋ค