๋ ธ๋ ๋ด์ฅ ๋ชจ๋ ์ฌ์ฉํ๊ธฐ
๋ ธ๋๋ ์น ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ณด๋ค ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ด์์ฒด์ ์ ๋ณด์๋ ์ ๊ทผํ ์ ์๊ณ , ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์ฃผ์์ ๋ํ ์ ๋ณด๋ ๊ฐ์ ธ์ฌ ์ ์๋ค. ๋ฐ๋ก ๋ ธ๋์์ ์ ๊ณตํ๋ ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ๋๋ค.
1. OS ๋ชจ๋
์น ๋ธ๋ผ์ฐ์ ์ ์ฌ์ฉ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ด์์ฒด์ ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ง๋, ๋ ธ๋๋ os ๋ชจ๋์ ์ ๋ณด๊ฐ ๋ด๊ฒจ ์์ด ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
2. path ๋ชจ๋
ํด๋์ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ฝ๊ฒ ์กฐ์ํ๋๋ก ๋์์ฃผ๋ ๋ชจ๋. path ๋ชจ๋์ด ํ์ํ ์ด์ ์ค ํ๋๋ ์ด์์ฒด์ ๋ณ๋ก ๊ฒฝ๋ก ๊ตฌ๋ถ์๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค. ํฌ๊ฒ Windows ํ์ ๊ณผ POSIX ํ์ ์ผ๋ก ๊ตฌ๋ถ๋๋ค. POSIX๋ ์ ๋์ค ๊ธฐ๋ฐ์ ์ด์์ฒด์ ๋ค๋ก macOS์ ๋ฆฌ๋ ์ค๊ฐ ์ํด์๋ค.
- Windows : \๋ก ๊ตฌ๋ถ (ex. C:\Users\Zero)
- POSIX : /๋ก ๊ตฌ๋ถ (ex. /home/zerocho)
โ Note ์ด๋ค ๋ \\๋ฅผ ์ฌ์ฉํ๊ณ ์ด๋ค ๋ \๋ฅผ ์ฌ์ฉํ๋์?
์ฝ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ด๋ค ๋๋ \\๋ฅผ ์ฌ์ฉํ๊ณ , ์ด๋ค ๋๋ ๊ทธ๋ฅ \๋ฅผ ์ฌ์ฉํ์ฌ Windows ๊ฒฝ๋ก๋ฅผ ํ์ํใท. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒฝ๋ก๋ \ ํ๋๋ฅผ ์ฌ์ฉํด์ ํ์ํ๋ค. ํ์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด์์๋ \๊ฐ ํน์๋ฌธ์์ด๋ฏ๋ก \๋ฅผ ๋ ๊ฐญ ๋ถ์ฌ ๊ฒฝ๋ก๋ฅผ ํ์ํด์ผ ํ๋ค.
ex. \n์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด์์ ๊ฐํ์ ๋ปํจ. ๋ฐ๋ผ์ C:\node์ ๊ฐ์ ๊ฒฝ๋ก์์ ์๋์น ์๊ฒ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก C:\\node์ฒ๋ผ ํ์
path ๋ชจ๋์ ์์ ๊ฐ์ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์์์ ์ฒ๋ฆฌํด์ค๋ค. → Windows์์ path ๋ชจ๋์ด ๊ผญ ํ์ํ ์ด์
โ Note ์๋๊ฒฝ๋ก์ ์ ๋๊ฒฝ๋ก
- ์ ๋๊ฒฝ๋ก : ํธํธ ํด๋Windows์ C:\๋ POSIX์ /)๋ ๋ ธ๋ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ์์น๊ฐ ๊ธฐ์ค์ด ๋๋ค.
- ์๋๊ฒฝ๋ก : ํ์ฌ ํ์ผ์ด ๊ธฐ์ค์ด ๋๋ค. ํ์ฌ ํ์ผ๊ณผ ๊ฐ์ ๊ฒฝ๋ก๋ฉด ์ ํ๋(.)๋ฅผ, ํ์ฌ ํ์ผ๋ณด๋ค ํ ๋จ๊ณ ์์ ๊ฒฝ๋ก๋ฉด ์ ๋ ๊ฐ(..)๋ฅผ ์ฌ์ฉํด ํํํ๋ค.
3. url ๋ชจ๋
์ธํฐ๋ท ์ฃผ์๋ฅผ ์ฝ๊ฒ ์กฐ์ํ๋๋ก ๋์์ฃผ๋ ๋ชจ๋.
url ์ฒ๋ฆฌ์ 2๊ฐ์ง ๋ฐฉ์
- WHATWG ๋ฐฉ์ (๋ ธ๋ ๋ฒ์ 7์์ ์ถ๊ฐ) ๋ฐฉ์์ url (์๋ ๊ทธ๋ฆผ์ ์๋ซ ๋ถ๋ถ)
- ๊ธฐ์กด ๋ ธ๋์์ ์ฌ์ฉํ๋ ๋ฐฉ์์ url (์๋ ๊ทธ๋ฆผ์ ์ ๋ถ๋ถ)
โ ๊ธฐ์กด ๋ ธ๋ URL ๋ฐฉ์
- url.parse(์ฃผ์) : ์ฃผ์๋ฅผ ๋ถํดํ๋ค. WHATWG ๋ฐฉ์๊ณผ ๋น๊ตํ๋ฉด username๊ณผ password ๋์ auth ์์ฑ์ด ์๊ณ , searchParams ๋์ query๊ฐ ์๋ค.
- url.format(๊ฐ์ฒด) : ๋ถํด๋์๋ url ๊ฐ์ฒด๋ฅผ ๋ค์ ์๋ ์ํ๋ก ์กฐ๋ฆฝํ๋ค. WHATWG ๋ฐฉ์์ url๊ณผ ๊ธฐ์กด ๋ ธ๋์ url ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
โก WHATWG URL ๋ฐฉ์
WHATWG์ ๋ ธ๋์ url์ ์ทจํฅ์ ๋ฐ๋ผ ์ฌ์ฉํ๋ฉด ๋์ง๋ง, ๋ ธ๋์ url ํ์์ ๊ผญ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ฃผ์๊ฐ host ๋ถ๋ถ ์์ด pathname ๋ถ๋ถ๋ง ์ค๋ ๊ฒฝ์ฐ(/book/bookList.aspk), WHATWG ๋ฐฉ์์ ์ด ์ฃผ์๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.
WHATWG ๋ฐฉ์์ search ๋ถ๋ถ์ searchParams๋ผ๋ ํน์ํ ๊ฐ์ฒด๋ก ๋ฐํํ๋ฏ๋ก ์ ์ฉํ๋ค. search ๋ถ๋ถ์ ๋ณดํต ์ฃผ์๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉ๋๋ค. search๋ ๋ฌผ์ํ(?)๋ก ์์ํ๊ณ , ๊ทธ ๋ค์ ํค=๊ฐ ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ค. ์ฌ๋ฌ ํค๊ฐ ์์ ๊ฒฝ์ฐ์๋ &๋ก ๊ตฌ๋ถํ๋ค.
ex) http://www.gilbut.co.kr/?page=3&limit=10&category=nodejs&category=javascript
→ ?page=3&limit=10&category=nodejs&category=javascript ๋ถ๋ถ์ด search
query ๊ฐ์ ๋ฌธ์์ด๋ณด๋ค searchParams๊ฐ ์ ์ฉํ ์ด์ ๋ query์ ๊ฒฝ์ฐ ์์ ๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ์ํด์๋ queryString ๋ชจ๋์ ํ ๋ฒ ๋ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
4. queryString ๋ชจ๋
WHATWG ๋ฐฉ์์ url ๋์ ๊ธฐ์กด ๋ ธ๋์ url์ ์ฌ์ฉํ ๋ search ๋ถ๋ถ์ ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ๊ฐ์ฒด๋ก ๋ง๋๋ ๋ชจ๋์ด๋ค.
5. crypto ๋ชจ๋
๋ค์ํ ๋ฐฉ์์ ์ํธํ๋ฅผ ๋์์ฃผ๋ ๋ชจ๋์ด๋ค. ๋ช ๊ฐ์ง ๋ฉ์๋๋ ์ตํ๋๋ฉด ์ค์ ์๋น์ค์๋ ์ ์ฉํ ์ ์์ด ์ ๋ง ์ ์ฉํ๋ค.
5-โ . ๋จ๋ฐฉํฅ ์ํธํ
- ๋จ๋ฐฉํฅ ์ํธํ : ๋ณตํธํํ ์ ์๋ ์ํธํ ๋ฐฉ์
๋น๋ฐ๋ฒํธ๋ ๋ณดํต ๋จ๋ฐฉํฅ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ ์ํธํํ๋ค. ์ฆ, ๋จ๋ฐฉํฅ ์ํธํ๋ ํ ๋ฒ ์ํธํํ๋ฉด ์๋ ๋ฌธ์์ด์ ์ฐพ์ ์ ์๋ค.
๋จ๋ฐฉํฅ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ๋ก ํด์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
- ํด์ ๊ธฐ๋ฒ : ์ด๋ ํ ๋ฌธ์์ด์ ๊ณ ์ ๋ ๊ธธ์ด์ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ฐ๊ฟ๋ฒ๋ฆฌ๋ ๋ฐฉ์
์ ๋ ฅ ๋ฌธ์์ด์ ๊ธธ์ด๋ ๋ค๋ฅด์ง๋ง, ์ถ๋ ค ๋ฌธ์์ด์ ๊ธธ์ด๋ ๊ณ ์ ๋์ด ์๋ค.
โ Note ๋ณตํธํํ ์ ์๋ ์ํธํ๊ฐ ์ ํ์ํ ๊น?
๊ณ ๊ฐ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ก๊ทธ์ธํ ๋๋ง๋ค ์ ๋ ฅ๋ฐ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํธํํ ํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๋ฐ๋ฒํธ์ ๋น๊ตํ๋ฉด ๋๋ค. ์๋ ๋น๋ฐ๋ฒํธ๋ ์ด๋์๋ ์ ์ฅ๋์ง ์๊ณ ์ํธํ๋ ๋ฌธ์์ด๋ก๋ง ๋น๊ตํ๋ ๊ฒ์ด๋ค.
- createHash(์๊ณ ๋ฆฌ์ฆ) : ์ฌ์ฉํ ํด์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฃ์ด์ค๋ค. md5, sha1, sha256, sha512 ๋ฑ์ด ๊ฐ๋ฅํ์ง๋ง, md5์ sha1์ ์ด๋ฏธ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์๋ค. ํ์ฌ๋ sha512 ์ ๋๋ก ์ถฉ๋ถํ์ง๋ง, ๋์ค์ sha512๋ง์ ๋ ์ทจ์ฝํด์ง๋ฉด ๋ ๊ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฐ๊ฟ์ผ ํ๋ค.
- update(๋ฌธ์์ด) : ๋ณํํ ๋ฌธ์์ด์ ๋ฃ์ด์ค๋ค.
- digest(์ธ์ฝ๋ฉ) : ์ธ์ฝ๋ฉํ ์๊ณ ๋ฆฌ์ฆ์ ๋ฃ์ด์ค๋ค. base64, hex, latin1์ด ์ฃผ๋ก ์ฌ์ฉ๋๋๋ฐ ๊ทธ ์ค base64๊ฐ ๊ฒฐ๊ณผ ๋ฌธ์์ด์ด ๊ฐ์ฅ ์งง์ ์ ์ฉ๋๋ค. ๊ฒฐ๊ณผ๋ฌผ๋ก ๋ณํ๋ ๋ฌธ์์ด์ ๋ฐํํ๋ค.
๊ฐ๋ nopqrst๋ผ๋ ๋ฌธ์์ด์ด qvew๋ก ๋ณํ๋์ด abcdefgh๋ฅผ ๋ฃ์์ ๋์ ๋๊ฐ์ ์ถ๋ ฅ ๋ฌธ์์ด๋ก ๋ฐ๋ ๋๋ ์๋ค. ์ด๋ฐ ์ํฉ์ ์ถฉ๋์ด ๋ฐ์ํ๋ค๊ณ ํํํ๋ค. ํดํน์ฉ ์ปดํจํฐ์ ์ญํ ์ ์ด๋ ํ ๋ฌธ์์ด์ด ๊ฐ์ ์ถ๋ ฅ ๋ฌธ์์ด์ ๋ฐํํ๋์ง ์ฐพ์๋ด๋ ๊ฒ์ด๋ค. ์ฌ๋ฌ ์ ๋ ฅ ๋ฌธ์์ด์ด ๊ฐ์ ์ถ๋ ฅ ๋ฌธ์์ด๋ก ๋ณํ๋ ์ ์์ผ๋ฏ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ abcdefgh๋ก ์ค์ ํ์ด๋ nopqrst๋ก ๋ซ๋ฆฌ๋ ์ฌํ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
ํดํน์ฉ ์ปดํจํฐ์ ์ฑ๋ฅ์ด ๋ฐ๋ฌํจ์ ๋ฐ๋ผ ๊ธฐ์กด ํด์ ์๊ณ ๋ฆฌ์ฆ๋ค์ด ์ํ๋ฐ๊ณ ์๋ค. ๋์ ํด์ ์๊ณ ๋ฆฌ์ฆ๋ ๋ ๊ฐ๋ ฅํ๊ฒ ์งํํ๊ณ ์๋ค. ์ธ์ ๊ฐ sha512๋ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ฒ ๋๋ค๋ฉด ๋ ๊ฐ๋ ฅํ ์๊ณ ๋ฆฌ์ฆ์ธ sha3์ผ๋ก ์ด์ ํ๋ฉด ๋๋ค.
ํ์ฌ๋ ์ฃผ๋ก pbkdf2๋ bcrypt, scrypt๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํ๊ณ ์๋ค. ์ด์ค์ ๋ ธ๋์์ ์ง์ํ๋ pbkdf2์ ๋ํด ์์๋ณด์. pbkdf2๋ ๊ฐ๋จํ ๋งํ๋ฉด ๊ธฐ์กด ๋ฌธ์์ด์ salt๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฌธ์์ด์ ๋ถ์ธ ํ ํด์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ณตํด์ ์ ์ฉํ๋ ๊ฒ์ด๋ค.
๋จผ์ randomBytes() ๋ฉ์๋๋ก 64 ๋ฐ์ดํธ ๊ธธ์ด์ ๋ฌธ์์ด์ ๋ง๋ค์ด์ค๋ค. ์ด๊ฒ์ด salt๊ฐ ๋๋ค. ์ ์ฝ๋๋ sha512๋ก ๋ณํ๋ ๊ฒฐ๊ด๊ฐ์ ๋ค์ sha512๋ก ๋ณํํ๋ ๊ณผ์ ์ 10๋ง ๋ฒ ๋ฐ๋ณตํ๋ ์ฝ๋์ด๋ค.
pbkdf2๋ ๊ฐ๋จํ์ง๋ง bcrypt๋ scrypt๋ณด๋ค ์ทจ์ฝํ๋ฏ๋ก ๋์ค์ ๋ ๋์ ๋ณด์์ด ํ์ํ๋ฉด scrypt ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋๋ค.
5-โก. ์๋ฐฉํฅ ์ํธํ
- ์๋ฐฉํฅ ๋์นญํ ์ํธํ : ์ํธํ๋ ๋ฌธ์์ด์ ๋ณตํธํํ ์ ์๋ค.
์ฌ๊ธฐ์์๋ ํค(์ด์ )๋ผ๋ ๊ฒ์ด ์ฌ์ฉ๋๋ค. ์ํธ๋ฅผ ๋ณตํธํํ๋ ค๋ฉด ์ํธํํ ๋ ์ฌ์ฉํ ํค์ ๊ฐ์ ํค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
crypto.createCipher(์๊ณ ๋ฆฌ์ฆ, ํค) : ์ํธํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํค๋ฅผ ๋ฃ์ด์ค๋ค. ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ aes-256-cbc๋ฅผ ์ฌ์ฉํ๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์๊ณ ๋ฆฌ์ฆ ๋ชฉ๋ก์ crypto.getCipers()๋ฅผ ํ๋ฉด ๋ณผ ์ ์๋ค.
- cipher.update(๋ฌธ์์ด, ์ธ์ฝ๋ฉ, ์ถ๋ ฅ ์ธ์ฝ๋ฉ) : ์ํธํํ ๋์๊ณผ ๋์์ ์ธ์ฝ๋ฉ, ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์ ์ธ์ฝ๋ฉ์ ๋ฃ์ด์ค๋ค. ๋ณดํต ๋ฌธ์์ด์ utf8๋ก ์ด์ฝ๋ฉ์, ์ํธ๋ base64๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค.
- cipher.final(์ถ๋ ฅ ์ธ์ฝ๋ฉ) : ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฌผ์ ์ธ์ฝ๋ฉ์ ๋ฃ์ด์ฃผ๋ฉด ์ํธํ๊ฐ ์๋ฃ๋๋ค.
- crypto.createDecipher(์๊ณ ๋ฆฌ์ฆ, ํค) : ๋ณตํธํํ ๋ ์ฌ์ฉํ๋ค. ์ํธํํ ๋ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํค๋ฅผ ๊ทธ๋๋ก ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค.
- decipher.update(๋ฌธ์์ด, ์ด์ฝ๋ฉ, ์ถ๋ ฅ ์ธ์ฝ๋ฉ) : ์ํธํ๋ ๋ฌธ์ฅ, ๊ทธ ๋ฌธ์ฅ์ ์ธ์ฝ๋ฉ, ๋ณตํธํํ ์ธ์ฝ๋ฉ์ ๋ฃ์ด์ค๋ค. createCipher์ update()์์ utf8, base64 ์์ผ๋ก ๋ฃ์๋ค๋ฉด, createDecipher์ update()์์๋ base64, utf8 ์์ผ๋ก ๋ฃ์ผ๋ฉด ๋๋ค.
- decipher.final(์ถ๋ ฅ ์ธ์ฝ๋ฉ) : ๋ณตํธํ ๊ฒฐ๊ณผ๋ฌผ์ ์ธ์ฝ๋ฉ์ ๋ฃ์ด์ค๋ค.
์ง๊ธ๊น์ง ๋ฐฐ์ด ๋ฉ์๋ ์ด์ธ์๋ crypto ๋ชจ๋์ ์๋ฐฉํฅ ๋น๋์นญํ ์ํธํ, HMAC ๋ฑ์ ๋ค์ํ ์ํธํ๋ฅผ ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ ๋ ธ๋ ๊ณต์ ๋ฌธ์(http://nodejs.org/api/crypto.html)์์ ํ์ธํ ์ ์๋ค.
6. util ๋ชจ๋
๊ฐ์ข ํธ์ ๊ธฐ๋ฅ์ ๋ชจ์๋ ๋ชจ๋์ด๋ค. ๊ณ์ํด์ API๊ฐ ์ถ๊ฐ๋๊ณ ์๊ณ , ๊ฐ๋ deprecated๋์ด ์ฌ๋ผ์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
โ Note deprecated์ด๋?
deprecated๋ ํ๋ก๊ทธ๋๋ฐ ์ฉ์ด๋ก, '์ค์๋๊ฐ ๋จ์ด์ ธ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ณ ์์ผ๋ก๋ ์ฌ๋ผ์ง๊ฒ ๋ ' ๊ฒ์ด๋ผ๋ ๋ป์ด๋ค. ์๋ก์ด ๊ธฐ๋ฅ์ด ๋์์ ๊ธฐ์กด ๊ธฐ๋ฅ๋ณด๋ค ๋ ์ข์ ๋, ๊ธฐ์กด ๊ธฐ๋ฅ์ deprecated ์ฒ๋ฆฌํ๊ณค ํ๋ค. ์ด์ ์ฌ์ฉ์๋ฅผ ์ํด ๊ธฐ๋ฅ์ ์ ๊ฑฐํ์ง๋ ์์ง๋ง ๊ณง ์์จ ์์ ์ด๋ฏ๋ก ๋ ์ด์ ์ฌ์ํ์ง ๋ง๋ผ๋ ์๋ฏธ์ด๋ค.
util์์ ์์ฃผ ์ฌ์ฉ๋๋ ๋ ๋ฉ์๋ → deprecate, promisify
- util.deprecate() : ํจ์๊ฐ deprecated ์ฒ๋ฆฌ๋์์์ ์๋ ค์ค๋ค. ์ฒซ ๋ฒ์งธ ์ธ์๋ก ๋ฃ์ ํจ์๋ฅผ ์ฌ์ฉํ์ ๋ ๊ฒฝ๊ณ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค. ๋ ๋ฒ์งธ ์ธ์๋ก ๊ฒฝ๊ณ ๋ฉ์์ง ๋ด์ฉ์ ๋ฃ์ผ๋ฉด ๋๋ค. ํจ์๊ฐ ์กฐ๋ง๊ฐ ์ฌ๋ผ์ง๊ฑฐ๋ ๋ณ๊ฒฝ๋ ๋ ์๋ ค์ค ์ ์์ด ์ ์ฉํ๋ค.
- util.promisify() : ์ฝ๋ฐฑ ํจํด์ ํ๋ก๋ฏธ์ค ํจํด์ผ๋ก ๋ฐ๊ฟ์ค๋ค. ๋ฐ๊ฟ ํจ์๋ฅผ ์ธ์๋ก ์ ๊ณตํ๋ฉด ๋๋ค. ์ด๋ ๊ฒ ๋ฐ๊พธ์ด๋๋ฉด async/await ํจํด๊น์ง ์ฌ์ฉํ ์ ์์ด ์ข๋ค. ํ๋ก๋ฏธ์ค๋ฅผ ์ฝ๋ฐฑ์ผ๋ก ๋ฐ๊พธ๋ util.callbackify๋ ์์ง๋ง ์์ฃผ ์ฌ์ฉ๋์ง๋ ์๋๋ค.
'Dev.log > Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Node.js ๊ต๊ณผ์] #6. ์ด๋ฒคํธ ์ดํดํ๊ธฐ (0) | 2021.06.29 |
---|---|
[Node.js ๊ต๊ณผ์] #5. ํ์ผ ์์คํ ์ ๊ทผํ๊ธฐ (0) | 2021.06.29 |
[Node.js ๊ต๊ณผ์] #3. ๋ ธ๋ ๋ด์ฅ ๊ฐ์ฒด ์์๋ณด๊ธฐ (1) | 2021.06.24 |
[Node.js ๊ต๊ณผ์] #2. ๋ ธ๋๋ก ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ์คํํ๊ธฐ (0) | 2021.06.24 |
[Node.js ๊ต๊ณผ์] #1. ํ๊ฒฝ ์ธํ (0) | 2021.06.24 |