CodeSquad Day 39 : Front-end Week 3
CodeSquad๐นDay 39
Morning Algo & Algorithm
์ค๋๋ ์ค์ 9์์ ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋๋ฅผ ํ๋ค. ํ๋ก๊ทธ๋๋จธ์ค์ ๋ก๋ ๋ฌธ์ , ๊ทธ๋ฆฌ๊ณ LeetCode์ Happy Number ๋ฌธ์ ์๋ค.
์ค๋์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฑ์ฐ ๊ฐ๋ค ์์ LeetCode์ ๋ฌธ์ ๋ฅผ ํ๋ ๋์ ํ๋ค. Dynamic Progamming์ ํ์ฉํ๋ ๋ฌธ์ ์์ด์ ์์ ์ Udemy์์ ๋ค์๋ ๊ฐ์๋ฅผ ๋ณต์ตํ๋ ๊ธฐํ๊ฐ ๋์๋ค.
Class by Crong
์ด๋ฒ์๋ ๋๋, ์ด๋, ๋ํธ์ ์ฝ๋๋ฅผ ๋ฆฌ๋ทฐ๋ฅผ ์์ํ๊ฒ ๋ค์ ์ ์์๋ค.
๊ทธ ์ธ JSON, ๋น๋๊ธฐ ์ฝ๋์ ๋์ ์์๋ฅผ ์์ํด ๋ณด๋ ๊ฒ, Fetch ๋ฑ์ ๋ํ ์์ ์ด ์ด์ด์ก๋ค.
์ด๋ฒ์๋ ์์ ์ 1์๊น์ง ๊ธธ๊ฒ ์ด์ด์ก๋ค. ๊ทธ๋๋ ๋ค ์ค์ํ ๋ด์ฉ์ด๊ธฐ ๋๋ฌธ์ ์ง์คํ๋ ค๊ณ ์ ์ผ๋ค.
Asynchronous programming
์์ ์ด ๋๋๊ณ ๋์ ๊ทธ๋ฃน ๋ฆฌ๋ทฐ ์ ๊น์ง ๊ณ์ ํ์ต๋ง ํ๋ค. ์ด๋ฒคํธ ๋ฃจํ์ ๋ํ ์๋ ์์์ ๋ค์ ์์ฒญํ๋ฉด์ ๋ณต์ตํ๊ณ , JavaScript Deep Dive ์ฑ ์ ๋น๋๊ธฐ ๋ถ๋ถ์ ์ ๋ ํ๋ค.
Pug?
์ด๋ฒ ๋ฏธ์ ์์ pug๋ฅผ ํ์ฉํด์ ๊ตฌํํ ๋ถ๋ค์ด ๋ช๋ช ๋์ ๋์๋ค. pug๋ผ๋ ๋ง์ ๋ค์ด๋ดค๋๋ฐ ๊ทธ๋์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ฌด์์ด๊ณ ์ด๊ฒ์ ์ผ์ ๋์ ์ฅ์ ์ด ๋ฌด์์ธ์ง ๊ถ๊ธํด์ ๊ณ์ ๊ตฌ๊ธ๋ง์ ํ๋ฉด์ ์์๋ณด์๋ค. ๋ค๋ฅธ ์ฌ๋๋ค ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๋ณด๋ค๊ฐ ์ฅฌ๊ฐ ์ด๋ฒ์ pug๋ฅผ ํ์ฉํ ๊ฒ์ ๋ฐ๊ฒฌํ๊ณ , ๊ฒ๋ํ์ด์์ ์ง๋ฌธ์ ํ๋ค. ์ง์ ์จ ๋ณธ ์์ํ ํ๊ธฐ๋ ๋ฃ๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด์ผ๊ธฐํ๋ ์ค ํฌํค๊ฐ ์์ express ๊ด๋ จํ ์ง๋ฌธ์ ํ๋ค. ๋ผ์ฐํฐ ๊ด๋ จํ ์ง๋ฌธ์ด์๋๋ฐ, ๋๋ express์์ ๋ผ์ฐํฐ๋ฅผ ์จ ๋ณด์ง ์์์ ๋์์ด ๋์ง ๋ชปํ๋ค. ๊ทธ๋ฐ๋ฐ ํฌํค๊ฐ ์ฝ๋ฉ์ ํ ๋ฐฉ์์ด ์ ๋ฐํด์ ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๋ถํ๋๋ ธ๊ณ , ์๋ก์ด ๋ฐฉ์๊ณผ ๊น๋ํ ์ฝ๋์ ๊ฐํํ๋ค.
HTTP status code
์์์ผ ์ฝ๋ ๋ฆฌ๋ทฐ์์, ๋ด๊ฐ express ํ์ฉํ ์ฝ๋์ 400๋ฒ์ ์ํ ์ฝ๋๋ฅผ ํ์ฉํ์๋ค. ์ด๊ฒ์ ๋ณด๊ณ ํฌ๋กฑ์ด ์ํ ์ฝ๋๋ฅผ ํ์ตํด ๋ณด๋ผ๋ ๋๊ธ์ ๋จ๊ธฐ์ ์ ๊ฐ๋จํ๊ฒ ํ์ตํด ๋ณด์๋ค. ์ฌ์ค ์ฝ๊ฐ ์๋ฟ์ง ์๋ ๊ฒ๋ ๋ง์์ ์ง์ ์ฝ๋ฉ์ ํด ๋ณด๋ฉด์ ์ํฉ์ ๋ง๋ ์ฝ๋๋ฅผ ํ์ฉํ ์ ์๋๋ก ํ๊ณ ์ถ๋ค.
Promise, Refactoring
promise ๊ณต๋ถ๋ฅผ ์ฌ๋ ์๊ฒ ํ๊ณ ์ถ์๋๋ฐ ์ ์๊ฐ์ด ์ผ๋ง ์ ๋จ์์, (๋ด์ผ ์์นจ์ ์ด๋ ์ธ์ฆ์ ํด์ผํ๊ธฐ ๋๋ฌธ์ ๋ฆ๊ฒ ์ ์๊ฐ ์๋ค..) Promise ๊ด๋ จ ๋ฉ์๋ 5๊ฐ์ง๋ฅผ ํ์ด๋ณด๊ธฐ๋ง ํ๋ค. Promise.all์ด๋ Promise.race๋ฅผ ํ์ฉํด ๋ณด๊ณ ์ถ์ด์ ์ด๊ฒ์ ํ์ฉํ๋ ์ชฝ์ผ๋ก ๋ฆฌํฉํ ๋ง์ ํ ๋ฒ ํด ๋ณด๋ ค๊ณ ํ๋ค. ๋ด์ผ ๋ฆฌํฉํ ๋ง์ ์ ๋ง์น๊ณ PR์ ๋ณด๋ด๋ ๊ฒ ๋ชฉํ๋ค.