๋น๋๊ธฐ์ ์ผ๋ก ๋์ํ๋ค= ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๊ฑฐ๋, ์ด๋ค ์ด๋ฒคํธ๊ฐ ์ผ์ด๋ ๋ ๊น์ง ๊ณ์ฐ์ ๋ฉ์ถ๊ณ ๋๊ธฐํ๋ ์ผ์ด ์ฆ๋ค.์น ๋ธ๋ผ์ฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ์ด๋ฒคํธ ์ฃผ๋์ ์ด๋ค.ํ๋ก๊ทธ๋จ์ด ์ค์ ๋ก ๋ฌด์์ธ๊ฐ ์คํํ๊ธฐ ์ ์ ์ฌ์ฉ์๊ฐ ๋ฌด์ธ๊ฐ ํด๋ฆญํ๊ณ ํญํ์ฌ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์์ผ์ผํ๋ค.์๋ฐ์คํฌ
๋ณธ๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ ์๋ฒฝ๊ฐ์ด๋๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
ํด๋ฆฐํ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด ๊ณต๋ถ๋ฅผ ์์ํ๋ฉด ํญ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด๋ ๋จ์ด๋ฅผ ๋ฃ๊ฒ๋๋ค. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ฌด์์ด๋ฉฐ, ์ด๋ค ์ด์ ๋๋ฌธ์ ์ฐ๋ฆฌ์๊ฒ ์ต์ํ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด ์๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด ๋ ์ค๋ฅด๊ณ ์๋์ง ์์๋ณด์.ํจ์๋ ์ ๋ ฅ์ด ์ฃผ์ด์ง๋ฉด ์ด๋ค ์ฒ๋ฆฌ ๊ณผ์ ์
์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ฅผ ํ๋ค๋ณด๋ฉด ๋ฐฑํธ๋ํน์ด๋ผ๋ ๊ฐ๋ ์ด ๋์จ๋ค. ๋ฌธ์ ์ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด์ ๋ฐฑํธ๋ํน ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ํ์์ ์งํํด์ผํ๋ค. ์ ๋ฐฑํธ๋ํน์ ์ฌ์ฉํ๋ฉด ํจ์จ์ฑ์ ๋์ผ ์ ์๋์ง ๋ฐฑํธ๋ํน ์์ ๋ฅผ ๋ณด๋ฉฐ ๊ณต๋ถํด๋ณด๊ณ ์ ํ๋ค.๋ชจ๋ ์กฐํฉ์ ์๋ฅผ ์ดํด๋ณด๋ ๊ฒ์ธ๋ฐ, ๋จ ์กฐ๊ฑด์ด ๋ง
์ ์ํ ์ฌ์ฉ์๋ค์ด ์ค์๊ฐ ์ํต์ ํตํด์ โ์์ ์ ํ์ณ ๊ฐโ ๊ณ ์์ด๋ฅผ ์ฐพ๋ ์ปจ์ ์ ์ฑํ ๊ธฐ๋ฐ ์น ๊ฒ์์ ๋๋ค. ์ฌ์ฉ์๋ค์ ์ค์๊ฐ์ผ๋ก ๋ํํ๋ฉด์ ์์ ์ ํ์ณ ๊ฐ ๋งํผ์ ๊ณ ์์ด๋ฅผ ์ฐพ์์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด์ ์ฌ์ฉ์์๊ฒ ์ฌ๋ฏธ์๋ ๊ฒ์ ์์๋ฅผ ์ฃผ์ด ์ฌ์ฉ์๋ค์ด ํฌํ๋ฅผ ํตํด์ ๋งํผ์
2021/10/19 ~ 2021/10/21์ค๋ต ๊ฒ์์ด๋?๋ณ๋์ ์ค์น ์์ด ์ธ์ ์ด๋์๋ ์ด์ฉ์ด ๊ฐ๋ฅํ ๋ฌด๋ฃ ๋ฏธ๋๊ฒ์์ด๋ค.์ด๋ ธ์ ๋ ํ๋ ์ค๋ต ๊ฒ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ตฌํํด๋ณด๋ฉฐ ํ๋ก๊ทธ๋จ ๊ตฌํ ์ค๋ ฅ์ ํฅ์์ํจ๋ค.๋ณ์๋ค์ ์์ ํ๊ฒ ๋ณ๊ฒฝํ๊ณ ์ ์งํ ์ ์๋๋ก ํ๋ค.๊ฐ๋ ์ฑ์ด ์ข์
์ ํต์ ์ธ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๋ฐฉ์์ ์์ ํ HTMLํ์ผ์ ์๋ฒ๋ก๋ถํฐ ์ ๊ณต๋ฐ๋ ๋ฐฉ์์ ํ๊ณ๋ฅผ ํด๊ฒฐํ๋ Socket.io๋ ์น ํ์ด์ง์์ ์ฌ์ฉ์์์ ํ๋ฐํ ์ํธ์์ฉ์ ๊ฐํธํ๊ฒ ์ ๊ณตํ๋ค. socket.io๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์๊ฐ ์ฑํ ๊ธฐ๋ฅ๊ณผ ์๋ฒ์ ํด๋ผ์ด์ธํธ๋จ์ ํ๋ฐํ ํต์ ์ด ํ์
ํ๋ก ํธ ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ์ ์์์ผํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ์์ ํต์ฌ์ reflow์ด๋ค. DOM ์์๋ฅผ ๋ค๋ฃฐ ๋, reflow๊ฐ ์ต๋ํ ๋ฐ์ํ์ง ์๋๋ก ์กฐ์ฌํด์ผ ํ๋ค. ๋ฐ๋ผ์ ์ด ๊ธ์ ์์ฑํ๋ฉฐ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง๊ณผ์ ๊ณผ ๋ฆฌํ๋ก์ฐ์ ๋ํด์ ์์๋ณด๊ณ ์
ํ๋ก ํธ์๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ ๋, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ซํ๋ ๊ธฐ์ตํ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ window.localStorage๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์์ ์ ๋ ฅ์ key/value ์์ผ๋ก ์ ์ฅํ ์ ์๋ค. ๋ฐ๋ผ์ todo li
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ๋ก๊ทธ์ธ ํผ์์ ์ฌ์ฉ์์ ์ ๋ ฅ์ด ์์ด๋๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์ ๋ ฅ์ธ์ง ํ์ธํ๊ฑฐ๋, ํ์๊ฐ์ ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋น๋ฐ๋ฒํธ๊ฐ ์ซ์์ ์๋ฌธ์์ ํน์๋ฌธ์๋ฅผ ํฌํจํ ๋ฒํธ์ธ์ง ํ์ธํ๋ ๊ณผ์ ์ด ํ์ํ๋ค. ์ด๋ ์ ๊ท ํํ์์ ํตํด์ ํ์ธํ ์ ์์ผ๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ
์์ ์ฐพ๊ธฐ๋ ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋ฉด ์ฝ์ง๋ง, ์๊ฐ ๋ณต์ก๋๋ฅผ ์ค์ด๊ธฐ ์ํด์๋ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ฌ์ฉํด์ผํ๋ค. ์์๋ฅผ ์ฐพ๋ ๋ฌธ์ ๋ ๊ฐ๋จํ์ง๋ง ๋ผ์ด๋ธ์ฝ๋ฉ์ผ๋ก ์ถ์ ๋ ์ ์์ผ๋ฏ๋ก ์์๋๋ฉด ์ข๋ค.์ฐธ๊ณ : ์ํค๋ฐฑ๊ณผ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ ์์๋ฅผ ์ฐพ๋๋ฐ ์ฌ์ฉ๋๋ค.2๋ถํฐ ์์๋ฅผ ๊ตฌํ๊ณ ์
๋ง์ ์๋ก์ ๋ถ๋ถ ์งํฉ๋ค๋ก ๋๋ ์ง ์์๋ค์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์กฐ์ํ๋ ์๋ฃ ๊ตฌ์กฐ์ด๋ค.์ด๋ค ์์๊ฐ ์ฃผ์ด์ก์ ๋ ์ด ์์๊ฐ ์ํ ์งํฉ์ ๋ฐํํ๋ค.์ด๋ค ์์๊ฐ ์ํ ์งํฉ์ ๋ํํ๋ ์์๋ฅผ ๋ฐํํ๋๋ฐ,ย ์ด๋ฅผ ์ํด ์ด๋ค ์์์ ๊ฐ ๋ํ ์์๋ค ๊ฐ์ ํ์ธ๋ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํ์ฌ ๊ฐ
๋๋น ์ฐ์ ํ์ (BFS)์ผ๋ก ๊ทธ๋ํ๋ฅผ ํ์ํด๋ณด์.ํ๋์ ์ ์ ์ผ๋ก ์์ํ์ฌ, ์ฐจ๋ก๋๋ก ๋ชจ๋ ์ ์ ์ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ด๋ค.ํน์ ๋์์์ ๋ค๋ฅธ ๋์๋ก ๊ฐ ์ ์๋์ง ์๋์ง, ์ ์ ํ๋ก์์ ํน์ ๋จ์์ ๋จ์๊ฐ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋์ง ์์๋ณผ ์ ์๋ค.BFS๋ ๊ทธ๋ํ์์ ๋๊ฒ
๊น์ด ์ฐ์ ํ์(DFS)์ผ๋ก ๊ทธ๋ํ๋ฅผ ํ์ํด๋ณด์.ํ๋์ ์ ์ ์ผ๋ก ์์ํ์ฌ, ์ฐจ๋ก๋๋ก ๋ชจ๋ ์ ์ ์ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ด๋ค.ํน์ ๋์์์ ๋ค๋ฅธ ๋์๋ก ๊ฐ ์ ์๋์ง ์๋์ง, ์ ์ ํ๋ก์์ ํน์ ๋จ์์ ๋จ์๊ฐ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋์ง ์์๋ณผ ์ ์๋ค.DFS๋ ํ์์์ ๊น์ ๊ฒ
๋ค์ด์คํธ๋ผ(Dijkstra) : ํ๋์ ์ ์์ ์ถ๋ฐํ์ ๋ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ์ผ๋ก์ ์ต๋จ ๊ฒฝ๋ก(์ต์๋น์ฉ)๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ. ํ๋ก์ด๋ ์์ฌ : ๋ชจ๋ ์ ์ ์์ ๋ชจ๋ ์ ์ ์ผ๋ก์ ์ต๋จ ๊ฒฝ๋ก(์ต์๋น์ฉ)๋ฅผ ๊ตฌํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.๊ฑฐ์ณ๊ฐ๋ ์ ์ ์ ๊ธฐ์ค์ผ๋ก ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๊ฒ๋ฌธ
CERN(์ ๋ฝ ์ ์ ๋ฌผ๋ฆฌํ ์ฐ๊ตฌ์)์ ํ ๋ฒ๋์ค ๋ฆฌ ๋ฐ์ฌ๋ ๋ฉ๋ฆฌ ๋จ์ด์ ธ์๋ ๋๋ฃ ์ฐ๊ตฌ์์ ์ง์์ ๊ณต์ฉํ ์ ์๋ ์์คํ ์ ๊ณ ์ํ์๋ค. HyperText์ ์ํด ์ํธ๊ฐ์ ์ฐธ์กฐํ ์ ์๋ WWW(World Wide Web) ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ด ๋์๋ค.ํ์ดํผํ ์คํธ(Hyperte
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ์์ค ์ฝ๋๊ฐ ์คํํ๊ธฐ ์ํ ํ๊ฒฝ์ ์ ๊ณตํ๋ ์คํ ์ปจํ ์คํธ์ ๊ด๋ จํ์ฌ ์ด๋ป๊ฒ ๋์ํ๋์ง ์์๋ณด์.๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ๊ธฐ์ ์ผ๋ก ๊ฒ์ฌํ์ฌ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ ๊ธฐ๋ฅ์ด๋ค.์
๐ ๊ฐ๋ ๋ค์ง๊ธฐ ์ด๋ถ ํ์ ํ์ ๊ธฐ๋ฒ์ค ํ๋๋ก, ํ์ํ๊ณ ์ถ์ ๋ฒ์๋ฅผ ๋ ๋ถ๋ถ์ผ๋ก ๋ถํ ํด์ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ ๋ถ๋ถ์ผ๋ก ๊ณ์ ๋ถํ ํด์ ์กฐ๊ฑด์ ๋ง๋์ง ์ฐพ์๊ฐ๊ธฐ ๋๋ฌธ์, ์๊ฐ ๋ณต์ก๋๊ฐ O(log n)์ผ๋ก ๋งค์ฐ ๋น ๋ฅธํธ์ด๋ค. โ๏ธํ์ํ๋ ๋ฐฉ๋ฒ ๋ฐฐ์ด์ด ์ ๋ ฌ(sort
ํจ์ ์ ์ธ๋ฌธ๊ณผ ํจ์ ๋ฆฌํฐ๋ด์ ํํ๊ฐ ๋์ผํ๋ค. ๊ทธ๋ฌ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ด๋ป๊ฒ ํด์ํ๋๊ฐ?๋ฌธ๋งฅ์ ๋ฐ๋ผ ํจ์ ์ ์ธ๋ฌธ์ด์ฌ์ผ ํ๋์ง, ํจ์ ๋ฆฌํฐ๋ด์ด์ฌ์ผ ํ๋์ง๋ฅผ ํ๋จํ๋ค.์๋ ์์ ๋ฅผ ๋ณด์.์์์ function add๋ฅผ ํจ์ ์ ์ธ๋ฌธ์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด, ํ ๋น ์ฐ์ฐ์์ ์ํด์ ๋ณ์์
ํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ๋ค๋ฅธ ํจ์์ ๋ด๋ถ๋ก ์ ๋ฌ๋๋ ํจ์๋ฅผ ์ฝ๋ฐฑ ํจ์ callback function์ด๋ผ๊ณ ํ๋ค.์ฝ๋ฐฑ ํจ์๋ ๊ณ ์ฐจ ํจ์์ ์ํด ํธ์ถ๋๋ฉฐ, ์ด๋ ๊ณ ์ฐจํจ์๋ ํ์์ ๋ฐ๋ผ ์ฝ๋ฐฑ ํจ์์ ์ธ์๋ฅผ ์ ๋ฌํ ์ ์๋ค.์๋ฐ์คํฌ๋ฆฝํธ๋ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ, ์ฆ ์ด๋ฒคํธ