๐ ๋จ์๋ฅผ ์ง์ ํด์ฃผ์ธ์! ๐
4992 ๋จ์ด codequalityprogrammingjavascript
const success = myCache.mset([
{key: "myKey", val: obj, ttl: 10000},
{key: "myKey2", val: obj2},
]);
ttl
๊ฐ 10,000๋ฐ๋ฆฌ์ด, ์ด ๋๋ ๋ค๋ฅธ ๊ฒ์ธ์ง ์ ํ ๋ช
ํํ์ง ์์ต๋๋ค. ์ด ์ฝ๋๋ฅผ ๋ณด๋ฉด(๊ทธ๋ฆฌ๊ณ JavaScriptsetTimeout()
๊ฐ ๋ฐ๋ฆฌ์ด๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๋ฉด) ๋ฐ๋ฆฌ์ด ๋จ์๋ผ๊ณ ์๊ฐํ๊ณ ์ถ์ ์๋ ์์ต๋๋ค. ์๋ชป๋! ๋ช ์ด ์์ ์๋ฃ๋ฉ๋๋ค!์ด ์ค๋ํซ์ node-cache ์ README์ ์๋ ์์ ์ฝ๋์ ๋๋ค. ์ด๋ฌํ ์ ํ์ ๋ถ๋ช ํํ ์ฝ๋๋ ์ค์ ๋ก ๋๋ฆฌ ํผ์ ธ ์์ผ๋ฏ๋ก ํน๋ณํ ์ ํํ๋ ค๊ณ ํ์ง ์์ต๋๋ค. ๋คํ์ค๋ฝ๊ฒ๋ README์๋ ๋ช ์ด ์์ ์๋ฃ๋๋ค๊ณ ๋์ ์์ง๋ง ํ์ธํ๋ ค๋ฉด RTFM ํด์ผ ํฉ๋๋ค. ๋๊ฐ ๊ทธ๋ด ์๊ฐ์ด ์๊ฒ ์ต๋๊น?
ttl
์์ฑ์ ์ด๋ฆ์ ttlSeconds
๋ก ์ง์ ํ๋ฉด ์ข์ง ์์๊น์? ๊ทธ๋ฌ๋ฉด ์ฝ๋๋ฅผ ์ฝ๋ ์ฌ๋์๊ฒ ๊ทธ๊ฒ์ด ์๋ฏธํ๋ ๋ฐ๊ฐ ์ฆ์ ๋ช
ํํด์ง๋๋ค.์๋๋ฉด ๋ ๋์ ํด๊ฒฐ์ฑ ์ด ์์ ์๋ ์์ต๋๋ค.
๋ ์ง/์๊ฐ
๋ ์ง/์๊ฐ์ด Unix ์๋(1970๋ 1์ 1์ผ 00:00:00 UTC) ์ดํ ์ ์ ๋ฐ๋ฆฌ์ด(๋๋ ์ด)๋ก ํํ๋๋ ๊ฒ๋ ๊ฝค ์ผ๋ฐ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด:
const myBirthday = 700876800000;
์ด๊ฒ๋ ์ง์ฆ๋. ์ด๊ฒ์ด Unix ์๋ ์ดํ์ ๋ฐ๋ฆฌ์ด์ผ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋๋ค๋ ๊ฒ์ ์ธ์ํ ์ ์์ง๋ง ์ด๊ฒ์ด ์ด๋ค ๋ ์ง๋ฅผ ๋ํ๋ด๋์ง๋ ์ ์ ์์ต๋๋ค.
๋์ ๋ค์์ ์ด๋ป์ต๋๊น?
const myBirthday = new Date('1992-03-18T00:00:00.000Z');
์ด์ ์ด ์ฝ๋๋ฅผ ์ฝ๋ ์ฌ๋์ ์ฝ๋๊ฐ ๋ํ๋ด๋ ๋ ์ง๋ฅผ ์ ํํ ์๊ณ ์์ผ๋ฉฐ
myBirthday
์ ์ก์ธ์คํ๋ ์ฝ๋๋ ์๊ณ ์์ต๋๋ค. ์ฃผ๋ณ ์ฝ๋๋ ์ด ๊ฐnumber
์ด ์ด์ธ์ง ๋ฐ๋ฆฌ์ด์ธ์ง์ ๋ํ ๋ถ์กฑ ์ง์์ด ํ์ํ์ง ์์ต๋๋ค. Date
์ด๋ฉฐ ๋งค์ฐ ๊ตฌ์ฒด์ ์ธ ์๋ฏธ๊ฐ ์์ต๋๋ค.์๊ฐ๋
TTL
(Time to Live)๋ก ๋ค์ ์ ํํฉ๋๋ค. TTL์ ํน์ ๋ ์ง ๋ฐ ์๊ฐ์ด ์๋๋ผ ์๊ฐ ๊ธธ์ด(1์ด, 1๋
๋ฑ)์ด๋ฏ๋ก Date
๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ์ ์์ต๋๋ค.๋ช ํ์ฑ์ ์ํด TTL ์์ฑ
ttlSeconds
์ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒ์ ๋ง์ ๊ฒฝ์ฐ์ ํ๋ฅญํ ์๋ฃจ์
์ด์ง๋ง ์ด์ ๋ํด Date
์ ์ ์ฌํ ๋ฐ์ดํฐ ์ ํ์ด ์๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?Some languages์๋ ์ค์ ๋ก ์ด๋ฌํ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. JavaScript๋ ๊ทธ๋ ์ง ์์ง๋ง timespan๊ณผ ๊ฐ์ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
import timespan from 'timespan';
const ttl = timespan.fromSeconds(50);
console.log(ttl.totalMilliseconds()); // 50000
console.log(ttl.totalSeconds()); // 50
console.log(ttl.totalMinutes()); // 0.8333333333333334
์ํ๋ ๋จ์๋ก TTL์ ์ง์ ํ ์ ์์ผ๋ฉฐ TTL์ ์ ๋ฌํ๋ ์ฝ๋๋ ์ํ๋ ๋จ์๋ก ์ฝ์ ์ ์์ต๋๋ค. ๋จ์์ ๋ํด ์ ํ ๋์ํ ํ์๊ฐ ์์ต๋๋ค.
If only NASA used constructs like this , ๊ทธ๋ค์ ๋ช ๋ฌ๋ฌ๋ฅผ ์ ์ฝํ ์ ์์์ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก
์ฌ๊ธฐ์ ๊ฐ์ด์์ ๋ฒ์ด๋๊ณ ์ถ์๋ ์งง์ ๊ฒ. ๋ง์ ๋ฒ๊ทธ๋ ์ฌ์ฉ ์ค์ธ ๋จ์์ ๋ํ ํผ๋์ ๋ฟ๋ฆฌ๋ฅผ ๋๊ณ ์์ต๋๋ค. ๋คํ์ค๋ฝ๊ฒ๋ ์ด๋ฌํ ์ข ๋ฅ์ ์ํ์ ์ํํ ์ ์๋ ๋ช ๊ฐ์ง ๋๊ตฌ๊ฐ ์์ต๋๋ค. ๋๋ ๊ทธ๋ค์ด ๋ ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒ์ ๋ณด์์ผ๋ฉด ์ข๊ฒ ๋ค!
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ ๋จ์๋ฅผ ์ง์ ํด์ฃผ์ธ์! ๐), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/mistval/please-specify-your-units-5eklํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค