๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Daily/Today I Learned

210113_TIL (ESLint๋กœ ๋ฆฌํŒฉํ† ๋งํ•˜๊ธฐ, Node.js๋กœ ์•Œ๋žŒ๋ด‡ ๋งŒ๋“ค๊ธฐ)

by joooing 2021. 1. 14.
๋ฐ˜์‘ํ˜•

๐ŸŽ ์˜ค๋Š˜ ํ•œ ์ผ


โœ”๏ธ ESLint
์–ด๋–ค ๊ทœ์น™์„ ์ •ํ•ด์„œ ๊ทธ ๋ถ€๋ถ„์— ์ˆ˜์ •ํ•  ์‚ฌํ•ญ์ด ์ƒ๊ธฐ๋ฉด ๋„์™€์ฃผ๋Š” ESlint๋ฅผ ์„ค์น˜ํ•˜๊ณ , ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ค˜๋ณด๋ฉด์„œ ์–ด๋–ค๊ฒŒ ๋‚˜์—๊ฒŒ ๋งž๋Š”์ง€ ํ™•์ธํ–ˆ๋‹ค. ๋นจ๊ฐ„์ค„์ด ๋งŽ์€๊ฒŒ ๋ณด๊ธฐ ์ข‹์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•„ ๊ฒ€์‚ฌ ์กฐ๊ฑด์„ ์ตœ๋Œ€ํ•œ ์™„ํ™”์‹œ์ผฐ๋‹ค.

โœ”๏ธ HA ๋ฆฌํŒฉํ† ๋ง
์ง€๋‚œ ์ฃผ์— ํ’€์—ˆ๋˜ HA ๋ฌธ์ œ๋“ค์„ ํŽ˜์–ด๋ถ„๊ณผ ํ•จ๊ป˜ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์„œ๋กœ ์ฝ”๋“œ๋ฅผ ๋น„๊ตํ•ด๋ณด๋ฉด์„œ ๋น„๊ตํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, ํŽ˜์–ด๋ถ„๊ณผ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•œ ๋ฌธ์ œ๊ฐ€ ๋งŽ์•„์„œ ์žฌ๋ฐŒ๊ฒŒ ์ง„ํ–‰ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น, Spread Operator, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜, for of ๋ฌธ ๋“ฑ ES6๋ฌธ๋ฒ•์„ ์ตœ๋Œ€ํ•œ ์ ์šฉํ•ด๋ณด๋ ค๊ณ  ํ–ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ๋“ค์€ ๊ทธ๋ž˜๋„ (ES6 ๋ฌธ๋ฒ•์ธ์ค„๋„ ๋ชจ๋ฅด๊ณ ) ๋งŽ์ด ์‚ฌ์šฉํ•ด ๋น„๊ต์  ์ต์ˆ™ํ–ˆ๋Š”๋ฐ, ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์€ ์ด๋ฒˆ์— ์ฒ˜์Œ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์–ด๋–ป๊ฒŒ๋ผ๋„ ์จ๋ณด๋ ค๊ณ  ํŽ˜์–ด๋ถ„๊ณผ ๋‹ค์–‘ํ•œ ์‹œ๋„๋“ค์„ ํ•ด๋ณธ ๊ฒƒ ๊ฐ™๋‹ค.

