Mon Oct 26 2020
...
VanillaJS ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์์ FastComments ์ฌ์ฉํ๊ธฐ
! ์ด ๊ธฐ์ฌ๋ ๊ธฐ์ ์ฉ์ด๋ฅผ ํฌํจํฉ๋๋ค
๋์ ์ฒญ์ค
์ด ๊ธฐ์ฌ๋ ๊ฐ๋ฐ์๋ฅผ ๋์์ผ๋ก ํ๊ณ ์์ต๋๋ค.
์๊ฐ
FastComments VanillaJS ์์ ฏ์ ๋๋ถ๋ถ์ ์์ ์ฌ์ฉ๋ฒ์ ํ์ฌ ํ์ด์ง URL์ ๋ํ ๋๊ธ ์ค๋ ๋๋ฅผ ๋ก๋ํ๋ ๋งค์ฐ ๊ฐ๋จํ ์ฝ๋ ์กฐ๊ฐ์ ๋๋ค. ์ด๋ ๋๋ถ๋ถ์ ๊ณ ๊ฐ๋ค์ด ์ด๋ฌํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ด์ง๋ง, ์ต๊ทผ์๋ SPA๋ฅผ ๊ตฌ์ถํ๊ณ FastComments๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ค์ด ๋ง์ด ๋์์ต๋๋ค.
๋จผ์ , FastComments๋ ์ ์ฉ React ๋ฐ Vue ์ปดํฌ๋ํธ๋ฅผ ์ ๊ณตํ๋ฏ๋ก, ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉ ์ค์ด๋ผ๋ฉด ์ง์ FastComments ์ฃผ์์ ๋ํผ๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค.
ํ์ง๋ง VanillaJS๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๊ฒฝ์ฐ, ๋๊ธ ์์ ฏ์ ๋์ ์ผ๋ก ์ธ์คํด์คํํ๊ณ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
๋จผ์ , URL ๋ฐ URL ID
FastComments๋ ๋๊ธ ์ค๋ ๋์ ์ฐ๊ฒฐ๋ ํ์ด์ง ๋๋ ๊ธฐ์ฌ์ ๋ ๊ฐ์ง ์๋ณ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ตฌ์ฑ ๊ฐ์ฒด์์ ์ด๋ค์ "url" ๋ฐ "urlId" ์์ฑ์ ๋๋ค.
URL์ ๋๊ธ ์์ ฏ์ URL์ ๋๋ค. ์ด์์ ์ผ๋ก, ์ด URL์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ๊นฅ์์ ๋ฐฉ๋ฌธํ ์ ์์ด์ผ ํฉ๋๋ค. ์๋ฆผ ์ด๋ฉ์ผ ๋ฐ ๊ด๋ฆฌ์ ๋๊ตฌ์์ ๋งํฌ๋ก ๋ ธ์ถ๋ฉ๋๋ค.
URL ID๋ ๋ฌธ์์ด๋ก URL์ด๊ฑฐ๋ ID์ ๋๋ค - ํ์ฌ ํ์ด์ง๋ฅผ ๋ํ๋ด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊ฒ์๋ฌผ, ๊ธฐ์ฌ ๋๋ ํ์ด์ง ID๊ฐ ์๋ ๊ฒฝ์ฐ ์ด ๊ฐ์ ๋ํ ํ์ด์ง URL ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. URL ID๊ฐ ๋ณ๋๋ก ์๋ ์ด์ ๋ URL์ ํ์ด์ง์ ๊ณ ์ ํ์ง ์์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์ถ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด ์์ ฏ์ด ์ง์ํ๋ ์ ์ฒด ๊ตฌ์ฑ์ ๋ํ ๋ฌธ์๋ TypeScript GitHub์์ ๋ฌธ์ํ๋์ด ์์ต๋๋ค.
์ธ๋ถ ์ฌํญ ๋ฐ ์ค์ ๋ฐ๋ชจ
์์ ฏ์ด ์ธ์คํด์คํ๋ ๋, ์ผ๋ฐ์ ์ผ๋ก ํธ์ถํ๋ FastCommentsUI ํจ์์ ๊ฒฐ๊ณผ๋ฅผ ์บก์ฒํฉ๋๋ค:
๊ทธ๋ฐ ๋ค์, ์ธ์คํด์ค ๊ฐ์ฒด์์ "update" ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ๊ตฌ์ฑ์ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ตฌ์ฑ ์์๊ฐ ์๋ก ๊ณ ์ณ์ง๋๋ค:
์๋ํ๋ ์์๋ฅผ ์ด ํผ๋ค์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ์์ ์์๋ document.getElementById๋ฅผ ์ฌ์ฉํ์ง๋ง, ์ํ๋ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๋์ ์์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
์ฃผ์์ฌํญ
" urlId"๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ๋ง์ผ๋ก๋ ์๋ํ์ง๋ง, ๋งํฌ๊ฐ ์๋ฆผ ์ด๋ฉ์ผ ๋ฐ ์ค์ฌ ๋๊ตฌ์์ ์๋ํ ์ ์๋๋ก "urlId"์ "url" ๋ ๋ค ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. "url"๋ง ์ ๋ฐ์ดํธํ๋ฉด ์๋ํ์ง ์์ต๋๋ค - ๋๊ธ์ "urlId"์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
๊ฒฐ๋ก
์ด ๊ฐ์ด๋๊ฐ ๋์์ด ๋์ จ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ง๋ฌธ์ด ์์ผ์๋ฉด ์๋์ ๋๊ธ์ ๋ฌ์์ฃผ์ธ์.
๊ฐ์ฌํฉ๋๋ค!
