2021-01-23(Sat)
ํญ๋ชฉ | ๋ด์ฉ |
ํ์ต ๋ ์ง | 2021-01-23(ํ ) |
ํ์ต ์๊ฐ | 10:00~24:00 |
ํ์ต ๋ฒ์ ๋ฐ ์ฃผ์ | Backbone, Swagger |
ํ์ต ๋ชฉํ | Backbone์ View ๊ด๋ฆฌ ํ ํฌ๋์ ํ์ธํ๋ค. Swagger ์ฌ์ฉ๋ฒ์ ์ตํ๋ณธ๋ค. |
๋๋ฃ ํ์ต ๋ฐฉ๋ฒ | eunhkim๋๊ณผ ์ํฐํด์ ๊ณต์ ํ๊ณ , ํ ํ๋ก์ ํธ์ ์ ์ฉ์ ์ฒ๋ฆฌํด์ผํ ์ด์๋ค์ ๋ํด ์๊ธฐ๋๋ด๋ค. |
์์ธ ํ์ต ๋ด์ฉ
๋ฐฑ๋ณธ์ ๋ค๋ฃฐ ๋ ํ๊ธฐ ์ฌ์ด 8๊ฐ์ง ์ค์์ Rendering Views in Backbone.js Isn't Always Simple ์ํฐํด, ๊ทธ๋ฆฌ๊ณ Assigning backbone subviews mad even cleaner๋ฅผ ์ฝ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ด๋ฒคํธ ์์์ ํด์ผํ๋๊ฐ?๋ฅผ ์ฝ์๋ค.
๋ฐฑ๋ณธ์ ๋ค๋ฃฐ ๋ ํ๊ธฐ ์ฌ์ด 8๊ฐ์ง ์ค์
์ค์1) ๋ฐฑ๋ณธ ์์ฒด์ ์ฝ๋๋ฅผ ์ดํด๋ณด์ง ์๋๋ค.
์๊ฐ๋ณด๋ค ์์กด์ฑ์ ๊ฐ์ง๊ณ ์๋ underscore ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฒด์ ๊ธฐ๋ฅ์ด ํ๋ฅญํ๋ค. ๋ฐฑ๋ณธ์ ์์ค์ฝ๋๋ ์ปคํผ ํ ์ ํ๋ฉฐ ๋ณผ ์ ์์๋งํผ ๊ฐ๋จํ๋ค. ์ด๋ณด ์ฝ๋๋ค์ ์ด๋ฐ ์ ์์ฑ๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๋ฐฐ์ธ ์ ์๋ค.
์ค์2) ์ด๋ฒคํธ์ ์ง์ ๋ฐ์ํด์ ๋ทฐ์์ DOM ์์๋ฅผ ์ง์ ๋ณ๊ฒฝ์ํจ๋ค.
๊ฐ๋ น ์๋ ์ฒ๋ผ ์ฝ๋ฉํ ์ ์๋ค.
์ด ๊ฒฝ์ฐ DOM ์์์ ํ์ฌ ์ํ๋ฅผ ์ถ์ ํ๋๋ฐ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ๋ค๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
๋ทฐ์์ ๋ฐ์ํ๋ ์ด๋ฒคํธ๋ ๋ชจ๋ธ์ ๋ณ๊ฒฝ์ํค๊ณ , ๋ทฐ๋ ๋ชจ๋ธ์ ๋ณ๊ฒฝ์ ๋ฐ์ํ๋๋ก ํ์. ์๋์ฒ๋ผ!
์ด๋ฅผ ํตํด ํ์ฌ ์ด๋ฒคํธ ์ํ๋ฅผ ์ถ์ ํ ์ ์๊ณ , DOM ์์๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๊ฒ ๋๋ค. ์ ์ด์ ๋ฐฑ๋ณธ์ ์ค๊ณ๋ ์ด๋ฒคํธ์ ์ํด ๋ณต์กํ DOM ๊ฐ์ฒด๊ฐ ์ง์ ์์ ํ๋ ๊ฒ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ๊ณ ์๋ ์ธก๋ฉด์ด ํฌ๋ค. ๐บ
์ค์3) ๋ ๋๋ง ๋น์ฉ์ ๊ณผ์ํ๊ฐํ๋ค.
๋ฌผ๋ก ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ค์ ๋ ๋๋ง ์ ๋๋ ๊ฐ๋ณ๊ฒ ํด๋ด์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น๋ํด์ง๋ฉด ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค. ์๋ ์ฝ๋๋ฅผ ๋ณด์.
๋งค add
์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค ๋ ๋๋ง์ด ๋๋ ๊ตฌ์กฐ์ด๋ค. ๊ทธ๋ผ ๋ชจ๋ธ๋ ๋งค add
์ด๋ฒคํธ๋ง๋ค ์ถ๊ฐ๋๊ฒ๋๊ณ , ๋ชจ๋ธ์ด ๋น๋ํด์ง๋ฉฐ ์๊ธฐ๋ ์ฑ๋ฅ ์ ํ๋ ์ ์ ๊ฒฝํ์ ํด์น ์ ์๋ค. ์.. ์ด๋ฐ ๊ตฌ์กฐ๋ณด๋ค๋ ์๋์ฒ๋ผ ๋ฐฐ์น ๋จ์๋ก ๋ ๋๋งํ๊ฒ ์์ ํด๋ณด์.
์ฌ์ ํ add
์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ํ์๋งํผ model์ด ์์ฑ๋๋๊ฑด ๋ง์ฐฌ๊ฐ์ง์ด์ง๋ง, underscore.js ์ _.debounce
๋ฉ์๋ ๋์ ๋ง์ง๋ง add
์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ณ ๋์ 128 milliseconds๋งํผ ๊ธฐ๋ค๋ฆฐ ํ ํ๊บผ๋ฒ์ ๋ ๋๋งํ ๊ฒ์ด๋ค. ๋ฌผ๋ก ์ด๋ฐ ๋ฐฉ๋ฒ ๋ง๊ณ ๋ ํด๊ฒฐ๋ฐฉ๋ฒ์ ๋ง์ ๊ฒ์ด๋ค.
์ค์4) ์ฐ๊ณ ๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ค์ ๋จ๊ฒจ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์ ํํ ํ๋ฏ on()
๋ฉ์๋๋ก ์ด๋ฒคํธ๋ฅผ ๋ฐ์ธ๋ํ๋ฉด off()
๋ฉ์๋๋ก ์ธ๋ฐ์ธ๋ํ์ง ์์ ์ํ์์ ์ฐธ์กฐ๋ฅผ ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ฆญ์ ์์ธ์ด ๋๋ค. Backbone์ด ์ ๊ณตํ๋ listenTo()
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์. ๊ทธ๋ผ remove()
๋ฉ์๋๋ฅผ ๋ชจ๋ธ์ ์ ์ฉํ๋ฉด ์์์ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ ์ ๊ณต๋๋ค.
์ค์ 5) ๋จ์ผ ๋ทฐ ์์ฑ
๋ง์ฝ ๋๊ฐ ๊ฑฐ๋ํ ๋จ์ผ ๋ทฐ๋ฅผ ๋ง๋ค์ด์ ๊ทธ ๋ทฐ ์์์ ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํ๋ฉด ๋ฐฑ๋ณธ์ด ์๋ํ๋๋๋ก '๊ฐ๋จํ๊ฒ' ์ฝ๋๋ฅผ ๊ด๋ฆฌํ ์ ์๊ฒ ๋๋ค. ๋ฐฑ๋ณธ์ ๋ทฐ๋ ๋ชจ๋ธ์ด๋ ์ปฌ๋ ์ ๊ณผ ์ ์กฐํ๋๊ฒ๋ ๊ธฐ๋ฅํ๋ค. ์ด๋ฅผ ํํธ์ผ์ ๋ทฐ๋ฅผ ์ฌ๋ฌ๊ฐ์ ๊ฐ๋จํ๊ณ ์์ ๋ทฐ๋ก ๋๋์ด ์ค๊ณํ์.
์ค์ 6) ๋ฐฑ๋ณธ์ Non-RESTful APIs ์๋ ์ ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๊ฐ๊ณผํ๋ค.
๋ฐฑ๋ณธ์์ ํ๋ก ํธ์๋์ ๋ฐฑ์๋๋ฅผ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ์ปดํฌ๋ํธ๋ Sync
๋ค. ์ด ์ปดํฌ๋ํธ๋ ์ค๋ฒ๋ผ์ด๋ํ ์ ์๋ ๋ง์ ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ฐฑ์๋ ๋์ localStorage์ ์ฐ๊ฒฐ์ํค๋ ์์ผ๋ก ์ค๋ฒ๋ผ์ด๋ํ๋ฉด localStorage์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ฒ์ด๋ค.
์ค์ 7) ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ ๋์ ๋ทฐ์ ์ ์ฅํ๋ค.
๊ผญ ๋ฐฑ์๋์ ์ ์ฅํ์ง ์์๋ ๋๋ ๋ฐ์ดํฐ๋ค์ ๋ฐฑ๋ณธ ๋ชจ๋ธ์ ์ ์ฅํ์. ๋ทฐ์ ์ ์ฅํ๋ ๋์ ๋ชจ๋ธ์ ์ ์ฅํ๋ฉด ์๊ธฐ๋ ์ด์ ์? ๋ชจ๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ ์ผ์ผ์ด ์ถ์ ํด์ ๋ทฐ๋ฅผ ๋ฐ๊ฟ์ค ํ์์์ด, ์ฐ๋๋ ๋ทฐ๊ฐ ์์์ ์ด๋ฒคํธ๋ฅผ ๋ฆฌ์ค๋ํ๊ณ ์๋ค๊ฐ ๋ณ๊ฒฝ๋๋๋ก ์ ํ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ์ ํ ํ์ง ์์ผ๋ฉด? ์ค์๊ฐ ์๊ธฐ๊ธฐ ์ฝ๋ค.
์ค์ 8) ์ด๋ฒคํธ ์์ ๋์ jQuery์ .On()
๋ฉ์๋๋ฅผ ์ด๋ค.
.On()
๋ฉ์๋๋ฅผ ์ด๋ค.๋ฐฑ๋ณธ์์ ์์ฒด์ ์ผ๋ก DOM ์ด๋ฒคํธ๋ฅผ ํธ๋ค๋งํ๋ ๋ฐฉ๋ฒ์ ์ฐ๋ ๊ฒ์ด ์ฐ์ง ์๋ ๊ฒ๋ณด๋ค ์ด์ ์ด ๋ง๋ค. ๊ฐ๋ น jQuery์ .On()
๋ฉ์๋๋ฅผ ํ์ฉํ๋ฉด ์ด๋ฒคํธ๋ฅผ ๋ฐ์ธ๋ฉํ๋๊ฒ ์ฝ๊ฒ ๋๊ปด์ง ์ ์์ง๋ง ์ฅ๊ธฐ์ ์ผ๋ก ๋ณด๋ฉด ๋ฒ๊ฑฐ๋ก์์ง๊ธฐ ์ฝ๋ค. ํด๋น ์์๊ฐ DOM ์์๋ก๋ถํฐ detach ๋๋ฉด jQuery๋ ์๋์ ์ผ๋ก ๋ชจ๋ ์ด๋ฒคํธ ํธ๋ค๋ง์ ๊บผ๋ฒ๋ฆฐ๋ค. ์ด ๋ป์ DOM ์์๊ฐ detach๋์๋ค๊ฐ reattach๋ ๋๋ง๋ค ์ด๋ฒคํธ ๋ฐ์ธ๋ฉ์ ์๋ก ํด์ค์ผํ๋ค๋ ๊ฒ์ ๋ปํ๋ค. ๋ฐ๋ฉด ๋ฐฑ๋ณธ์ ์ด๋ฒคํธ๋ฅผ ๋ทฐ์ root ์์๋ฅผ ํตํด ๋ฐ์ธ๋ํ๊ธฐ ๋๋ฌธ์ ๋ทฐ์ DOM ์์ ์์๋ค์ด ๋ณ๊ฒฝ๋์ด๋ ์๋ก ๋ฐ์ธ๋ฉํด์ค ํ์๊ฐ ์๋ค.
Rendering Views in Backbone.js Isnโt Always Simple
todo ๋ก๋ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ๋๋ฐ ์ธ ์ ์์๋งํผ ๊น์ด์๊ฒ ๋ทฐ๋ฅผ ๋ ๋๋งํ๋ ๊ตฌ์กฐ๋ฅผ ์๋ ค์ฃผ์ง ์๋๋ค. ์๋ ์๊ตฌ์ฌํญ์ ๋ง๋๋ก ๋ทฐ๋ฅผ ๋ ๋๋งํ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ณ ์ถ์๋ค.
๋ ๋๋ง์ ์ฌ์ด๋ ์ดํํธ์์ด ์ฌ๋ฌ๋ฒ ๋ฐ๋ณต ๊ฐ๋ฅํด์ผํ๋ค.
DOM์ ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์๋๋ผ ํ ํ๋ฆฟ์ ์ ์ธ๋์ด์ผ ํ๋ค.
๋ ๋ ํจ์๋ฅผ ๋ฐ๋ณตํด์ ํธ์ถํ์ ๋๋ ๋ทฐ์ ์ํ๊ฐ ์ ์งํด์ผํ๋ค.
๋ ๋๋ง์ ๋ ๋ฒ ํ์ ๋ ์ธ๋ฐ ์์ด ์๋ธ๋ทฐ๊ฐ ์์ฑ๋๋ฉฐ ์ฑ๋ฅ์ด ๋ญ๋น๋์ง ์์์ผํ๋ค.
๋ฌธ์ ๊ฐ ๋๋ ์ฝ๋ ์์
์ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑ์ํค์ง ๋ชปํ๋ ์์๋ค์ ์๋์ ๊ฐ๋ค.
ํ ํ๋ฆฟ์ ๋ ๋๋งํ ๋ jQuery์
html()
๋ฉ์๋๋ฅผ ์ด์ฉํด์ ๋ ๋๋งํ๋ค.์ด๋ ๊ฒ ์์ฑํ๋ฉด ์๋ธ๋ทฐ๊ฐ ์์ ๋๋ ์ ์๋ํ์ง๋ง ์๋ธ๋ทฐ๋ฅผ ์์ฑํ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
html()
๋ฉ์๋๊ฐempty()
๋ฉ์๋๋ฅผ ๋จผ์ ํธ์ถํด์ jQuery ์ด๋ฒคํธ๋ฅผ ๋ชจ๋ unbind ํด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค. ์๋์น์๊ฒthis.events
์ ์ ์๋ ์ด๋ฒคํธ๋ค์ด ๋ชจ๋ ์ฌ๋ผ์ ธ๋ฒ๋ฆด ์ ์๋ค.ํ ํ๋ฆฟ์ ์ฐ์ง ์๋๋ค.
์ด๋ ๊ฒ ์์ฑํ๋ฉด DOM ๊ตฌ์กฐ๊ฐ ๋ ๋๋ง ํจ์๋ฅผ ํธ์ถํ๋ ์์์ ์์กด์ ์ด๊ฒ ๋๋ค. ๊ฒฐ๊ตญ ํ๋ก์ ํธ๊ฐ ์ปค์ง๋ฉด ์ปค์ง ์๋ก DOM ๊ตฌ์กฐ ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ์ด๋ ค์์ง๋ค. ํ ๊ฒฐ๊ตญ
html()
๋ฉ์๋๋ฅผ ์จ์ผํ๋ค๋ ๊ฑด๋ฐ.. ํผ๋์ค๋ฝ์ง ์์๊ฐ? ์ด๊ฑธ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด ์๊ธดํ๋ฐ, ํํ๋ค.....์ค๋ฒํค๋๊ฐ ๋๋ฌด ํฐ ๋ฐฉ๋ฒ์ ์ด๋ค.
๊ฒฐ๊ตญ render ํจ์๊ฐ ์ฝ๋ ๋๋ง๋ค render ํจ์ ์์์ ์๋ธ๋ทฐ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ์์ ์ฐ๊ณคํ๋ค. ๊ทธ๋ฌ๋ฉด ์ด ๊ฒฝ์ฐ render ํจ์๊ฐ ๋๋ฌด ๋ง์ ์ผ์ ์ํค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฅ DOM ์ด๋ฒคํธ ํ๋๋ฅผ rebindํ๋ ค๊ณ ํ ๋๋ ์๋ธ๋ทฐ๋ฅผ ํ๋ํ๋ ์์ฑํด์ค์ผํ ์๋ ์๋ค..
๊ทธ๋์ ํด๊ฒฐ์ฑ
์?
์ฌ์ค ํด๊ฒฐ์ฑ
์ ๊ฐ๋จํ๋ค. ๊ทธ๋ฅ html()
๋ฉ์๋๋ฅผ ํธ์ถํ ๋๋ง๋ค ์๋ธ๋ทฐ์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ธ๋ํ๊ธฐ ์ํด delegateEvents
๋ฅผ ํธ์ถํ๋ ๊ฒ์ด๋ค. ์ด delegateEvents
๋ ๋ฐฑ๋ณธ์ setElement
ํจ์์ ํฌํจ๋์ด์์ผ๋ ๊ทธ๋ฅ setElement
ํจ์๋ฅผ ํธ์ถํ์. ์๋์ฒ๋ผ!
๊ทธ๋ฌ๋ ์ด๋ ๋๋ฌด ๊ธธ๊ณ ํ์ฑํ๊ธฐ๋ ์ด๋ ต๋ค. ๊ทธ๋์ ์๋์ฒ๋ผ ๋ฒ ์ด์ค๋ทฐ์ assign
์ด๋ผ๋ helper ๋ฉ์๋๋ฅผ ๋ง๋ค๋ฉด ํ๊ฒฐ ๊น๋ํด์ง๋ค.
assign
์ ์๋์ฒ๋ผ ์ ์๋๋ค.
์, ์ด์ ์ฒ์ ์๊ตฌ์ฌํญ์ด ๋ชจ๋ ํด์๋์๋ค.
๋ ๋๋ง์ ์ฌ์ด๋ ์ดํํธ์์ด ์ฌ๋ฌ๋ฒ ๋ฐ๋ณต ๊ฐ๋ฅํด์ผํ๋ค.
setElement
๋ DOM ์ด๋ฒคํธ๋ฅผ re-delegate ํ๋ฏ๋ก ๋ ์ด์ jQuery์html(
๋ฉ์๋๊ฐ ์๋ธ๋ทฐ์ ์ด๋ฒคํธ๋ฅผ ๋ ๋ ค๋ฒ๋ฆฌ๋ ๊ฒ์ ๊ฑฑ์ ํ ํ์๊ฐ ์์ด์ง๋ค.
DOM์ ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์๋๋ผ ํ ํ๋ฆฟ์ ์ ์ธ๋์ด์ผ ํ๋ค.
ใ ใ
๋ ๋ ํจ์๋ฅผ ๋ฐ๋ณตํด์ ํธ์ถํ์ ๋๋ ๋ทฐ์ ์ํ๊ฐ ์ ์งํด์ผํ๋ค.
๋ทฐ๊ฐ render ํจ์๊ฐ ํธ์ถ๋ ๋๋ง๋ค ๋ค์ ์ด๊ธฐํ๋์ง ์์ผ๋ฏ๋ก ๋ทฐ์ ์ํ๊ฐ ์ ์ง๋๋ค.
๋ ๋๋ง์ ๋ ๋ฒ ํ์ ๋ ์ธ๋ฐ ์์ด ๋๊ฐ์ ๋ ๋๋งํ๋ ๋ญ๋น๊ฐ ์์ด์ผํ๋ค.
์ด ๋ฐฉ์๋๋ก๋ผ๋ฉด render ํจ์๊ฐ ํธ์ถ๋ ๋๋ง๋ค ์ธ๋ฐ ์์ด ์๋ธ๋ทฐ์ ์์ฑ์ ์ฝ๋๋ฅผ ํธ์ถํ๋ ์ผ์ ์๋ฐฉํ ์ ์๋ค.
Assigning Backbone Subviews Made Even Cleaner
์ฌ์ง์ด ์์ ์ ์๋ ๊ฒ์ ์๋์ฒ๋ผ ๊ฐ์ํ์ํฌ ์๋ ์๋ค.
๋ด๋ถ ๊ตฌํ์ ์๋์ฒ๋ผ ๋์ด์๋ค.
์ํผ๋๊ณผ์ ํ๊ตฌ ๊ฒฐ๊ณผ
DOM ์์ ๊ด๋ จ ์ด๋ฒคํธ๋ setElement๋ก ์์์ํฌ ์ ์๋ค.
์ฌ๋ DOM ์์์ ๋ด๊ฒผ๋ ์ด๋ฒคํธ๋ ์ด๋ป๊ฒ ๋๋๊ฐ? ์์ค์ฝ๋๋ฅผ ๋ณด์! https://backbonejs.org/docs/backbone.html - listenTo ์ฒ๋ผ ๋ชจ๋ธ์ ์ด๋ฒคํธ์ ๋ฐ์ธ๋ฉํ๊ณ ์๋ ๊ฒ๋ค์, ๋ทฐ ๊ฐ์ฒด๊ฐ ์ญ์ ๋๊ธฐ ์ ๊น์ง๋ ๊ทธ๋๋ก ๋จ์์๊ณ , ๊ทธ๋๋ ๋ฌด๋ฐฉํ๋ฏ๋ก ์ด ๊ฒฝ์ฐ์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค.
DOM ์์๋ฅผ jQuery์ html ๋ฉ์๋๋ก ๋ฐ๊ฟ๋ผ์ฐ๋ฉด
empty()
ํจ์๋ฅผ ์ ํํธ์ถํ๋ฏ๋ก, DOM ์์์ ์์๋ ์ด๋ฒคํธ๋ค์ ํ์คํ ์ญ์ ๋๋ค. ํ์ง๋ง ์์๋์ง ์์ ์ด๋ฒคํธ๊ฐ ์์ ๊ฒฝ์ฐ, ์ญ์ ๋๋ ๊ฒ์ด ๋ณด์ฅ๋์ง ์์ผ๋ฏ๋ก ์ด๋ ์ ๊ฑฐํ๊ณ html ๋ฉ์๋๋ฅผ ํธ์ถํด์ผํ๋ค.stopListening์ ํ ๊ฒ์ธ๊ฐ ๋ง ๊ฒ์ธ๊ฐ?
el ์ต์ ์ผ๋ก ๊ธฐ์กด DOM ์์๋ฅผ ์ง์ ํ๊ณ ๋ด์ฉ์ ๋ ๋๋งํ๋ ๋ทฐ์ด๋์ ๋ฐ๋ผ์ ์ทจ๊ธ ๋ฐฉ์์ด ๋ฌ๋ผ์ ธ์ผ ํ๋ค๋ ๊ฐ์ค๋ก 1์ฐจ์ ์ธ ๋งค๋ญ์ ์ง์๋ค. ์ด๋ฒคํธ๋ผ๋ ๊ฒ์ด ํน์ ํ ์๋ฆฌ๋จผํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌถ์ด๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ์๋ธ ๋ทฐ๋ฅผ ํฌํจํ๊ณ ์๋ ์ํผ ๋ทฐ๊ฐ ํ ํ๋ฆฟ์ผ๋ก ์๋กญ๊ฒ ๊ตฌ์ฑ๋๋ค๋ฉด ์๋ธ ๋ทฐ๊ฐ ์ด๋ฒคํธ๋ฅผ ๊ฑธ์๋ ๊ธฐ์กด DOM ์์๊ฐ ์ฌ๋ผ์ง๋ ํ์์ด ๋ฐ์ํ๊ฒ ๋๋ ๊ฒ. ๊ทธ๋์ ์๋ธ ๋ทฐ์์ el ์ต์ ์ ์ฌ์ฉํ๋ค๋ฉด setElement ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ์๋ธ ๋ทฐ์ el์ ๊ฐฑ์ ํด์ฃผ์ด์ผ ํ๊ณ , el ์ต์ ์ ์ฌ์ฉํ์ง ์์๋ค๋ฉด ์๋ก ์์ฑํ ๋ฌธ์์ ์ง์ ์์ญ์ superView.selector.html(subView.render().$el)๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ฐ๋ก ์ฝ์ ํ๋ฉด ๋๋ ๊ฒ ๊ฐ๋ค.
ํ์ต ๋ด์ฉ์ ๋ํ ๊ฐ์ธ์ ์ธ ์ดํ
๋ฐฑ๋ณธ์ ๊ณต์๋ฌธ์์ ์ฑ ์ผ๋ก๋ง ํ์ตํ์ ๋๋ ๋ ์ฌ๋ฆฌ์ง ๋ชปํ๋ ์๋ฌธ๋ค์ด ๋ง์๋ค.
๋ฐฑ๋ณธ์ ๋ทฐ๋ฅผ ๋ ๋๋งํ๋ ํจํด์ ๋ฒ ์คํธํ๋ํฐ์ค๋ ๋ฌด์์ผ๊น?
SPA๋ฅผ ๊ตฌ์ฑํ ๋ ๋ค๋ฅธ ๋ทฐ๋ก ์ ํ์ ๊ธฐ์กด์ ์์ฑํด๋ ๋ทฐ ์ธ์คํด์ค๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผํ๋๊ฐ?
SubView
SubView์ ParentView
์ด๋ฐ ์๋ฌธ์ ํ๊ธฐ ์ํด ์๋ฃ๋ฅผ ์ฐพ๋ ์ค ์ํผ๋ ๋์ ์ข์ ์ํฐํด์ ์ฐพ์ ์ฝ์ ์ ์์๋ค. ์ญ์ ํ๋ก์ ํธ๋ฅผ ํด๋ด์ผ ์ข์ ์ง๋ฌธ์ด ์๊ธฐ๊ณ ์ง ์ข์ ์ฑ์ฅ์ผ๋ก ์ด์ด์ง๊ธฐ ์ฝ๋ค.
๋ค์ ํ์ต ๊ณํ
RESTful API
ํ์ ๊ท์น ๋ฑ ๊ด๋ฆฌํ๋๋ฐ ํ์ํ ํด ์ ํด๋ณด๊ธฐ
Last updated