โœ”๏ธ Node.js๋กœ ์Šฌ๋ž™ ์•Œ๋žŒ๋ด‡ ๋งŒ๋“ค์–ด๋ณด๊ธฐ
์š”์ƒˆ๋Š” ๊ณ„์† ๋ฌธ์„œ๋งŒ ๋ณด๋ฉด์„œ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋‹ˆ ๋จธ๋ฆฌ๋„ ๋ˆˆ๋„ ์•„ํŒŒ์„œ.. ์ ๋‹นํžˆ ๋”ด์ง“(?) ํ• ๋งŒํ•œ๊ฒŒ ์—†๋‚˜ ํ•˜๋‹ค๊ฐ€ ์Šฌ๋ž™์— ์•Œ๋žŒ๋ด‡์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ๋˜ ๋ง์ด ๊ฐ‘์ž๊ธฐ ๋– ์˜ฌ๋ผ์„œ ์ฐพ์•„๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. node.js๋กœ๋„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์–ด์„œ ๋„์ „ํ•ด๋ดค๋Š”๋ฐ slack๋ชจ๋“ˆ๋„ ์žˆ๊ณ , node-scheduler๋ผ๋Š” ์Šค์ผ€์ฅด๋ง๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“ˆ๋„ ์žˆ์–ด์„œ ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์Šฌ๋ž™์—์„œ API ํ† ํฐ๋„ ๋ฐœ๊ธ‰๋ฐ›์•„ ์ž…๋ ฅํ•ด์ฃผ๋‹ˆ๊นŒ ์‹ค์ œ๋กœ ์Šฌ๋ž™์—๋„ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ž๊พธ ์ถœํ‡ด๊ทผ ์ฐ๋Š”๊ฑธ ๊นŒ๋จน๋Š” ๋‚˜์—๊ฒŒ ์ •๋ง ํ•„์š”ํ•˜๋˜๊ฑธ ๋งŒ๋“  ๊ฒƒ ๊ฐ™์•„ ๋œป๋ฐ–์˜ ๋ฟŒ๋“ฏํ•จ๋„ ์–ป์—ˆ๋‹คใ… ใ…  ์ข€ ๋” ์ฐพ์•„๋ณด๋‹ˆ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๋“ค๋„ ๋งŽ์•„์„œ ์ฃผ๋ง์— ์‹œ๊ฐ„์ด ๋‚จ๋Š”๋‹ค๋ฉด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณด๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.! (+ ๋ฏผ์ •๋‹˜์ด ๊ท€์—ฌ์šด ํ”„๋กœํ•„ ์‚ฌ์ง„๊นŒ์ง€ ๋งŒ๋“ค์–ด์ฃผ์…จ๋‹ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค๐Ÿ‘๐Ÿ‘๐Ÿ‘)

 

 

๐ŸŽ ๊ธฐ์–ตํ•  ๊ฒƒ


โœ”๏ธ bind
์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋งŒ๋“ค ๋•Œ, handleClick(thisArgs) ์™€ ๊ฐ™์ด ์“ฐ๋ฉด ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๊ฐ€ ๋ฐ”๋กœ ์‹คํ–‰๋œ๋‹ค. bind๋Š” 'ํ•จ์ˆ˜'๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•จ๊ป˜ ๋ถ™์—ฌ์„œ ์‚ฌ์šฉํ•˜๋ฉด ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๊ฐ€ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค!

โœ”๏ธ setTimeout
setTimeout์€ ์‹œ๊ฐ„ ์ง€์—ฐ์„ ์ผ์œผ์ผœ ํ•จ์ˆ˜๋ฅผ '๋น„๋™๊ธฐ์ '์œผ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ํ•จ์ˆ˜์ธ๋ฐ, ์ด ํ•จ์ˆ˜๋Š” \ ํ•ญ์ƒ ์ „์—ญ ๊ฐ์ฒด(window)๋ฅผ this ๋ฐ”์ธ๋”ฉํ•œ๋‹ค. ์ฆ‰ setTimeout ์•ˆ์—์„œ๋Š” this๊ฐ€ ์ „์—ญ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค๋Š” ๋ง์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ „์—ญ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋˜๋Š” ์‹œ์ ์€ setTimeoutํ•จ์ˆ˜ ์•ˆ์—์„œ ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ˆœ๊ฐ„์ด๋‹ค. ( = setTimeout์•ˆ์—์„œ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด, this๊ฐ’์ด ์ „์—ญ์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค )

 

๐ŸŽ ๋” ๊ณต๋ถ€ํ•  ๊ฒƒ


โœ”๏ธ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด Javascript๋กœ ์›นํฌ๋กค๋งํ•ด๋ณด๊ธฐ
โœ”๏ธ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ
โœ”๏ธ ๋ฐ”์ธ๋”ฉ

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€