๋ชจ๋ํ์ ๋ํ ๊ฐ๋ ฅํ ์๊ตฌ๊ฐ ์์ต๋๋ค.
1 ๋จ๊ณ ๋ชจ๋ธ ๋ง ์๋ค๋ฉด ๋ชจ๋ํ์ ๋์์ด๋์ง ์๋ ๋ชจ๋ธ์ด ๋ง์ ์ ์์ต๋๋ค.
๋ชจ๋ธ ๋ชจ๋ํ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด์ญ๋๊น?
์ฌ์
์ ์ด๋ ์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ฑ์๋ 5 ๊ฐ์ ์๋์ ์ผ๋ก ๋
๋ฆฝ์ ์ธ ์ ํ์ด ์๊ณ ๊ฐ ์ ํ์๋ ์๋์ ์ผ๋ก ๋
๋ฆฝ์ ์ธ ๋ชจ๋ธ์ด ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ๋ชจ๋ธ์ ๋จ์ผ ๋ ์ด์ด ๋ง ๋งค์ฐ ๋น์ข์ต๋๋ค.
๋ฌผ๋ก ๋ค์ ์คํ์ด์ค์์๋ ๊ตฌ๋ถํ ์ ์์ง๋ง ํ์ฌ ๋ค์ ์คํ์ด์ค๋ ์ํ ์ด๋ฆ์ผ๋ก ์ง์ ์ฌ์ฉ๋ฉ๋๋ค ( .
์ ๊ฐ์ ํน์ ๊ธฐํธ๋ ์ฌ์ฉํ ์ ์์).
๋ชจ๋ธ์ ๋จ์ผ ๋ ์ด์ด ๋ง ๋งค์ฐ ๋น์ข์ต๋๋ค.
์ดํดํ์ง ๋ชปํจ
@codering
๋ฌธ์๋ฅผ ๋ณด๋ฉด ๋ชจ๋ธ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ํ๋์ ๋ ์ด์ด ๋ง ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ชจ๋ธ์ด ๋ง์ ๊ฒฝ์ฐ ๋์ผํ ์ด๋ฆ์ ๋ค์ ์คํ์ด์ค ์ถฉ๋์ด์์ ์ ์์ต๋๋ค (ํนํ ๋๊ท๋ชจ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์ผ๋ถ ๋ชจ๋ธ์ ์๋ฏธ๊ฐ ๋์ผ ํจ). ์ด๋ฒ์๋ ๋ค์ ์คํ์ด์ค์ ์์ด์ผ ํ ์๋ ์์ต๋๋ค., ์ฃผ๋ก ์ ๋์ฌ๋ฅผ ๋ชจ๋ ๊ฐ์ ๊ตฌ๋ถ์ผ๋ก ์ถ๊ฐํฉ๋๋ค.
๊ทธ๋์ ๋ ๋์ ๋ชจ๋ธ ์ค์ฒฉ ๋๋ ๋ชจ๋ํ ์ฒด๊ณ๊ฐ ์๋์ง ๋ฌป๊ณ ์ถ์ต๋๋ค.
๋๋ฌด ๊น์ํ ์ํ๋ก ์ค์ฒฉํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์์ต๋๋ค. ๊ทธ๋๋ ๋ชจ๋ธ์ ์ค์ฒฉํ๋ฉด ๋ ๋ณต์กํด์ง๋ฉฐ ๋์์ธ์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ง๋ฌธ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ๊ฐ๋จํ ๋ฐ๋ชจ๋ฅผ ํด์ฃผ์ค ์ ์๋์?
์ด ์ง๋ฌธ์ ๋๋ต์ ์ผ๋ก ์ดํด๋์์ต๋๋ค. ์ด์ ๋ ผ์ํ์ต๋๋ค. ์ฃผ๋ก ๋ชจ๋ธ์ ์๋ฏธ์ ๊ดํ ๊ฒ์ ๋๋ค. ๋ ๊ฐ์ง ๊ฒฝํฅ์ด ์์ต๋๋ค : ๊ด์ ์ ๋ฐ๋ฅด๊ณ ๋น์ฆ๋์ค ์ฃผ์ฒด๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ ๋๋ค.
ํ์ฌ์ ๋์์ธ ๊ด์ ์์๋ ๊ฐ ๋ชจ๋ธ์ ์ํ๊ฐ ๊ฒฉ๋ฆฌ๋์ด ์๊ณ ๋ชจ๋ธ์ ๋ชจ๋ ๊ฒ์ด ์์ฒด ์ํ๋ฅผ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์๋ณด๊ธฐ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ๋ ์ ์ ํด์ผํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ชจ๋ธ์ ์๋ฏธ๋ ๋ทฐ ๋ชจ๋ธ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ชจ๋ธ์์ ์ฌ์ฉํ๋ ๋น์ฆ๋์ค ์ถ๊ฐ, ์ญ์ , ํ์ธ ๋ฐ ์์ ํจ๊ณผ๋ ์ฌ์ฉ๋๋ ๋ชจ๋ ๋ชจ๋ธ์ ์กด์ฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ณด๊ธฐ ABC, ๋น์ฆ๋์ค ํญ๋ชฉ XYZ๊ฐ ์์ต๋๋ค.
A๋ XY์ CRUD๋ฅผ ์ฌ์ฉํฉ๋๋ค.
B๋ YZ์ CRUD๋ฅผ ์ฌ์ฉํฉ๋๋ค.
C๋ XZ์ CRUD๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฐ๋ฆฌ์ ๋ชจ๋ธ์ ABC ๋ทฐ๋ฅผ ๋ฐ๋ฅด๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ ๊ทธ ์์ ์ฝ๊ฐ์ ์ค๋ณต ํจ๊ณผ๊ฐ ์์ด์ผํฉ๋๋ค. ์๋ฅผ ๋ค์ด Y๋ AB์ ๋์์ ์กด์ฌํ๊ณ ์ฝ๋์ ์ค๋ณต์ด์์ ์ ์์ต๋๋ค. ๋ ๋ค๋ฅธ ๊ด์ ์์ AB ์์ฒด์์ Y๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ฌ์ฌ์ฉ์ ๊ณ ๋ คํด์๋ ์๋๋ฉฐ, ์ฌ์ฌ์ฉ ๋ ํธ์ถ ํ๋ก์ธ์ค๋ ๋ค์ ๋จ๊ณ, ์ฆ ์๋น์ค์ ๋ฐฐ์น๋์ด์ผํฉ๋๋ค.
๋ฐ๋ผ์ ์กฐ์ง ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
a
b
c
service
x
y
z
๊ทธ๋ฆฌ๊ณ modelA์ ๊ตฌ์กฐ :
{
effects: {
*x() {
yield call(serviceX);
},
*y() {
yield call(serviceY);
}
}
}
modelB์ ๊ตฌ์กฐ :
{
effects: {
*y() {
yield call(serviceY);
},
*z() {
yield call(serviceZ);
}
}
}
๋์ค์ ์ข ๋ ๋น์ฆ๋์ค ์งํฅ์ ์ธ ๋ฐ๋ชจ๋ฅผ ์์ฑํ๊ณ ์๋๋ฆฌ์ค ์ฌ์ฉ์ ๋ํ ๋ช ๊ฐ์ง ์ ์์ ํ ๊ฒ์ ๋๋ค.
@xufei ๋
@xufei ๋ฐ๋ชจ์์ ๋ฐฐ์ธ ์ ์์ต๋๊น?์ต๊ทผ์ด๊ฒ ๊ฑฑ์ ๋ผ
@xufei ๋ฐ๋ชจ์ ์๋์?
@xufei ๋ฐ๋ชจ์ ์๋์?
๋น์ฆ๋์ค ๋ชจ๋ธ๊ณผ ๋ทฐ ๋ชจ๋ธ์ ๋ชจ๋ ๊ฐ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ์ฌ ์ฌ์ฉ์๋ ๊ธ๋ก๋ฒ ์ฒ๋ฆฌ๋ฅผ์ํ ์ฌ์ฉ์ ๋ชจ๋ธ์ ๊ฐ์ง ์ ์์ต๋๋ค.
๋ค๋ฅธ ๊ตฌ์ฑ ์์์ ํ์ฌ ์ฌ์ฉ์ ์ ๋ณด๊ฐ ํฌํจ ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ๋ชจ๋ธ์ ์ง์ ์ฐ๊ฒฐํ๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค.๋น์ฆ๋์ค ์๊ตฌ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค.
@ liSong5713 ์ฌ์ฉ์ ๋ชฉ๋ก์ ์ฌ์ฉ์ ์ธ๋ถ ์ ๋ณด ๋ชฉ๋ก์ ํด๋ฆญํ๊ณ ์ฌ์ฉ์ ์ธ๋ถ ์ ๋ณด๋ฅผ ํค ๊ด๋ฆฌ์ ํด๋ฆญํ์ฌ ๋์ผํ ์ฌ์ฉ์ ๋ชจ๋ธ์ ๋ฐฐ์นํด์ผํ๋์ง ์ฌ๋ถ
@lwbGH ๋ชจ๋ธ์ ์ฑ
์์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ์ฌ์ฉ์ ๋ชจ๋ธ์ ํ์ฌ ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์์ ๊ธฐ๋ณธ์ ์ด๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ ๋ณด๊ฐ ๋ ์ ์์ต๋๋ค. ์ฌ์ฉ์์ ์์
๋ก๊ทธ์ ๊ฐ์ ์ฌ์ฉ์์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ ๊ฒฝ์ฐ์ด ์ ๋ณด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ชจ๋ธ๊ณผ๋ ์์ ํ ๋ค๋ฆ
๋๋ค. ๋ชจ๋ธ ๊ตฌ๋ถ์ด ์กฐ๊ธ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ ๋ฒจ ์ปดํฌ๋ํธ์ ์ํ ๊ณต์ ์ ๋ . ๋จ์ ํ์ด์ง๊ฐ ํ์ด์ง ๋ ๋ฒจ ๋ชจ๋ธ์ ํด๋นํ๋ฉด ๋ณต์กํฉ๋๋ค.
๋ฌผ๋ก ๋ค์ ์คํ์ด์ค์์๋ ๊ตฌ๋ถํ ์ ์์ง๋ง ํ์ฌ ๋ค์ ์คํ์ด์ค๋ ์ํ ์ด๋ฆ์ผ๋ก ์ง์ ์ฌ์ฉ๋ฉ๋๋ค (
.
์ ๊ฐ์ ํน์ ๊ธฐํธ๋ ์ฌ์ฉํ ์ ์์).
. ํค๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ _๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ฌ ๋ค์ ์คํ์ด์ค๊ฐ ์ ํ๋์ด ์์ต๋๋ค. ๋ชจ๋ธ์ ๋ทฐ ๋ฐ ๋น์ฆ๋์ค๋ณ๋ก ๋ชจ๋๋ก ๋๋ ์ ์์ง๋ง ๋ค์ ์คํ์ด์ค๋ "ํด๋ _ ํ์ผ ์ด๋ฆ"์ ์ํด ์ ํ๋ฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ์ง๋ฌธ์ ๋๋ต์ ์ผ๋ก ์ดํด๋์์ต๋๋ค. ์ด์ ๋ ผ์ํ์ต๋๋ค. ์ฃผ๋ก ๋ชจ๋ธ์ ์๋ฏธ์ ๊ดํ ๊ฒ์ ๋๋ค. ๋ ๊ฐ์ง ๊ฒฝํฅ์ด ์์ต๋๋ค : ๊ด์ ์ ๋ฐ๋ฅด๊ณ ๋น์ฆ๋์ค ์ฃผ์ฒด๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ ๋๋ค.
ํ์ฌ์ ๋์์ธ ๊ด์ ์์๋ ๊ฐ ๋ชจ๋ธ์ ์ํ๊ฐ ๊ฒฉ๋ฆฌ๋์ด ์๊ณ ๋ชจ๋ธ์ ๋ชจ๋ ๊ฒ์ด ์์ฒด ์ํ๋ฅผ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์๋ณด๊ธฐ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ๋ ์ ์ ํด์ผํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ชจ๋ธ์ ์๋ฏธ๋ ๋ทฐ ๋ชจ๋ธ์ ๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ชจ๋ธ์์ ์ฌ์ฉํ๋ ๋น์ฆ๋์ค ์ถ๊ฐ, ์ญ์ , ํ์ธ ๋ฐ ์์ ํจ๊ณผ๋ ์ฌ์ฉ๋๋ ๋ชจ๋ ๋ชจ๋ธ์ ์กด์ฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ณด๊ธฐ ABC, ๋น์ฆ๋์ค ํญ๋ชฉ XYZ๊ฐ ์์ต๋๋ค.
A๋ XY์ CRUD๋ฅผ ์ฌ์ฉํฉ๋๋ค.
B๋ YZ์ CRUD๋ฅผ ์ฌ์ฉํฉ๋๋ค.
C๋ XZ์ CRUD๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฐ๋ฆฌ์ ๋ชจ๋ธ์ ABC ๋ทฐ๋ฅผ ๋ฐ๋ฅด๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ ๊ทธ ์์ ์ฝ๊ฐ์ ์ค๋ณต ํจ๊ณผ๊ฐ ์์ด์ผํฉ๋๋ค. ์๋ฅผ ๋ค์ด Y๋ AB์ ๋์์ ์กด์ฌํ๊ณ ์ฝ๋์ ์ค๋ณต์ด์์ ์ ์์ต๋๋ค. ๋ ๋ค๋ฅธ ๊ด์ ์์ AB ์์ฒด์์ Y๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ฌ์ฌ์ฉ์ ๊ณ ๋ คํด์๋ ์๋๋ฉฐ, ์ฌ์ฌ์ฉ ๋ ํธ์ถ ํ๋ก์ธ์ค๋ ๋ค์ ๋จ๊ณ, ์ฆ ์๋น์ค์ ๋ฐฐ์น๋์ด์ผํฉ๋๋ค.
๋ฐ๋ผ์ ์กฐ์ง ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ modelA์ ๊ตฌ์กฐ :
modelB์ ๊ตฌ์กฐ :
๋์ค์ ์ข ๋ ๋น์ฆ๋์ค ์งํฅ์ ์ธ ๋ฐ๋ชจ๋ฅผ ์์ฑํ๊ณ ์๋๋ฆฌ์ค ์ฌ์ฉ์ ๋ํ ๋ช ๊ฐ์ง ์ ์์ ํ ๊ฒ์ ๋๋ค.