2021-02-08(Mon)
ํญ๋ชฉ | ๋ด์ฉ |
ํ์ต ๋ ์ง | 2021-02-08(์) |
ํ์ต ์๊ฐ | 11:00~24:00 |
ํ์ต ๋ฒ์ ๋ฐ ์ฃผ์ | Websocket |
ํ์ต ๋ชฉํ | Appearance ์ฑํ ์ฐจ๋จ ๋ง์ ๊ตฌํ |
๋๋ฃ ํ์ต ๋ฐฉ๋ฒ | sanam, jujeong๋๊ณผ ํ์ด์ฝ๋ฉ์ ์งํํจ |
์์ธ ํ์ต ๋ด์ฉ
๋ฌธ์ 1)
Backbone Model, Collection์ ํตํด์(Backbone์ ๊ตฌํ๋์ด์๋ ๋ฉ์๋๋ฅผ ํ์ฉํด์) ๋ฐฑ์๋์ ํต์ ์ ์ฃผ๊ณ ๋ฐ์์ผํ ๊น? ์๋๋ฉด ์ฐ๋ฆฌ๊ฐ ๊ตฌํํ Helper ๋ด์ fetch ํจ์๋ฅผ ์ด์ฉํด์ผํ ๊น? ์ง๊ธ๊น์ง๋ ์ด๋ฅผ ์ฌ๋๊ป ์ ํํ๋๋ฐ ์ผ๊ด์ฑ์ ์ํด ์ ํ ๊ธฐ์ค์ด ํ์ํ๋ค.
๋ฐฐ๊ฒฝ)
ํน์ ์ ์ ๋ฅผ ์ฑํ ์ฐจ๋จํ์ ๋, ์ฆ ์ฑํ ์ฐจ๋จ ๋ฒํผ์ ๋๋ ์ ๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์ ์๋ฒ ์ฌ์ด๋ ๋ชจ๋ ํด๋น ์ ์ ๊ฐ current_user์ ์ํด ์ฐจ๋จ๋์์์ ์์์ผํ๋ค. ๊ทธ๋์ผ ํ๋ก ํธ์๋์์๋ ๋ฉ๋ด๋ฅผ ๋ฐ๊ฟ ์ ์๊ณ , ์๋ฒ ์ฌ์ด๋์์๋ DB๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.
๋ฐฑ์๋์์๋ current_user์ ์ํด ์ฐจ๋จ๋์์์ DB์ ์ ์ฅํ๋ ์ก์ ์ ์ด๋ฏธ ์ ๊ตฌํํด๋ ์ํ์ด๋ค. ํ๋ก ํธ์๋์์ ์ฑํ ์ฐจ๋จ์ ์ด๋ป๊ฒ ์ ์ฅํ๊ณ ๋ค๋ฅธ ์ ์ ๋ค์๊ฒ ์ ํํ ์ง ๊ณ ๋ฏผํด์ผ ํ๋ค.
์ฐธ๊ณ ๋ก ๊ธฐ์กด์๋ ์ ์ ์ฐจ๋จ ๋ฒํผ์ ํด๋ฆญํ์ ๋ view์์ ์ด ์ด๋ฒคํธ์ ๋ฐ์ํด์ chatBan ๋ฉ์๋๋ฅผ ์คํ์ํค๊ณ Helper.fetch๋ฅผ ํตํด์ Post ์์ฒญ์ ๋ณด๋ด๊ฒ๋ ๊ตฌํํด๋๋ค.
ํด๊ฒฐ)
ํด๊ฒฐ์ด๋ผ๊ธฐ๋ณด๋จ ๋ ผ์ ๋์ ๋ง๋ ํ์์ ์ ์๋์ ๊ฐ๋ค.
ํ์ํ๋ค๋ฉด ๋ชจ๋ธ๊ณผ ์ปฌ๋ ์ ์ ๋ง๋ค์ด์ผํ๋ค. ์ด๋ฅผ ๋ชจ๋ธ๊ณผ ์ปฌ๋ ์ ์ fetch๋ฉ์๋๋ก ๋ก๊ฒจ์ฌ ์๋ ์์ด์ผํ๋ค. ๊ทธ๋์ผ ์ต์ ์์ ์ฝ๊ฒ ์ธ ์ ์์ผ๋๊น
๋ฐ๋ฉด ํ๋ก ํธ์์ ์๋ฒ๋ก ๋ณ๊ฒฝ์ ์์ฒญํ๋ ๊ฒ์ Helper.fetch๋ก Post๋ฅผ ๋ณด๋ด๊ฒ๋ ํ์. ์ผ๊ด๋๊ฒ.
๋ฌธ์ 2)
๋ก๊ทธ์ธ๊ณผ ๋ก๊ทธ์์ ์ํ ๊ด๋ฆฌ ๊ธฐ์ค์ ์ ํด์ผํ๋ค. ์ด์ ๋ง์ถฐ์ ๊ตฌํ์ ๋ฌ๋ฆฌํด์ผํ๋ค.
๋ธ๋ผ์ฐ์ ๋น ๋ก๊ทธ์ธ ํ์ฉ(๊ธฐ์กด) ๊ธฐ์กด ๊ตฌํ์์๋ ์ฟ ํค์ encrtyed[:service_id]๋ก ์ ๊ทผํ๋ฉด ์ ์ ๊ฐ ๋ก๊ทธ์ธ๋์ด์๋ค๊ณ ์๊ฐํ๋ค. ์ฟ ํค๊ฐ ๋จ์์์ผ๋ฉด ์ด ์ ์ ๋ฅผ ๋ก๊ทธ์์์ํค๊ณ ๋ก๊ทธ์ธ ํญ์ ์ด์ด์ฃผ๋ ๊น๋ํ ๋ฐฉ์์ด๋ค. ๋ฌธ์ ๋ ํ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฟ ํค๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ํญ์ผ๋ก ๋ก๊ทธ์ธ์ด ๋์ง ์๋๋ค. ๋๋ฒ์งธ ํญ์์ ๋ก๊ทธ์ธํ ๊ฒฝ์ฐ ๊ธฐ์กด ์ ์ ๋ฅผ ๋ก๊ทธ์์์์ผ๋ฒ๋ ค์ผ ํ๋ค.
๋ธ๋ผ์ฐ์ ํญ๋น ๋ก๊ทธ์ธ ํ์ฉ
์ด ๊ฒฝ์ฐ ์ฟ ํค๋ ๋ก๊ทธ์ธ ๊ณผ์ ์์๋ง ์ฌ์ฉํ๊ณ , persist ์ผ์ด๋ธ๋ก ์ฐ๊ฒฐํ ๋๋ง ์ฟ ํค์ ์๋น์ค ์์ด๋๋ฅผ ์ฌ์ฉํ๊ณ , ์ดํ์ ์ฟ ํค๊ฐ ์ด๊ธฐํ๋์ด๋ ์ฐ๊ฒฐ์ด ๋์ด์์ผ๋ฉด ๋ก๊ทธ์ธ๋์ด์๋ ๊ฒ์ผ๋ก ํ๋จํ์. ์์ํ ๋ ์ฟ ํค delete ์์ฒญ์ ํ ํ์๊ฐ ์์ด์ง๋ค.
ํด๊ฒฐ)
ํด๊ฒฐ์ด๋ผ๊ธฐ๋ณด๋จ ๋ ผ์ ๋์ ๋ง๋ ํ์์ ์ ์๋์ ๊ฐ๋ค.
ํ๊ฐ์ ๋์์ ์์ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด์ฉํด์ ํ๋๋ก ํ์. ๋ธ๋ผ์ฐ์ ํญ๋น ๋ก๊ทธ์ธ์ ํ์ฉ๋๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด UX์ ๋ ๋์ ๊ฒ์ด๋ ์๊ตฌ์ฌํญ์ ํฌํจ๋์ด์์ง ์์ผ๋ ์ค๋ฒ๋๋ฒจ๋กญ์ธ ๊ฒ ๊ฐ๋ค. ๋์ ๋ธ๋ผ์ฐ์ ํญ๋น ๋ก๊ทธ์ธ์ด ํ์ฉ๋๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ์ฐ์ ์์๋ฅผ ๋ฏธ๋ค์ ver 1.5์์ ๊ตฌํํ์.
์๋ฌธ 1) import์ ํ ๋ ์ ์๋์ผ๋ก consumer๊ฐ ์์ฑ๋ ๊น?
1๋ฒ์ appearance_channel์ ์๋ ๋ณ์ ์ค ํ๋์ธ ConnectAppearanceChannel์ ์ง์ ํด์ ๊ฐ์ ธ์จ๋ค.
๋ฐ๋ฉด 2๋ฒ์์๋ ๋ฑํ ๋ฌด์์ ๊ฐ์ ธ์ค๊ฒ ๋ค๊ณ ์ง์ ํ์ง ์์์ง๋ง ์ ์๋ํ๋ค. ์? 2๋ฒ์ ๋ฑ ํ๋๋ง ์ค ๋ค๋ ๊ฒ์ด ๋ณด์ฅ๋๊ธฐ ๋๋ฌธ์ด๋ค. export์ default ์ต์ ์ ์ฃผ๋ฉด ์ด ํ์ผ์์๋ ๋ฑ ํ๋๋ง ๋๊ฐ๋ค๋ ๊ฒ์ ๋ณด์ฅํด์ค๋ค.
ใ ใ ๊ทธ๋์ ์ consumer๊ฐ ์์ฑ์ด ๋ฏธ๋ฆฌ ๋์ด์์๊น? exportํ ๋ ํจ์๋ฅผ ์คํํ ๊ฒฐ๊ณผ๊ฐ์ด export๋๊ธฐ ๋๋ฌธ์ด๋ค. consumer ํ์ผ์ ํ์ธํด๋ณด๋ฉด
์์ฒ๋ผ ๋์ด์๋ค.
๊ทธ๋ผ ์ฌ๋ฌ ๊ณณ์์ import๋ฅผ ํด์ฌ ๋ ๋ค๋ฅธ consumer๊ฐ ์์ฑ๋ ๊น? ์๋๋ค. ๋ชจ๋ ๊ฐ์ consumer๋ฅผ ์ฐธ์กฐํ๋ค. javascript ํน์ฑ์ importํ๋ฉฐ ๋ฑ ํ๋ฒ ํ๊ฐ๋๋ ํน์ฑ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
Rails & javascript ํ
ํฌ๋ ํํ ๋ง
first_or_create
includes
join_table ์ฌ์ฉ์ includes๋ฅผ ํ์ฉํ๋ฉด ์ต์ด DB ์ ๊ทผ์ ์ฐ๊ด ํ ์ด๋ธ๋ ํจ๊ป ๋ถ๋ฌ์จ๋ค. ๋๋ถ์ ์ ๊ทผ ํ์๋ฅผ ์ค์ผ ์ ์๋ค.
User table์์ ๋ญํน์ ๋งค๊ธธ ๋
model์์ scope
scope๋ฅผ ์ ํด์ฃผ๊ธฐ ์ํด user.rb model์ ์๋์ฒ๋ผ ์ ์
Safe Navigation Operator
์ฐธ์กฐํ๋ object๊ฐ nil์ธ์ง ํ์ธํ๋ฉฐ ๋์ํ๋ค.
ํน์ DOM ์์ ์์ ์ด๋ค ์์๊ฐ ์๋์ง ํ์ธํ ๋...
...๋ ์๋์ฒ๋ผ ๋ฉ์๋๋ฅผ ์์ฑํด๋ณด์.
ํ์ต ๋ด์ฉ์ ๋ํ ๊ฐ์ธ์ ์ธ ์ดํ
Appearance View๋ฅผ ๋ง๋๋๋ฐ ์๊ฐ๋ณด๋ค ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ธ์ง๋ง, ๋ค๋ฅธ ๋ชจ๋์ ๋ง๋ค ๋ ๋์์ด ๋ ๋ฒํ ์ํ์ฐฉ์ค๋ฅผ ๋ง์ดํ ๊ฒ ๊ฐ๋ค. ๋ค๋ฅธ ๋ชจ๋์ ๋ง๋ค ๋ ์๊ฐ์ ๋ง์ด ์ค์ฌ์ฃผ๊ฒ ์ง.
๋ค์ ํ์ต ๊ณํ
Appearance view ๊ตฌํ์๋ฃ
Last updated