New support for Node.js debuggability landed in Node.js
Debugging Node.js with Chrome DevTools
Noah Kahan
๐ชผ
we're not kids anymore.

bliss lane
Claire Keane
Show & Tell
will byers stan first human second

โ
2025 on Tumblr: Trends That Defined the Year
Lint Roller? I Barely Know Her
Mike Driver

shark vs the universe

oozey mess
Jules of Nature
No title available

pixel skylines
todays bird

gracie abrams
I'd rather be in outer space ๐ธ

Love Begins
seen from Algeria
seen from Canada

seen from United States

seen from Malaysia
seen from United States
seen from United States

seen from Malaysia
seen from United States
seen from Tรผrkiye
seen from United States
seen from Malaysia
seen from Canada
seen from Canada
seen from Canada

seen from Canada

seen from Australia

seen from United States

seen from United States
seen from Algeria
seen from United States
@iiamboss
New support for Node.js debuggability landed in Node.js
Debugging Node.js with Chrome DevTools
awesome-js - ๐ฆ A curated list of javascript fundamentals and algorithms
AWS Lambda์ Slack์ ์ด์ฉํ DevOps Chatroom ๊ตฌํํ๊ธฐ
Promise ๋ง๋ค๋ ๋ค๋ฅธ promise ๋ด์ฉ ์คํํ๋ ค๊ณ ํ๋ค๋ฉด
์ก์ ์ด new Promise(resolve, reject) { ... } ํํ์ฌ์
// ๋์๋ค
new Promise(resolve, reject) {
ย return otherPromise().then((result) => {
ย ย console.log(result);
ย ย resolve( obj );
ย })
ย .catch(err);
};
๋ก ํ๋ ค๊ณ ํ์ง๋งย
Warning: a promise was created in a ย handler but was not returned from it
์ด๊ฒ ๋์๋ฒ๋ฆฌ๋๋ผ๊ตฌ ใ ใ
์ด์ฌํ ๊ฒ์ ํด๋ดค๋๋ฐ
http://stackoverflow.com/questions/23803743/what-is-the-explicit-promise-construction-antipattern-and-how-do-i-avoid-it
๋ฒค์๋ฏผ ์ด์ฉ๊ตฌ ํ๋ ์์ฌ๊ฐ ํํผํ๋ ๋ฐฉ๋ฒ์ ์ ์ด์ค๊ฒ ์๋๋ผ๊ตฌ. ๋ด์ฉ์ Promise.resolve๋ก ๋ง๋ค๊ณ ๊ทธ ์์์ Promise.resolve, Promise.reject๋ฅผ ์๋ก ๋ง๋ค์ด์ ๋ณด๋ด๋ ํ์.
๊ฒฐ๊ณผ๋ Warning์ ์์ด์ก๋ค.
// ์ข๋ค
return Promise.resolve().then(() => {
ย return otherPromise()
ย ย .then((result) => {
ย ย ย return Promise.resolve(result);
ย ย })
ย ย .catch((err) => {
ย ย ย return Promise.reject(err);
ย ย });
};
Webstorm es6 traspiling
๋ณด๊ณ ๋ ์ ๋ต์ธ์ง ๋ชฐ๋๋ค ใ ใ
์์ด๋ฅผ ํด์ผํ๋.
์๋ฆฌ๋ ์์ค๋ฅผ es5ํํ๋ก ๋ณํํ๊ณ ์๋ณธ๊ณผ ๋ณํ๋์ด ๋์จ ๋ ํ์ผ์ ์ด์ด์ฃผ๋ mapํ์ผ์ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋๋ผ.
์กฐ๊ธ ์ด์ํ ๋ถ๋ถ์ breakpoint ๊ฑธ๋ฉด, ๋ณํ๋ ํ์ผ ์ชฝ์ผ๋ก ์ค๋จ์ ์ด ๋ ์๊ฐ์ ๋ณด๊ธฐ ํ๋ค์ง๋ง ์๋๊ฐ ์ข ๋ง์ด ์๋์ค์ง๋ง ๊ทธ๋๋ ํ์คํ ํธํ๋ค.
redux webstorm debug
https://github.com/erikras/react-redux-universal-hot-exampleย api์๋ฒ์ breakpoint ๋ฐ๊ณ ๋๋ฒ๊ทธ ์คํํ๋ ค๊ณ ํ๋ค.
๋์ ํ ๋ชปํ๊ฒ ๋ค.
redux์ด๊ฒ ๋ญ๋ก ๋์๊ฐ๋์ง๋ ์ ๋งคํ๊ณ babel๋ก ๋ณํํด์ ์คํํ๋๊ฒ๋ ๊ฐ์๋ฐ better npm์ด๊ฑด ๋ ๋ฌด์์ธ์ง ์์ง๋ฅผ ๋ชปํ๊ฒ ๋ค.
redux ์ฑํ ๋ฐฉ์ ๋ฌผ์ด๋ดค๋๋ฐ ๋ธ๋ผ์ฐ์ ์์ ๋๋ฒ๊น ํ๋๋ค. ๋ต๋ตํ๋ค.
sequelize model์ ์๋์ผ๋ก ์ถ๊ฐ๋๋ id
๋ชจ๋ธ์ ๋ฐ๋ก ์ ์ธ ์์ด๋ ์ง์์์ ๋ค์ด๊ฐ๋ ์ด๋ฆ id์ธ pk๋๋ฌธ์ ํค๋ฉ์ด๋ดค๋๋ฐ, ์ด๊ฑธ ์ง์ฐ๋ ์ต์ ์ ๋ฐ๋ก ์๊ณ pk๊ฐ ์๋๊ฒฝ์ฐ์ ์๋์ผ๋ก ๋ง๋ค๋๋ก ๋์ด์๋๋ผ.
์ด๊ฑธ ๊ณ ์น๋ ์ต์ ์ ์๊ณ ์ด๋ป๊ฒ ํด์ผํ ์ง๋ ์๊ฐํด๋ด์ผ๊ฒ ๋ค.
sequelize model์ createdAt, updatedAt ์นผ๋ผ ์๋ ์ถ๊ฐํ๋๋ถ๋ถ ์ค์
์ด๊ฒ ๋ญ์ง
Promise
๋๋์ด ํ๋ก๋ฏธ์ค์ชฝ์ ๋ณด๊ฒ ๋์์ด.
๊ณ๊ธฐ๋ sequelize์ชฝ ๋ณด๋ค๊ฐ ์ด๊ฑธ async ์๊ฐํ๋ฉด์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ ํผ๋ํด์ ์ ํํ๊ฒ ๋ณด๊ณ ๊ฐ๋ ค๊ณ ํ์ง.
waterfall, parallel๊ฐ์ ๊ฐ๋ ์ผ๋ก ์ ๊ทผ์ ์์ํ๋๋ฐ waterfall์ด ์กฐ๊ธ ๋ค๋ฅด๋๋ผ๊ตฌ.
db.App.User.findById(0).then((result) => { ย ย return db.App.User.findById(1); }).then((result) => { ย ย return db.App.User.findById(0); }).then((result) => { ย ย console.log(result); }).catch((err) => { ย ย console.log(err); });
then์ผ๋ก ๋ฌถ์ด์ฃผ๊ณ , ์๋ ๊ฒ๊ฐ์๋ณด์ด์ง๋ง ๋ค์ ๋ด์ฉ์ ๋ํด return์ผ๋ก ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ด์ผ. ์ ์ด๊ฒ ์ด๋ ๊ฒ ๋๋์ง๋ ๋ชจ๋ฅด๊ฒ ๊ณ ์ผ๋จ ์จ๋ด์ผ์ง.
๊ทธ๋ฆฌ๊ณ parallel
Promise.all([db.App.User.findById(1), db.App.User.findById(0)]) .then((result) => { ย ย ย console.log(result); ย ย }) .catch((err) => { ย ย ย ย console.log(err); ย ย });
async๊ฐ ํจ์ฌ ๋ ์ข์๋ณด์ธ๋ค. bluebird๋ ๋ญ๊ณ ๋ ธ๋๋ ์ promise๋ฅผ ์ ํํ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋ค.
* ์ด ๊ธ์ ์๋์ฐ 8 ๋ฒ ํ ์์ WTG ๋ฅผ ์ด๋ค ์์ผ๋ก ๊ตฌ์ฑํ๋์ง๋ฅผ ์ค๋ช ํ๋ ๊ธ์ ๋๋ค. ๊ฐํธํ๊ฒ ์๋์ผ๋ก ์์ ํ์ค ๋ถ๋ค์ ์ด ๊ธ ๋ง๊ณ ์๋์ ๊ธ์ ํ์ธํ์ ์ ๋ฐฐ์น ํ์ผ๋ก ์ฝ๊ฒ ์์ ํ์ธ์. [์๋์ฐ 8] Windows To Go(WTG, ์๋์ฐ ํฌ ๊ณ ) - ์๋ ์ค์น ๋ฐฐ์น ํ์ผ Windows To Go ๋? ์์ ์ ์๋์ฐ PE ์ ๋ํด์ ์ด์ผ๊ธฐ๋ฅผ ํ ์ ์ด ์์์ฃ ? ์๋์ฐ PE ๊ฐ ๋ฌด์์ด์๋์? ์๋์ฐ PE ๋ ์๋์ฐ ์ฌ์ ์ค์น ํ๊ฒฝ์ผ๋ก ์๋์ฐ ์ค์น์ ํ์ฉ..
USB์ธ์ฅํ๋์ ์๋์ฐ ์ค์น
์ ํจ์ค + AWS Auto Scaling(node.js) ์๋ ๋ฐฐํฌ
oracle IP๊ฐ ๋ณ๊ฒฝ๋์์๋
์ง์์ ์ฌ์ฉํ๋ ์๋ฒ์ปด์ด ์๋ง ํธ๋ํฐ๋ฐ๊พธ๋ฉด์ KT๋ก ๊ฐ์ด ๋ฐ๊พธ๊ฒ ๋์๋๋ฐ, ๋น์ฐํ๊ฒ IP๊น์ง ๊ฐ์ด ๋ฐ๋์์ด.
ํด๋ผ์ด์ธํธ์์๋ ini๋ก ์์ดํผ๋ฅผ ๋นผ๋์ด์ ๋ฐ๋ก ์ ๋ ฅํ๋๋ฐ ์์ํ์ง๋ง ๋น์ฐํ ์๋๋๋ผ๊ตฌ.
์ฒ์ ์ฐพ์๊ฒ ์ ๋ต์ด์๋๋ฐ ๋๋ฌด ๊ธํด์์ธ์ง ๊ทธ๋ฆผ๋ง ์ฅ์ฅ ๋ณด๋ค๊ฐ ํ ์คํธ๊ธฐ๋ฐ ์ด๊ฑฐ๋ฅผ ๋ชป๋ดค๋ค.ย ๋งํฌ
ํด๋ผ์ด์ธํธ์ชฝ instance client์ tnsnames๋ฅผ ๋ณต์ฌํด์ฃผ๊ณ ํด๊ฒฐํ์ด. ๋งํฌ
์๋ฒ์ชฝ listener.ora,ย tnsnames.ora ์ IP๊ด๋ จ๋ถ๋ถ ์์
ํด๋ผ์ชฝ instance client์ tnsnames.ora ๋ณต์ฌ
๊ทธ๋ฆฌ๊ณ ์ฌ๋ถํ
๋นจ๋ฆฌ ์น๋ฒ์ ์ผ๋ก 3.0 ์ ์ํด์ผ๊ฒ ๋ค.
์๋ ํ์ธ์.์ปค๋ฎค๋ํฐ์ ์ด๋ฐ ๊ธ์ ์์ฑํด๋ณด๋ ๊ฒ์ด ์ฒ์์ด๋ผ ๊ธ์ด ์ ์ ์๋ ์ ์ํด ๋ถํ๋๋ฆฝ๋๋ค.์คํ๊ต๋๋ถํฐ ํ๋ก๊ทธ๋๋ฐ์ด ๋๋ฌด ์ข์ ์ค์ค๋ก ๊ณต์ ๊ณ&..
์ฌํ์ด์ผ๊ธฐ
node.js์์ ์๋ก์๋ก requireํ ๋
๊ทธ๋ฌ๋๊น ํด๋ ๋์์ ํ๋๋ฐ ์ด๋ฐ์ง ํ์ง ๋ง์.
https://nodejs.org/api/modules.html#modules_cycles
http://stackoverflow.com/questions/23341883/can-node-modules-require-each-other
node.js๋ก ํ์ผ ํ์ฑํด์ csv์ ์ฅ
์ฑํ ์๋ฒ์์ ํ์ผ๋ก ๋จ๊ธฐ๋ ๋ก๊ทธ์ redis pub/sub ๋ด์ฉ์ด ์์์ด.
์ฑ๋์ด๋ ๋ฉ์์ง๋ด์ฉ์ ์ ์ฅํ๊ณ ์์๋๋ฐ, ์ด๊ฑธ ๋ ์ง๊ธฐ์ค์ผ๋ก ํํฐํด์ ๋ฌ๋ผ๊ณ ํ๋๋ผ๊ตฌ.
๊ทธ๋์ ์ฐพ์๋ณธ๊ฒ ๋์ฉ๋ ํ์ผ์ ์ฝ๋ npm์ค์ line-by-line์ด๊ฑธ ์ผ๋๋ฐ, ํ์คํ์ค ๋ฝ์์ฃผ๊ณ ๋๋๋ฉด ์๋ ค์ฃผ๊ณ .
์ด๊ฑฐ๋ fs, fileWriteStream ์ผ๋ก ์ ์ฅํ์ด.
๋ฌธ์ ๋, ์์ํ๋๋ฐ๋ก csv์ ์ฅํ ๋์ ์ผํ์ฒ๋ฆฌ. ์ฒ์ ๊ฒ์ํ์๋๋ย โ๋ก ๋ฌถ์ด์ ํ๋ฉด ๋๋ค๊ณ ํด์ ๊ทธ๋๋ก ํ๋๋ฐ ์ ์๋๋๋ผ. ์ด์ ๋ ,๋ก ๊ตฌ๋ถํ๊ณ ๋ค์ ์คํ์ด์ค ๊ณต๋ฐฑ์ด ๋ค์ด์์ด์ ์์ด.
๋ค์์ ์๋ง ํธ๋ํฐ๋ฒํธ ์ฎ๊ฒจ์ค๋ ์๊ธดํ๊ฒ ์ธ์ ์๊ฒ ๋ค.. ใ ใ