2021-02-05(Fri)

ํ•ญ๋ชฉ

๋‚ด์šฉ

ํ•™์Šต ๋‚ ์งœ

2021-02-05(๊ธˆ)

ํ•™์Šต ์‹œ๊ฐ„

11:00~24:00

ํ•™์Šต ๋ฒ”์œ„ ๋ฐ ์ฃผ์ œ

Backbone, javascript

ํ•™์Šต ๋ชฉํ‘œ

Appearance view์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง ๋ฐฉ์‹์„ ํ™•์ •ํ•œ๋‹ค.

๋™๋ฃŒ ํ•™์Šต ๋ฐฉ๋ฒ•

sanam, jujeong๋‹˜๊ณผ appearance_view๋ฅผ liveshare๋กœ ํ•จ๊ป˜ ๊ตฌํ˜„

์ƒ์„ธ ํ•™์Šต ๋‚ด์šฉ

๊ธฐ์กด์— appearance_view๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด Backbone.js์—์„œ ์ง€ํ–ฅํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋งŽ์ด ๋‹ค๋ฅธ ๊ฒƒ์„ ๋Š๊ผˆ๋‹ค.

๋ฌธ์ œ)

online_user_list_view์—์„œ user_unit์„ ํด๋ฆญํ•˜์—ฌ user_menu๋ฅผ ํ† ๊ธ€์‹œํ‚จ ํ›„, ๋‹ค๋ฅธ user_unit์„ ํด๋ฆญ์‹œ์ผฐ์„ ๋•Œ ๊ธฐ์กด์— ํ† ๊ธ€๋˜์—ˆ๋˜ user_menu๋ฅผ ์—†์• ์•ผํ–ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด jQuery๋กœ DOM ์š”์†Œ๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜์—ฌ ์‚ญ์ œํ•ด์™”์œผ๋‚˜, ํ•ด๋‹น DOM์š”์†Œ์— ๋ฐ”์ธ๋”ฉ๋˜์–ด์žˆ๋˜ ์ด๋ฒคํŠธ๋“ค์ด ์ œ๋Œ€๋กœ stopListening๋˜๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋˜์ง€ ์•Š์•˜๋‹ค.

๊ฑฐ๊ธฐ๋‹ค ์ด๋ฒคํŠธ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์‰ฌ์šฐ๋ผ๊ณ  model๊ณผ collection์ด ์žˆ๋Š”๋ฐ ์ œ๋Œ€๋กœ ํ™œ์šฉ๋˜์ง€ ์•Š์•˜๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์•ˆ๋Ÿ๋‚˜.

ํ•ด๊ฒฐ)

'Backbone ์Šค๋Ÿฝ๊ฒŒ' ์•„๋ž˜ ๊ณผ์ •์„ ๊ฑฐ์น˜๋„๋ก ํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

  1. user_unit A๋ฅผ ํด๋ฆญํ•œ๋‹ค. ๊ทธ๋Ÿผ createUserMenu๊ฐ€ ๋™์ž‘ํ•˜๊ณ , user model์— 'createUserMenu' ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•œ๋‹ค.

  2. ์ด๋ฅผ ๊ฐ์ง€ํ•œ user_unit A์˜ user_unit_view๋Š” user_menu_view๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

  3. ๋‹ค๋ฅธ user_unit B๋ฅผ ํด๋ฆญํ•œ๋‹ค. ๊ทธ๋Ÿผ deleteAndCreateUserMenu๊ฐ€ ๋™์ž‘ํ•˜๊ณ , users collection์— 'deleteUserMenu' ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•œ๋‹ค. ์ดํ›„ user_unit B์˜ user_unit_view์™€ ์—ฐ๋™๋˜์–ด์žˆ๋Š” user model์— 'createUserMenu' ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•œ๋‹ค.

  4. ์ด๋ฅผ ๊ฐ์ง€ํ•œ user_unit_view๋“ค์€ user_menu_view๋ฅผ destoryํ•˜๊ณ , ์—ฐ์ด์–ด user_unit B์˜ user_unit_view๊ฐ€ user_menu_view๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์ด ๊ณผ์ •์—์„œ Backbone view ์ƒ์„ฑ์˜ ์„ธ๋ถ€์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์˜๋ฌธ)

view๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ์ธ์ž๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ํ•ด์‹œ์— model์ด ํฌํ•จ๋˜์–ด์žˆ์œผ๋ฉด ๊ทธ ํ‚ค์˜ ๋ฐธ๋ฅ˜๋Š” this.model๋กœ ๋ฐ”๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋Ÿผ parent ๊ฐ™์€ ๊ฒƒ๋„ ํ‚ค๋กœ ๋„˜๊ฒจ์ฃผ๋ฉด ๋ ๊นŒ?

๋‹ต)

ํ™•์ธํ•ด๋ณด๋‹ˆ ์•ˆ๋œ๋‹ค.

model์€ ๋œจ๋Š”๋ฐ parent๋Š” ์•ˆ๋–ด๋‹ค. backbone view ๋‚ด์ ์œผ๋กœ model ํ•ด์‹œํ‚ค๋ฅผ ํ™•์ธํ•˜์—ฌ attribute๋ฅผ ์…‹ํŒ…ํ•˜์ง€๋งŒ parent ํ•ด์‹œํ‚ค๋Š” ํ™•์ธํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค. ๋•Œ๋ฌธ์— ์•„๋ž˜์ฒ˜๋Ÿผ ์ง์ ‘ ๊ฐ์ฒด์— attribute๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผํ•œ๋‹ค.

this.parent = options.parent

ํ•™์Šต ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ์ดํ‰

๊ฐœ์ธ ์‚ฌ์ •์ƒ ๋Šฆ๊ฒŒ ์ฐธ์—ฌํ–ˆ๋Š”๋ฐ ๊ตฌ์ƒํ•œ๋Œ€๋กœ ์ž˜ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ ๊ฒƒ์ด ๋งŒ์กฑ์Šค๋Ÿฝ๋‹ค. ํ•˜์ง€๋งŒ ์–ด๋–ค ๋ฐฉ์‹์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง์ด ์ตœ์ ์ผ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์€ ๊นŠ์–ด๋งŒ ๊ฐ„๋‹ค.. ๊ทธ๋ฆฌ๊ณ  ์ปฌ๋ ‰์…˜, ๋ชจ๋ธ์ด ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ Backbone์— ์ •์˜๋œ fetch ํ•จ์ˆ˜๋กœ ์ฃผ๊ณ ๋ฐ›์•„์•ผ๋งŒํ•˜๋Š”๊ฐ€? ์ฃผ๋ง์— ์ข€ ํƒ๊ตฌํ•ด๋ด์•ผ๊ฒ ๋‹ค.

๋‹ค์Œ ํ•™์Šต ๊ณ„ํš

  • Appearance view ์™„์„ฑ

Last updated