๋๋ FAQ ์์ฑ์ ์ด๊ธฐ grunt ์์ ์ ์ํํ์ต๋๋ค. @gaearon ์ด ์ฝ๊ฐ์ ํธ์ง์ ํ๊ณ TOC์ ์งง์ ์ง๋ฌธ ๋งํฌ๋ฅผ ์ถ๊ฐํ๋๋ฐ ์ง๊ธ๊น์ง ํ๋ฅญํ ๋ฆฌ์์ค์์ต๋๋ค. ๊ทธ ์ดํ๋ก @gaearon ์ด ๋ง์ ํ ๋ก ๊ณผ ๊ธฐ์ฌ๋ฅผ
๊ธฐ์กด ์ง๋ฌธ์ ์ ๋ฐ์ดํธ๋ฅผ ์ถ๊ฐํ์ง๋ง ํ์ฌ ๋ค๋ฅธ ์์ ์ ์ง์คํ๊ณ ์์ต๋๋ค. "์" ํญ๋ชฉ์ ์์ฑํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ ์ฌ๋์ด ์์ผ๋ฉด ์ ๋ณด, ์ฝํ ์ธ ๋ฐ ํธ์ง๊ณผ ๊ด๋ จํ์ฌ ๊ธฐ๊บผ์ด ํ๋ ฅํ๊ฒ ์ต๋๋ค!
์์ฃผ๋ฌป๋์ง๋ฌธ์ ์๋์ง๋ง ์๋ก์ด ์ด์๋ฅผ ์ ๊ธฐํ๊ธฐ ๋ณด๋ค๋ ์ฌ๊ธฐ์ ๋๋ง์ ๋ฉ๋ชจ๋ฅผ ๋จ๊ธธ๊ฒ์. "Beyond CombineReducers" ํ์ด์ง์๋ state.posts.posts
์์์ ๊ฐ์ด "์ด์ค ์ค์ฒฉ ์ํ"์ ๋ํ ์ธ๊ธ์ด ์์ด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํค๋ฅผ ์ ์ํ๋ ์ด๊ธฐ ์ํ์ ํค๊ฐ ์ง์ ๋ ์ฌ๋ผ์ด์ค ๋ฆฌ๋์ ๋๋ฌธ์
๋๋ค. . ํ์คํ ์ผ๋ฐ์ ์ธ ์ค์์
๋๋ค.
applyMiddleware
๊ฐ dispatch
ํด๋ก์ ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?combineReducers
์ฌ๊ท/์ ํ?mapDispatch
์์ getState
๋๋ mapState
๋ฐํ ๊ฐ์ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
"ํ๋์ ์ํ ํธ๋ฆฌ"๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๊น?
๋ํ ์ด๊ฒ์ ๋์ค์ ์ด๊ณ ๋ช ํํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ ์ด๋ฏธ์ง๋ฅผ ๋ณด์๊ณ ๊ทธ๊ณณ์์ ์ผ์ด๋๋ ์ผ์ ๋ถ๋ถ์ ์ผ๋ก๋ง ๋ณด๊ณ ์์ต๋๋ค. ์๋๋ฉด ์ฝ๋๋ฅผ ๋ณด๋ ์๋๋ ์ค๋ช ์ ์ ์ดํดํ์ง ๋ชปํ๊ณ ์์ต๋๋ค.
"dispatch" ๋ฐ "reducing"์ด ์ค์ ๋ก ์์ ๊ตฌ์ฑ ์์ ์ํ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ์ ์ธํ๊ณ "์ฐ๊ฒฐ๋ ์ ์ฌ" ๊ตฌ์ฑ ์์๋ฅผ ๋ ๋๋งํ๋ ค๋ ์๋์ ๋๊น?
๋ํ ํด๋น ์ค๋ํซ์ store.replaceReducer()
์ ์ค์ ์ ์ฅ์๋ ์ฌ์ฉ์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ์๊ธฐ๋ฅผ "๋ถ๋ฆฌ"ํ๋ ๊ฒ์ ๋ํ ์ฝ๊ฐ์ ์ดํด๊ฐ ์์ต๋๋ค. ์์ ์ ๋ฆฌ๋์ ๊ตฌ์กฐ ์ปจํ
์คํธ ์ธ๋ถ์์ "๋ฆฌ๋์์ ๊ฐ์" ๊ธฐ๋ฅ์ ์ ์ฉํ ์ ์๋ค๋ ๋ป์
๋๊น?
๊ฐ๋ฅํ ์๋ก์ด FAQ ์น์
๋๋ ๋์์ธ ๋ฌธ์: "Redux๊ฐ ์๋ ๊ทธ๋๋ก ์ค๊ณ๋ ์ด์ ". ์์ ์ฃผ์ : store.subscribe()
์ ์ก์
์ด๋ ์ํ๊ฐ ์ธ์๋ก ํฌํจ๋์ง ์๋ ์ด์ , ๋ฏธ๋ค์จ์ด๊ฐ ์ค์ฒฉ ํจ์์ธ ์ด์ ๋ฑ
๊ทธ ์ด๋ฏธ์ง๋ฅผ ๋ณด์๊ณ ๊ทธ๊ณณ์์ ์ผ์ด๋๋ ์ผ์ ๋ถ๋ถ์ ์ผ๋ก๋ง ๋ณด๊ณ ์์ต๋๋ค. ์๋๋ฉด ์ฝ๋๋ฅผ ๋ณด๋ ์๋๋ ์ค๋ช ์ ์ ์ดํดํ์ง ๋ชปํ๊ณ ์์ต๋๋ค.
"dispatch" ๋ฐ "reducing"์ด ์ค์ ๋ก ์์ ๊ตฌ์ฑ ์์ ์ํ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ์ ์ธํ๊ณ "์ฐ๊ฒฐ๋ ์ ์ฌ" ๊ตฌ์ฑ ์์๋ฅผ ๋ ๋๋งํ๋ ค๋ ์๋์ ๋๊น?
๋ํ ํด๋น ์ค๋ํซ์ store.replaceReducer()์ ์ค์ ์ ์ฅ์ ๋๋ ์ฌ์ฉ์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ์๊ธฐ๋ฅผ "๋ถ๋ฆฌ"ํ๋ ๊ฒ์ ๋ํ ์ฝ๊ฐ์ ์ดํด๊ฐ ์์ต๋๋ค. ์์ ์ ๋ฆฌ๋์ ๊ตฌ์กฐ ์ปจํ ์คํธ ์ธ๋ถ์์ "๋ฆฌ๋์์ ๊ฐ์" ๊ธฐ๋ฅ์ ์ ์ฉํ ์ ์๋ค๋ ๋ป์ ๋๊น?
์์ด๋์ด๋ (prevState, action) => nextState
์ redux ์ํคํ
์ฒ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ์ ์ฉ ์ ์ฅ์ ๊ฐ์ฒด๊ฐ ์๋ redux ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํ์ง ์๋ค๋ ๊ฒ์
๋๋ค. React ๊ตฌ์ฑ ์์ ์ํ๋ ๊ตฌ์ฑ ์์์ ๋ก์ปฌ์ธ ์ ์ฅ์๊ฐ ๋ ์ ์์ผ๋ฉฐ React setState๋ฅผ ํตํด ์ํ ์
๋ฐ์ดํธ๋ฅผ ์ํํ์ฌ ์ง์ ๋์คํจ์น๋ฅผ โโ๊ตฌํํฉ๋๋ค.
๋ค, ์ ๊ฐ ๋ณด๊ณ ์๊ฐํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์ค์ ๋ก store.replaceReducer()
ํธ์ถํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ๋ฅผ ์ ๋ง๋ก ๋์ง ๊ฒ์ "๋ถ๋ฆฌ" ๋ฌธ๊ตฌ์์ต๋๋ค.
์ก์ ์์ฑ์์ ๋ฆฌ๋์ ๊ฐ์ ๋ ผ๋ฆฌ ๋ถํ ๊ณผ ๊ด๋ จ
๋ด๊ฐ ์์ฃผ ๋ณด๋ ๋ ๋ค๋ฅธ ์ง๋ฌธ์ ์ธ๋ถ์์ ์ฌ์ฌ์ฉํ ์ ์๋ redux ๋ชจ๋(์ก์ ์์ฑ๊ธฐ, ๊ฐ์๊ธฐ, ๊ตฌ์ฑ ์์)์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฃผ๋ก ๊ฐ์ ํ์ด์ง์ ๊ฐ์ ์ ํ์ ์ฌ๋ฌ ๋ชจ๋์ด ์์ ๋ ์์ ์ด๋ฆ ์ถฉ๋์ ํผํ๋ ๋ฐฉ๋ฒ๊ณผ createStore์์ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ์๊ธฐ ์ด๋ฆ์ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์, FAQ์ "๋์์ธ ๊ฒฐ์ " ์น์ ์ด ๋ฐ๋์ ํ์ํฉ๋๋ค.
@reactjs/redux์ ๋ํ ์ง๋ฌธ: FAQ๋ฅผ ์ฃผ์ ๋ณ๋ก ๋ณ๋์ ํ์ด์ง๋ก ์ ์ฌ์ ์ผ๋ก ๋ถํ ํ๋ ๊ฒ์ ๋ํด ๋ ผ์ ์ค์ ๋๋ค. ํ์ฌ ํ ํ์ด์ง๊ฐ ๊ฝค ๊น๋๋ค. ์ด๋ค ์๊ฒฌ?
๋ชฉ์ฐจ์ ์๋ ๋ชจ๋ ์ง๋ฌธ์ ๋ํ ๋งํฌ ๋ชฉ๋ก์ด ์๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์ ์งํ๋ค๋ฉด ์ฃผ์ ๋ฅผ ๋ค๋ฅธ ํ์ด์ง๋ก ๋๋๋ ๊ฒ์ ๋ํ ๋จ์ ์ด ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์, ์ ๋ FAQ.html์ ์์ ํ ๋ชฉ์ฐจ๋ฅผ ๋ณด๊ดํ๊ณ ๊ฐ ํ์ด์ง์ ํญ๋ชฉ์ ๋ํ ๋ณ๋์ ๋ชฉ์ฐจ๋ฅผ ํฌํจํ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ๋ค์ ์ ๋ฆฌํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์๋ง๋ ๊ด๋ จ ์ง๋ฌธ์ ๋ํ Google ๊ฒ์์ ์ํํ๋ ์ฌ๋์๊ฒ ์ต์์ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
์ด ์์ ์ ์์ํฉ๋๋ค. ๊ณํ์ ๊ณ์ ์งํํ์ฌ ํ์ฌ ๋ฒ์ฃผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถํ ํ ๋ค์ ๊ธฐ์กด ์ง๋ฌธ์ ์ ๋ฐ์ดํธํ๊ณ ๋ง์ง๋ง์ผ๋ก ์ ์๋ฃ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋๋ค.
์คํ ์ด ์ธํธ์์ ๋ํด ๋ ์๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋ ๋ถํ ์ ์ํ ์ฃผ์ ๊ฐ๋ฅํ ๋ฆฌ๋์. ๋ ๋ค์ ์๋ ๋งค์ฐ ์ ํ์ ์ด๋ฉฐ ๋ฐ๋ฅด๊ธฐ ์ด๋ ต์ต๋๋ค.
@๋ฉ๋๋ก์ค : ํ . ๋ ๋ค ํฅ๋ฏธ๋ก์ด ์ฃผ์ ์ด์ง๋ง "์์ฃผ ๋ฌป๋ ์ง๋ฌธ"์ ๊ทธ๋ค์ง ๋ง์ง ์์ ์ ์์ต๋๋ค.
๋ช ์ฃผ ์ ์ Twitter์์ ์คํ ์ด ์ธํธ์์ ๋ํ ์ข์ ํ ๋ก ์ด ์์์ต๋๋ค: https://twitter.com/acemarke/status/778813095221170176 . ๊ธฐ๋ณธ์ ์ผ๋ก, ๊ทธ๊ฒ๋ค์ ๊ฑฐ์ ํ์ ์ ์ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ์ง๊ธ ๋ฌธ์์์ ๋ฐ ๊ณ ์์ ์ผ๋ก ํธ์ถ๋์ง ์์ผ๋ฉฐ ๊ด๋ จ ๋ด๋ถ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํ ์์ ์ด ์งํ ์ค์ ๋๋ค. #1813์ ํ ๋ก ์์ ๊ทธ๋ค์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ๊ด๋ จ ์ฌ์์ ๋ฌธ์ ๋ #1702์ ๋๋ค.
์ฃผ์ ๊ฐ๋ฅํ ๊ฐ์๊ธฐ์ ๊ฒฝ์ฐ https://github.com/mxstbr/react-boilerplate ๋ฐ https://github.com/davezuko/react-redux-starter-kit ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด๊ณ ์ถ์ ์ ์์ต๋๋ค. ๋ด Redux ์ ๋์จ ๋ชฉ๋ก ์๋ ๊ด๋ จ์ด ์์ ์ ์๋ ๊ตฌ์ฑ ์์ ์ํ ๋ฐ ๊ฐ์๊ธฐ ๊ด๋ฆฌ ์ ๊ด๋ จ๋ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค.
์ค๋ ์ข์ ์ง์ . FAQ๋ฅผ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ๋ณ๋์ ํ์ด์ง๋ก ๋๋๊ณ ๊ธฐ์กด ์ง๋ฌธ์ ๋ํด ๊ณํ๋ ์ ๋ฐ์ดํธ์ ์ฝ ์ ๋ฐ์ ์ํํ์ต๋๋ค. ๋๋จธ์ง๋ ๋ด์ผ ๋ ธ๋ ค๋ด์ผ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ "split+update" ๋ถ๋ถ์ด ์ด์ ์์ต๋๋ค(#2009 ์ฐธ์กฐ).
๋๋ ์๋ก์ด ์ง๋ฌธ์ ๋ค๋ฃจ๊ธฐ ์ ์ ํ๊ณ ์ถ์ ๋ช ๊ฐ์ง ๋ค๋ฅธ ์ผ์ด ์์ผ๋ฏ๋ก, ์ง๊ธ์ ์ด๊ฒ์ ์ด์ด ๋๊ฒ ์ต๋๋ค. ์๋ง ๋ช ์ฃผ ํ์ ๋ค์ ๋์์ฌ ๊ฒ์ ๋๋ค.
์ด ์ค ์ผ๋ถ๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ด ๋์ด ๊ธฐ์ฉ๋๋ค. ์์ํ๊ธฐ์ ๊ฐ์ฅ ์ข์ ์ฅ์์ ๋ํ ์๊ฐ์ด ์์ต๋๊น?
์๋ ํ์ธ์, ๊ฐ์ฌํฉ๋๋ค!
์ค์ ๋ก ์ง๋ฌธ์ ๋ฐ๋ ๋น๋์ ๊ด๋ จํ์ฌ ์๋ก์ด "๋์์ธ ๊ฒฐ์ " ๋ฒ์ฃผ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ์ ํ ๊ฒ์ ๋๋ค. ์ฆ, ๊ทธ๊ฒ์ ๋ํ ์๋นํ ๊ธฐ์ ์ ์ธ ์ธก๋ฉด์ผ๋ก ๋ฐ๋ก ์ด๋ํฉ๋๋ค.
์์ํ๊ธฐ ์ฌ์ด ๊ณณ์ "์ผ๋ฐ" ์น์ ์ ๋ช ๊ฐ์ง ์๋ก์ด ์ง๋ฌธ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. ํ์ฌ ์ ๊ฐ ๋์ดํ ์์ด๋์ด๋ "Redux๋ ์ธ์ ์ฌ์ฉํด์ผ ํฉ๋๊น?", "Redux๋ฅผ ์ฌ์ฉํ ๋์ ์ฅ๋จ์ ์ ๋ฌด์์ ๋๊น?", "Redux๋ [Angular/Backbone/MobX]์ ์ด๋ป๊ฒ ๋น๊ต๋ฉ๋๊น?"์ ๋๋ค.
์ฆ, ๋๊ธธ์ ๋๋ ํน์ ์ง๋ฌธ์ด ์๋ ๊ฒฝ์ฐ์๋ ์๋ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ง์ถ๋ ค๊ณ ํ๋ ํน์ ๊ธฐํ์ ์์ผ๋ฉฐ FAQ์์ ์ค์ ๋ก ๋ค๋ฃจ๊ณ ์ถ์ ์ง๋ฌธ๋ค์ด ๋ง์ด ์์ต๋๋ค.
์ด๋ฌํ ๋ต๋ณ์ด ์ด๋ค ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ์ผ ํ๋์ง, ํธ์ง ๋ฐ ์ถ๊ฐ ์ ๋ณด ๋งํฌ์ ๋ํด ํจ๊ป ์ผํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ์ ๋ ์ฃผ๋ก ํ์ฌ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์๋ฆฌ์ฆ๋ฅผ ์์ฑํ๋ ๋ฐ ์ง์คํ๊ณ ์์ผ๋ฉฐ FAQ ํญ๋ชฉ์ ์ง์ ์์ฑํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์๋ฃ๋ ๋๊น์ง ๋๋ฅผ ์ํด ๋ค์ ๋ฒ๋.
์๊ฒ ์ต๋๋ค. ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. _์ธ์ /์ Redux_ ๋ฐ _Redux ์ํ ๋ React ์ํ_๋ฅผ ์ฌ์ฉํ๋์ง ์์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ด๊ฐ ์ด์์ ์์ฑํ๊ณ ๊ฒํ ํ ์ PR์ ์ถ๊ฐํ๊ธฐ๋ฅผ ์ํ์ญ๋๊น, ์๋๋ฉด ์ ํธํ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์์ต๋๊น?
์... ์ฃ์กํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๋๊ธ์ด ๋ฌด์์ ๋งํ๋ ค๋์ง ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ด ๋ชฉํ๋ ๊ธฐ์กด ์ง๋ฌธ์ ์ถ๊ฐ ๋งํฌ์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ๋ค์ ์๋ก์ด ์ง๋ฌธ+๋ต๋ณ์ ์์ฑํ๋ ๊ฒ์ด์์ต๋๋ค. "๊ธฐ์กด ์ง๋ฌธ์ ๋ํ ์ ๋ฐ์ดํธ" ์ ๋ชฉ, ์ฆ "์ ๋งํฌ ์ถ๊ฐ" ๋ถ๋ถ์์ ์ด๋ฏธ ๋ชจ๋ ์์ ์ ์๋ฃํ์ต๋๋ค. ํ์ฌ ๋์์ ๊ตฌํ๊ณ ์๋ "์๋ก์ด ์ง๋ฌธ+๋ต๋ณ ์์ฑ" ๋ถ๋ถ์ ๋๋ค.
์ ์ฌ์ ์ธ ์ ์ง๋ฌธ ๋ชฉ๋ก์ "์ ์ฃผ์ " ์ ๋ชฉ ์๋์ ์์ต๋๋ค("Redux๋ ์ธ์ ๋ฐฐ์์ผ ํ๋์?"๋ก ์์). ํด๋น ์น์ ์ ๋์ด๋ ๋ชจ๋ ํญ๋ชฉ์ ์ฒ๋ฆฌํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ํฌํ๋ก: Redux ์ ์ฅ์๋ฅผ ๋ถ๊ธฐํ๊ณ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค๊ณ ์ด์ ์์ ์ ์์ํ๋ ค๊ณ ํฉ๋๋ค. ์ฌ๊ธฐ์ WIP ํ์ผ์ ๋ํ ๋งํฌ๋ฅผ ๋จผ์ ๊ฒ์ํ ๋ค์ ์ด์์ด ์ค๋น๋์๋ค๊ณ ์๊ฐ๋๋ฉด PR์ ์ ์ถํ ์ ์์ต๋๋ค.
์, _Immutable.js๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น?_๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. Immutable์ ๋ํ ์ผ๋ จ์ ์์ต์ ์์ฑ์ ๋ง ๋ง์ณค๊ณ ๋งค์ผ ์ฌ์ฉํ๋ฏ๋ก ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ์ ๋งค์ฐ ์ต์ํฉ๋๋ค.
์ข์ ์๋ฆฌ! Reddit์ ๋ํ ๋งํฌ๋ ์๊ฒฌ์ ์ผ๋ถ ์ ์ถฉ์ ์ ๋ํ ์ ์๊ฐ์ ๋๋ค. ๋ํ ๋ถ๋ณ ๋ฐ์ดํฐ ๋ฐ React ์ฑ๋ฅ์ ๋ํ React/Redux ๋งํฌ ๋ชฉ๋ก์ ๊ด๋ จ ์น์ ์ ๋ํ ํฌ์ธํฐ๋ฅผ ์ถ๊ฐ ๋ฆฌ์์ค๋ก ์ถ๊ฐํ์ต๋๋ค.
"Immutable.js" ์ง๋ฌธ์ ์๋ง๋ ์๋ก์ด ๋ฒ์ฃผ์ ์ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ๋ฒ์ฃผ๊ฐ ํ์ฌ ๋ฌด์์ด์ด์ผ ํ๋์ง ํ์คํ์ง ์์ต๋๋ค. ๋ธ๋์น์์ ์ ์ ๋์ "Immutable Data" ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ํด๋น ํ์ด์ง์์ ์ฐ๊ธฐ ์์ํ์๊ฒ ์ต๋๊น?
@markerikson First PR์ ์ด์ ๊ฒํ ํ ์ค๋น๊ฐ ๋์์ต๋๋ค: #2120
@bundance : ์ข์์, ๊ฐ์ฌํฉ๋๋ค! ์ค๋ ์ ๋ ์ด๋ ๊ธ์์ผ์ ํ๋ฒ ๋ณด๊ฒ ์ต๋๋ค.
์ด๊ฒ์ Redux์ ๋ํ ์ดํด๋ฅผ ๋์ด๋ ๋ฉ์ง ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ํน์ ์์ ์ ์ํํด ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ์ฐ์ ์์๊ฐ ์๋ ๊ฒ, ๋๊ตฐ๊ฐ๊ฐ ์ด๋ฏธ ํ๊ณ ์์ง ์์ ๊ฒ ๋ฑ
@mateo-io : ๋ค, ๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๋ฌธ์ ์๋จ์ ๋ชฉ๋ก์ ๋ณด๋ฉด "์ถ๊ฐ ๋๊ธฐ ์ค" ์น์ ์๋์ ๋ชจ๋ ํญ๋ชฉ์... ์ด... ์ถ๊ฐ ๋๊ธฐ ์ค์ ๋๋ค. ๋ชจ๋ ๊ณต์ ํ ๊ฒ์์ ๋๋ค.
์์ํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ "๊ธฐ์กด ์ง๋ฌธ์ ๋ํ ์ ๋ฐ์ดํธ" ํญ๋ชฉ์ ๋ํด ์์ ํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด "์ธ์ Redux๋ฅผ ์ฌ์ฉํด์ผ ํ๋์?"์ ์ถ๊ฐํ๊ณ ์ถ์ ๋งํฌ๊ฐ ๋ง์ด ์์ต๋๋ค. ์ง๋ฌธ. ๊ทธ๊ฒ๋ค์ ๋งค์ฐ ๊ฐ๋จํด์ผ ํฉ๋๋ค. FAQ์ ํด๋น ์ง๋ฌธ ๋์ ๊ธฐ์กด ๋ชฉ๋ก์ ๋ํ ๋งํฌ๋ฅผ ์ถ๊ฐํ๊ณ ๊ฐ ๋งํฌ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช ์ ์ถ๊ฐํ๋ฉด ๋ฉ๋๋ค.
๋ ๋ค๋ฅธ ์ข์ ์ถ๋ฐ์ ์ "์ก์ ์ ์์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?"์ ๊ฐ์ ์๋ก์ด ์ง๋ฌธ ์ค ํ๋์ผ ์ ์์ต๋๋ค. ๋๋ " ์ธ์ Redux๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น?".
๋์ ๋ค๋ฅธ ์ผ์ ๋จผ์ ์ฒ๋ฆฌํ๊ณ ์ถ๋ค๋ฉด ๊ด์ฐฎ์ต๋๋ค. ์ถ๊ฐํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๊ณ ์ถ์ ์ฃผ์ ๋ชฉ๋ก์ ์ดํด๋ณด๊ณ ์ด๋ค ์น์ ์์ ์์ ํ๊ณ ์ถ์์ง ์๋ ค์ฃผ์ญ์์ค.
@markerikson 2370 for faq ์ผ๋ฐ ์น์
"์ฝ๋ ๊ตฌ์กฐ" ์น์ ์ ์ ๋งํฌ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๊ณ ์ถ์ต๋๋ค!
@gribnoysup : ์ข์์, ๋ฃ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค! ๊ณ์ํด์ ์ ์ฅ์์ ๋ถ๊ธฐ์ ํธ์ง์ ์ํ ๋ถ๊ธฐ๋ฅผ ๋ง๋ค๊ณ "์ฝ๋ ๊ตฌ์กฐ" FAQ ํ์ผ ์ ๋ฐ์ดํธ๋ฅผ ์์ํ์ธ์. ๊ฐ์ฅ ๊ฐ๋จํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ "๋น์ฆ๋์ค ๋ก์ง์ ์ด๋์ ๋ ๊ฒ์ธ๊ฐ?"๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ๋ด๊ฐ ๋์ดํ ๋ช ๊ฐ์ ๋งํฌ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. ์ง๋ฌธ. ๊ฑฐ๊ธฐ์์ "์ก์ ์ ์์๋ฅผ ์ฌ์ฉํ๋ ์ด์ "์ ๋ํ ์๋ก์ด ์ง๋ฌธ/๋ต๋ณ์ ์ถ๊ฐํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ ์ ์์ต๋๋ค. ๋ฐ "์บก์ํ ๋ ผ๋ฆฌ".
@markerikson ์ฝ๋ ๊ตฌ์กฐ FAQ ์น์ https://github.com/reactjs/redux/pull/2494์ ๋ํ ์๋ก์ด ํ ๋ฆฌํ์คํธ๋ฅผ ์ด์์ต๋๋ค.
@markerikson ์ด ์์ ์ ๊ด์ฌ์ด ์์ต๋๋ค. "์ก์ ํฌ๋ฆฌ์์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?" ์๊ฑด. ๊ทธ๊ฒ์ด ๋น์ ์๊ฒ ๋ ๋ซ๋ค๋ฉด ๋ค๋ฅธ ๊ณณ์์ ์์ํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค.
@maxhallinan : ๋ค, ์ข์ต๋๋ค! ๊ณ์ํด์ ์ FAQ ์ง๋ฌธ์ ๋ํ ์ด์์ ์์ฑํ๊ณ PR์ ์ ์ถํ๋ฉด ๊ฑฐ๊ธฐ์ ์์ ํ ์ ์์ต๋๋ค. ๊ฐ์ฌ ํด์!
@markerikson ๋๋ ๊ด์ฌ์ด ์์ต๋๋ค. ์ปค๋ฎค๋ํฐ์์ ์ผ๋ฐ์ ์ผ๋ก ์๊ตฌํ๋ ๊ฒ์ผ๋ก ์์ํ ์ ์๋ ๊ฒ์ด ์์ต๋๊น?
@markerikson ๋์์ธ ๊ฒฐ์ ์ ๋ํ FAQ ์น์ #2528 ์ ๋ํ PR์ ์์ฑํ์ต๋๋ค.
@sbakkila : ์ข์์, ๊ฐ์ฌํฉ๋๋ค! ๋ด์ผ ๋ฐค์ด๋ ์์์ผ์ ๋ณด๋ ค๊ณ ํฉ๋๋ค.
@Fyre91 : ๋ ๋นจ๋ฆฌ
@markerikson ๋๋ฌด ์ค๋ ๊ฑธ๋ ค์ ์ฃ์กํฉ๋๋ค. "์ก์ ํฌ๋ฆฌ์์ดํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ "์ ๋ํ PR #2535๋ฅผ ์ด์์ต๋๋ค.
๋ํ ์์ FAQ ์น์ ์ ๋ํ ๋งํฌ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด PR #2537์ ์ด์์ต๋๋ค. FWIW, ์ด ๋ฌธ์ ์ค๋ช ์ ์ ๋ฐ์ดํธ ๋ชฉ๋ก์ ์๋ ๋ค๋ฅธ ๋งํฌ๋ ์ด๋ฏธ ์ถ๊ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด PR์ ํฌํจ์์ผฐ์ ๊ฒ์ ๋๋ค.
๋๋ "์ธ์ Redux๋ฅผ ๋ฐฐ์์ผ ํ๋์?"๋ก ๋์ด๊ฐ ์๊ฐ์ด์์ต๋๋ค. ์ด ์ง๋ฌธ์ ํนํ React์ ๊ด๋ จ์ด ์์ต๋๊น? ๊ทธ๋ ์ง ์์ผ๋ฉด Redux๋ฅผ ์ฌ์ฉํด์ผ ํ ๋ Redux๋ฅผ ๋ฐฐ์์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ ์ด๋ฏธ ๋ต๋ณํ "์ธ์ Redux๋ฅผ ์ฌ์ฉํด์ผ ํ๋์?"์ ์ค๋ณต๋ฉ๋๋ค.
@maxhallinan : ์ด, React์ ๊ด๋ จํด์๋ _sort_์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค, "์ธ์ Redux๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น?"์ _์ผ๋ถ_ ์ค๋ณต๋์ง๋ง ์์ฒด FAQ ํญ๋ชฉ์ ๋ณด์ฆํ ๋งํผ ์ถฉ๋ถํ ๋ช ํํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@markerikson ์ข์, ๋๋ ํ๋์ ์ํ ํธ๋ฆฌ ์ฑ๋ฅ FAQ๋ฅผ ๋ค๋ฃฐ ๊ฒ์ด๋ค.
@Fyre91 :
@markerikson ๋ค , ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. "์ธ์ Redux๋ฅผ ๋ฐฐ์์ผ ํ๋์?"๋ฅผ ๋ฃ๊ณ ์์ต๋๋ค.
@markerikson ๋ค์์ ๋ 'React-Redux๋ฅผ ์ฌ์ฉํ๋ ์ด์ '์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
@markerikson ๋ค์์ ์ฑ๋ฅ์์ ํ์ด์ง ๋งค๊น/์บ์ฑ ํญ๋ชฉ์ ๊ฐ์ ธ์ต๋๋ค. ํ์ธ์ ์ํด ์ค์ ์ง๋ฌธ์ "๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๊ณ ํ์ด์ง๋ฅผ ๋งค๊ธด ๋ฐ์ดํฐ๋ฅผ ์บ์ํ ์ ์์ต๋๊น?"์ ๋๋ค.
@maxhallinan : ๋๋ต
์์งํ ๋งํด์ ๋ด๊ฐ ๊ทธ ํญ๋ชฉ์ ์ผ์ ๋ ๋ฌด์จ ์๊ฐ์ ํ๋์ง _์ ํํ_ ๊ธฐ์ตํ์ง ๋ชปํ์ง๋ง, ๊ทธ ๋งํฌ๊ฐ ๋ค๋ฃจ๊ณ ์๋ ๋ด์ฉ์ ๋๋ค. ๋ํ ์ ๊ทํ๋ ๋ฐ์ดํฐ์ ํ์ ์งํฉ ์ถ์ ์ ๋ํ ํ๋ฅญํ ๊ฒ์๋ฌผ์ ๋ํ ๋งํฌ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
์ด๊ฒ์ ํ์ํ๋ค๊ณ ๋๋ผ๋ฉด ์ฌ๋ฌ ๊ฐ์ ๊ฐ๋ณ ์ง๋ฌธ ํญ๋ชฉ์ผ๋ก ์ฝ๊ฒ ๋ฐ๋ ์ ์์ผ๋ฉฐ, ์ฌ๊ธฐ์ ๋ณด๊ณ ์ถ์ ๊ฒ์ด ์ ํํ ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฃผ์ ๋ฅผ ์ฐ๋ฌ๋ณด๊ณ ๋ฌด์์ ์๊ฐํด ๋๋์ง ํ์ธํ์ญ์์ค. ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ๊ฐ ๊ฑฐ๊ธฐ์์ ์์ ํ ๊ฒ์ ๋๋ค.
์ต๊ทผ์ ์์ ํ ๋ด์ฉ์ ๋ฐ์ํ๊ธฐ ์ํด ์ค๋ ๋ ์๋จ์ ๋ชฉ๋ก์ ์ ๋ฐ์ดํธํ์ต๋๋ค. (์ฌ์ค, ์๋ค์ํผ... ์์ฑ๋ ๊ฒ์ ๋ ๋ฒ์งธ ์น์ ์ ์๋ผ๋ด์ด ๋ถ์ฌ๋ฃ๋ ๋์ ์ฒ์๋ถํฐ ์ฒดํฌ๋ฐ์ค ํ ์ผ ๋ชฉ๋ก์ผ๋ก ๋ง๋ค์์ด์ผ ํ์ต๋๋ค. ์ ๊ธ์์.)
๋จ์์๋ ๋ฌผ๊ฑด์ ๋ชฉ๋ก์ด ์์์ง๋ ๊ฒ์ ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค!
@markerikson Updates to Existing Questions: Performance
์ ์ด๋ฏธ ๋ง์คํฐ์ ์์ต๋๋ค :)
@markerikson "์ก์ ํฌ๋ฆฌ์์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?" ๋ง์คํฐ์๋ ์์ต๋๋ค.
@gribnoysup , @maxhallinan : ์, ๋ค, ๊ทธ๋ ์ต๋๋ค. :) ๋ชฉ๋ก์ ์ ๋ฐ์ดํธํ์ต๋๋ค.
ํ์คํ ๊ฑฐ๊ธฐ์ ๋์ฐฉ. ๊ธฐ์กด ์ง๋ฌธ์ ๋ํ ๋ชจ๋ ์ ๋ฐ์ดํธ๊ฐ ์๋ฃ๋ ๊ฒ ๊ฐ์ผ๋ฉฐ ๋ช ๊ฐ์ง ์ ํญ๋ชฉ๋ง ๋จ์ ์์ต๋๋ค.
์๋ก์ด "๋์์ธ ๊ฒฐ์ " ์ง๋ฌธ์ด ๋ ์ฌ๋์ต๋๋ค. "Redux๊ฐ ์์ ๊ณผ ์ ๋ฐ์ดํธ๋ฅผ ๋ถ๋ฆฌํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?"
๋๋ ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ์ํ๋ค๊ณ ์๊ฐํ๋ค. ๋ค๋ฅธ ๋ฌธ์ ์์ ๊ฐ๋ณ FAQ ์ ๋ฐ์ดํธ๋ฅผ ์ถ์ ํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ก์ ์์ฑ์์ ๋ฆฌ๋์ ๊ฐ์ ๋ ผ๋ฆฌ ๋ถํ ๊ณผ ๊ด๋ จ
๋ด๊ฐ ์์ฃผ ๋ณด๋ ๋ ๋ค๋ฅธ ์ง๋ฌธ์ ์ธ๋ถ์์ ์ฌ์ฌ์ฉํ ์ ์๋ redux ๋ชจ๋(์ก์ ์์ฑ๊ธฐ, ๊ฐ์๊ธฐ, ๊ตฌ์ฑ ์์)์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ฃผ๋ก ๊ฐ์ ํ์ด์ง์ ๊ฐ์ ์ ํ์ ์ฌ๋ฌ ๋ชจ๋์ด ์์ ๋ ์์ ์ด๋ฆ ์ถฉ๋์ ํผํ๋ ๋ฐฉ๋ฒ๊ณผ createStore์์ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ์๊ธฐ ์ด๋ฆ์ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.