-
Notifications
You must be signed in to change notification settings - Fork 11
Optimistic Update
submit๋ฒํผ์ ๋๋ฌ์ ์๋ก์ด ์ ๋ณด๊ฐ ์ฌ์ฉ์์๊ฒ ๋ณด์ด๊ฒ ๋๋๋ฐ ์ดํ์ ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด์ ์ด ์ ๋ณด๊ฐ Drop๋๋ฉด ์ฌ์ฉ์ ๊ฒฝํ์ ์์ฃผ ๋ณ๋ก์ผ ๊ฒ ๊ฐ๋ค. (Submit ๋๋ฌ์ ๋ค์ด๊ฐ ๊ฑธ ๋์ผ๋ก ๋ดค๋๋ฐ ๋์ค์ ๋ค์ ์๋ชป ๋ค์ด๊ฐ๋ค๊ณ ํ๋ ๊ฒ)
์ฐจ๋ผ๋ฆฌ ์ฝ๊ฐ ๋นจ๋ฆฌ ๋ณด์ฌ์ฃผ๋ ค๊ณ Drop๋ ๊ฐ๋ฅ์ฑ์ ๊ฐ๋ ๊ฒ ๋ณด๋ค ์ด๋ฐ ํ์์ ๋ณด์ผ๋๋ง๋ํ UI๋ก Loding ํ๋ฉด์ ๊ตฌ์ฑํ๋ฉด ์ผ๋ฐ ๋ก๋ฉ ํ์ด์ง๋ณด๋ค ์ฌ์ฉ์ ๊ฒฝํ์ด ๋ ์ข๋ค๊ณ ํ๋ค. ์๋น์ค ํ๋ ๊ด์ ์์๋ ์ด๊ฒ ๊ฐ์ฅ ์์ ํ ์ ํ์ธ ๊ฒ ๊ฐ๋ค.
๊ทธ๋๋ ์ด๋ ๊ฒ Submit์ ํ๋๋ฐ Drop์ด ๋ ๊ฐ๋ฅ์ฑ์ ๊ต์ฅํ ์ ์ด์ ๋งค์ฐ ๊ฐ๋์ฉ Drop๋๋ ๊ฑด ์ฌ์ฉ์๊ฐ ๋ ๊ฐ์์ค ์์ค์ด์ง ์์๊น? Drop๋๋ ๊ฑธ ๊ฐ์ํ๋ฉด ๋์๋๊ฒ ๋น ๋ฅด๊ฒ ๋์ํ๋ ์ฑ์ ๋ง๋ค ์ ์์ด์ ๊ณ ๋ฏผ์ด ๋๋ค.
๋ฐ์ดํฐ๊ฐ ์ ๋๋ก ๋ค์ด๊ฐ๋์ง๋ฅผ ๋ญ๋ก ํ๋จํ ๊น (status code vs ์ค์ ๋ก GETํด์ ํ์ธ)
Status Code๋ก ํ์ธํ๋ ๋ฐฉ์
๊ทธ๋ฆผ์์ 4๋ฒ์ด ์ผ์ด๋์ง ์๊ณ 3๋ฒ์์ code๋ฅผ ํ์ธ ํ ์ ๋๋ก ๋ค์ด๊ฐ๋ค๊ณ ํ๋ฉด ๋ ๋๋งํ ๊ฑธ ๊ทธ๋๋ก ๋๊ณ ์๋ฌ์ฝ๋๊ฐ ๋ฌ๋ค๋ฉด ๋ ๋๋งํ ๊ฑธ drop์ํค๋ ๋ฐฉ์์ด๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ค์ ๋ก GETํ๋ ๊ฒ ๋ณด๋ค ์๋ฌ ์ Drop๋๋ ์์ ์ ์๋น๊ธธ ์ ์๋ค. ๋ GET์ ํด์ค๋ ํธ๋ํฝ์ ์ค์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ์ ์ธ ์ธก๋ฉด์์๋ ์ด์ ์ด ์๋ค.
ํ์ง๋ง ์ฝ์ ์ด ์ ์์ ์ผ๋ก๋ ์ผ์ด๋ฌ์ง๋ง ์ด๋ฐ ๊ณผ์ ์ค๊ฐ์ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ DB์ ๊ฐ์ ๋ฃ๊ฑฐ๋ ํด์ ํ์ฌ ์ฌ์ฉ์๊ฐ ๋ณด๊ณ ์๋ ์ํฉ๊ณผ DB์ ์ํฉ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค๋ ๋จ์ ์ด ์๋ค.
์ค์ ๋ก GETํด์ ํ์ธ
๊ทธ๋์ ํ ํ์ด์ง๋ฅผ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๊ณต์ ํ๊ณ , ์๊ฐ ์๊ฐ ์ ๋ฐ์ดํธ๊ฐ ์ค์ํ๋ค๋ฉด ์ค์ ๋ก GETํด์ ํ์ธํ๋ ๋ฐฉ์๋ ์ถฉ๋ถํ ๊ณ ๋ คํด ๋ณผ๋ง ํ ๊ฒ ๊ฐ๋ค. ๊ฑฐ์ ์ค์๊ฐ์ฑ์ด ๋ณด์ฅ๋์ผ ํ๋ค๋ฉด ์ด ๋ฐฉ๋ฒ ๋ง๊ณ ์น์์ผ ๋ฑ์ ์ฌ์ฉํด์ผ ํ๊ฒ ์ง๋ง ๊ทธ์ ๋๊น์ง ์ค์๊ฐ์ฑ์ ํ์์์ง๋ง ์ด๋์ ๋ ๋น๋ฒํ๊ฒ ์ ๋ฐ์ดํธ๊ฐ ์ผ์ด๋์ผ ํ๋ค๋ฉด ์ด ๋ฐฉ์์ ๊ณ ๋ คํด ๋ณผ ์ ์์ ๊ฒ ๊ฐ๋ค.
- API ์์
- API ์ค๊ณ
- DB ๋ชจ๋ธ๋ง
- ๊ธฐ์ ์ ์ ์ด์
- Feature list
- ํ๋ฉด ๋ช ์ธ์
- ํ๋ก์ ํธ ๊ตฌ๋ ๋ฐฉ๋ฒ
- ๊ธฐ์ ํน์ฅ์
- ์ฃผ์ ๊ธฐ๋ฅ ์๊ฐ
- Optimistic Update
- ์ํ๊ด๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ ๊น
- Atomic Design ์ค๊ณ
- Mongoose Atomic Update ๋ฐฉ์์ ์ฐพ์์
- MobX Best Practices๋ ์ด๋์
- ๊ฑฐ๋๋ด์ญ ์คํ ์ด ๊ด๋ฆฌ
- user-account DB๊ด๊ณ ์์
- ์๋ฆผ ๊ธฐ๋ฅ ๊ตฌํ
1 ์ฃผ์ฐจ
- ๋ฐ์ผ๋ฆฌ์คํฌ๋ผ
- ํ๊ณ
2 ์ฃผ์ฐจ
- ๋ฐ์ผ๋ฆฌ์คํฌ๋ผ
- ํ๊ณ
3 ์ฃผ์ฐจ
- ๋ฐ์ผ๋ฆฌ์คํฌ๋ผ
- ํ๊ณ
4 ์ฃผ์ฐจ
5 ์ฃผ์ฐจ
- ๋ฐ์ผ๋ฆฌ์คํฌ๋ผ
- ํ๊ณ