๋
ธ๋ v0.3
redis v2.2 ์ํฐ๋ ์ฆ ์์
wfm ๋๋ถ๋ถ์ test.js
resolveModuleFilename์์(node.js:265:13)
loadModule์์(node.js:231:20)
ํ์ ์(node.js:291:14)
๊ฐ์ฒด์์.
Module._compile์์ (node.js:348:23)
Object..js์์ (node.js:356:12)
Module.load์์ (node.js:279:25)
์ด๋ ์ด์์.
EventEmitter._tickCallback์์ (node.js:42:22)
node.js:634:9์์
์ด๋ป๊ฒ๋ ๊ฒฝ๋ก์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค. ์ ๋ npm์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ์ต์์ node_redis ๋๋ ํ ๋ฆฌ์์ ๋ค์์ ์ํํ์ญ์์ค.
npm install
npm ์๋ฒ ๋ฒ์ ๋์ ๋ก์ปฌ git repo๋ฅผ ์์ค๋ก ์ฌ์ฉํ์ฌ node_redis๋ฅผ ์ค์นํฉ๋๋ค.
ํฌ๋ฏธํด์ ์ฃ์กํฉ๋๋ค๋ง library
?
npm์ ๋ค์ํ ๊ถํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
์ฌ๋ฐฉ๋ฌธ์์ฌ ์์..
์ฝ๊ธฐ: api.html#modules
ํ์ง๋ง ์ด๋ค redis ํ์ผ์ ์ฐ๊ฒฐํด์ผ ํ๋์ง ๋ช
ํํ์ง ์์ต๋๊น?
npm์ ์์๋ด๋ ๋ฐ ์๊ฐ์ ํ ์ ํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋ง์ ๋ ธ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ npm์์๋ง ์ ๋๋ก ์๋ํฉ๋๋ค.
npm์ด ์๋ํ ๋๊น์ง ๋ค์์ ์ํํ๋๋ก ์์ ๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
require("../index");
๋์ ์
require("redis");
๊ฒฐ๊ณผ: ๊ถํ์ด ๊ฑฐ๋ถ๋์์ต๋๋ค.
~/local/bin์ npm์ ์ฑ๊ณต์ ์ผ๋ก ์ค์นํ์ต๋๋ค.
๋น์ ์ ์ง์์ ๋ฐ๋ผ:
mac- mini:node_redis jaymini$ ~/local/bin/npm ์ค์น
npm ์ ๋ณด๊ฐ ok๋ก ๋๋๋ฉด ์๋ํ์ต๋๋ค.
[email protected]๋ฅผ ์ฌ์ฉํ๋ npm ์ ๋ณด
[email protected]์ ์ฌ์ฉํ๋ npm ์ ๋ณด
npm ์ ๋ณด ์ฌ์ ์ค์น [email protected]
npm ์ ๋ณด ์ค์น [email protected]
npm ์ ๋ณด ์ค์น ํ [email protected]
npm ์ ๋ณด ์ฌ์ ๋นํ์ฑํ [email protected]
npm ์ ๋ณด ๋นํ์ฑํ [email protected]
npm ์ ๋ณด postdeactivate [email protected]
npm ์ ๋ณด ์ฌ์ ํ์ฑํ [email protected]
npm ์ ๋ณด ํ์ฑํ [email protected]
npm ์ ๋ณด postactivate [email protected]
npm ์ ๋ณด ๋น๋ ์ฑ๊ณต: [email protected]
npm ์์์ด
mac- mini:node_redis jaymini$
ํ์ง๋ง:
mac- mini:์์ jaymini$ ~/local/bin/node web_server.js
node.js:63
๋์ง๋ค ์ ์;
^^
์ค๋ฅ: 'redis' ๋ชจ๋์ ์ฐพ์ ์ ์์ต๋๋ค.
loadModule์์(node.js:275:15)
ํ์ ์(node.js:411:14)
๊ฐ์ฒด์์.
Module._compile์์ (node.js:462:23)
Module._loadScriptSync์์ (node.js:469:10)
Module.loadSync์์ (node.js:338:12)
Object.runMain์์ (node.js:522:24)
์ด๋ ์ด์์.
EventEmitter._tickCallback์์ (node.js:55:22)
node.js:772:9์์
mac- mini:์์ jaymini$
redis ์ธก๋ฉด์ด ๋๋ฅผ ํ์ถํ๊ณ ์์ต๋๋ค ...
mac-mini:~ jaymini$ ~/local/bin/npm install redis
npm ์ ๋ณด๊ฐ ok๋ก ๋๋๋ฉด ์๋ํ์ต๋๋ค.
[email protected]๋ฅผ ์ฌ์ฉํ๋ npm ์ ๋ณด
[email protected]์ ์ฌ์ฉํ๋ npm ์ ๋ณด
npm ์ ๋ณด ์ฌ์ ์ค์น [email protected]
npm ์ ๋ณด ์ค์น [email protected]
npm ์ ๋ณด ์ค์น ํ [email protected]
npm ์ ๋ณด ์ฌ์ ๋นํ์ฑํ [email protected]
npm ์ ๋ณด ๋นํ์ฑํ [email protected]
npm ์ ๋ณด postdeactivate [email protected]
npm ์ ๋ณด ์ฌ์ ํ์ฑํ [email protected]
npm ์ ๋ณด ํ์ฑํ [email protected]
npm ์ ๋ณด postactivate [email protected]
npm ์ ๋ณด ๋น๋ ์ฑ๊ณต: [email protected]
npm ์์์ด
๋งฅ ๋ฏธ๋:~ ์ ์ด๋ฏธ๋$ cd node_redis/
redis ๋ด์์ ์ค์นํ๋ ค๊ณ ํ ๋ :
mac- mini:redis jaymini$ ~/local/bin/npm ์ค์น
npm ์ ๋ณด๊ฐ ok๋ก ๋๋๋ฉด ์๋ํ์ต๋๋ค.
[email protected]๋ฅผ ์ฌ์ฉํ๋ npm ์ ๋ณด
[email protected]์ ์ฌ์ฉํ๋ npm ์ ๋ณด
npm ์ค๋ฅ! ์(๋ฅผ) ์ค์นํ๋ ๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
npm ์ค๋ฅ! ์ค๋ฅ: ENOENT, ํด๋น ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ 'package.json'์ด ์์ต๋๋ค.
npm ์ค๋ฅ! node.js:634:9์์
npm ์ค๋ฅ! http://github.com/isaacs/npm/issues ์์ ์ด _์ ์ฒด_ ๋ก๊ทธ๋ฅผ ๋ณด๊ณ ํ์ธ์.
npm ์ค๋ฅ! ๋๋ [email protected]์ผ๋ก ์ด๋ฉ์ผ์ ๋ณด๋ด
npm ์ค๋ฅ! ์ค๋ฅ์ ์์ ๋ถ๋ถ์ ํธ์ํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋์์ด ๋์ง ์์ต๋๋ค.
npm ๊ด์ฐฎ์ง ์์
mac- mini:redis jaymini$ cd ~
์ด๊ฒ์ ๋ ๋ง์ npm ๋ฌธ์ ์ฒ๋ผ ๋ณด์ ๋๋ค. freenode IRC, ์ฑ๋ #node.js์์ isaac๋ฅผ ์ข ์ข ์ฐพ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ข ์ข npm ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ทธ๊ฐ ์์ผ๋ฉด npm google ๊ทธ๋ฃน ์ฃผ์๋ก ์ด๋ฉ์ผ์ ๋ณด๋ด๋ ๊ฒ์ด ์ง์์ ๋ฐ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ทธ๊ฐ ๋งํ๋ฏ์ด ํด๋์ package.json์ด ์์ต๋๋ค.
https://github.com/isaacs/npm/issues/issue/353
๊ทธ๋ฌ๋ ๋๋ ๋ค์์ ๋ฌด์์ํด์ผํ ์ง ๋ช
ํํ์ง ์์ต๋๋ค ...
๋ค๋ฅธ redis ํจํค์ง๋ฅผ ์๋ํ์๊ฒ ์ต๋๊น?
ํ , ์ด์ํ๋ค์. ํ์คํ git repo์ package.json ํ์ผ์ด ์์ต๋๋ค.
mjr:~/work/node_redis (master)$ ls -l
total 200
-rw-r--r-- 1 mjr staff 15613 Nov 2 15:06 README.md
-rw-r--r-- 1 mjr staff 2078 Sep 20 09:41 bench.js
-rw-r--r--@ 1 mjr staff 568 Nov 3 12:46 changelog.md
drwxr-xr-x 12 mjr staff 408 Nov 3 14:03 examples
-rw-r--r--@ 1 mjr staff 28257 Nov 8 16:37 index.js
-rw-r--r--@ 1 mjr staff 5421 Nov 2 15:18 multi_bench.js
-rw-r--r--@ 1 mjr staff 490 Nov 3 12:44 package.json
-rw-r--r--@ 1 mjr staff 33788 Nov 3 12:41 test.js
drwxr-xr-x 4 mjr staff 136 Sep 24 13:15 tests
๊ทธ๋ฆฌ๊ณ ๋ํ:
https://github.com/mranney/node_redis/blob/master/package.json
์, ํ์ง๋ง redis๊ฐ ์๋๋ผ node_redis์ ์์ง ์์ต๋๊น?
์ฆ, ๋ฌธ์ ์ค๋ช
์ ๋ฐ๋ผ: 'redis' ๋ชจ๋์ ์ฐพ์ ์ ์์ต๋๋ค.
์๋ง๋ redis ๋ชจ๋์ด ํ์ํฉ๋๊น?
ํ๋ก์ ํธ์ repo๋ "node_redis"๋ผ๊ณ ํ์ง๋ง npm์์๋ "redis"๋ผ๊ณ ํฉ๋๋ค. ์ด๊ฒ์ "redis"์ "npm install redis"๊ฐ ํ์ํจ์ ์๋ฏธํฉ๋๋ค. git์์ ์ค์นํ๋ ค๋ฉด "node_redis"๋ผ๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ํด๋น "node_redis" ๋๋ ํ ๋ฆฌ ๋ด์์ "npm install"์ ์ํํ ์ ์์ผ๋ฉฐ ์ ๋๋ก ์ค์น๋์ด์ผ ํฉ๋๋ค.
BTW, homebrew์์ node์ npm์ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ํ๋ธ๋ฅ ์ค์น๊ฐ npm์ ์ ๋ง ํผ๋์ค๋ฝ๊ฒ ๋ง๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ๋ธ๋ฅ๋ ์์ง๋ง ์ด๋ฆฌ๋ฅ์ ํ๋ฉด redis์ ๋ํ ๋ด ํผ๋์ ์ดํดํ๊ฒ ๋ ๊ฒ์
๋๋ค.
์ข์, ๊ทธ๋์ package.json์ redis๋ฅผ ์ํด ํ ์ผ์ด ์๊ธฐ ๋๋ฌธ์ red herring์
๋๋ค.
๊ทธ๋ฌ๋ ์ฃผ์ด์ง mac -
์ฝ 1์๊ฐ ์ ์ ๋ณด๊ณ ๋ ํ์ธ, ๋ชจ๋์ ์ฐพ์ ์ ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์, ์ด๊ฒ์ด npm ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ ์ด์ ์ ๋๋ค. ์ปดํจํฐ์ npm์ ๋ํด ๋ญ๊ฐ ํผ๋์ค๋ฝ์ต๋๋ค. npm๊ณผ node์ ๋ชจ๋ ํ์ ์ ์ ๊ฑฐํ๊ณ ๋ ๋ค ๋ค์ ์ค์นํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ ์ค ํ๋ ๋๋ ์ปดํจํฐ์์ npm์ผ๋ก ์ ํํ ๋ฌด์์ด ๊ณ ์ฅ ๋ฌ๋์ง ์์๋ผ ์ ์์ง๋ง ์ฒ์๋ถํฐ ๋ค์ ์์ํ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค.
์ค์นํ๊ณ ํ ์คํธํ ๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
mjr:~/work/node_redis(๋ง์คํฐ)$ npm ์ค์น
npm ์ ๋ณด๊ฐ ok๋ก ๋๋๋ฉด ์๋ํ์ต๋๋ค.
[email protected]๋ฅผ ์ฌ์ฉํ๋ npm ์ ๋ณด
[email protected]๋ฅผ ์ฌ์ฉํ๋ npm ์ ๋ณด
npm ์ ๋ณด ์ฌ์ ์ค์น [email protected]
npm ์ ๋ณด ์ค์น [email protected]
npm ์ ๋ณด ์ค์น ํ [email protected]
npm ์ ๋ณด ์ฌ์ ๋นํ์ฑํ [email protected]
npm ์ ๋ณด ๋นํ์ฑํ [email protected]
npm ์ ๋ณด postdeactivate [email protected]
npm ์ ๋ณด ์ฌ์ ํ์ฑํ [email protected]
npm ์ ๋ณด ํ์ฑํ [email protected]
npm ์ ๋ณด postactivate [email protected]
npm ์ ๋ณด ๋น๋ ์ฑ๊ณต: [email protected]
npm ์์์ด
mjr:~/work/node_redis(๋ง์คํฐ)$ ๋ ธ๋
์๊ตฌ("๋ ๋์ค");
{ ๋๋ฒ๊ทธ ๋ชจ๋: ๊ฑฐ์ง,
RedisClient: { [๊ธฐ๋ฅ: RedisClient] super_: [๊ธฐ๋ฅ: EventEmitter] },
createClient: [ํจ์],
์ธ์: [ํจ์] }
๋ณ๊ฒฝํ์ง ์๋ ๊ฒฝ์ฐ git ๋ฒ์ ์ ์ ํ ์ค์นํด์๋ ์ ๋๋ค๊ณ ๋ง๋ถ์์ต๋๋ค. node์ npm์ ์๋ก ์ค์นํ๊ณ ๋ค์์ ์ํํ์ญ์์ค.
npm install redis
๊ทธ๋ฆฌ๊ณ ๋น์ ์ ("redis")๋ฅผ ์๊ตฌํ ์ ์์ด์ผ ํฉ๋๋ค.
๊ทธ๋, ์๊ฐ์ด ๋ฆ์ด์ ์์นจ์..
์ญ์ ํ๊ณ ๋ค์ ์์ํฉ๋๋ค!
์๋ง๋ node_redis๋ฅผ ํฌํฌํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค.
๋ค์ TX
๊ทธ๋ ์ข์. ํ์ด์ ๋น๋๋ค.
์ด์ ๋ชจ๋ ์๋ํฉ๋๋ค!
npm์ด /local/node ์ด์ ์ /usr/local/node๋ฅผ ์ฌ์ฉํ๋ค๋ ์ฌ์ค์ ์ธ์ํ์ง ๋ชปํ์ต๋๋ค.
mv, ๊ทธ ๋ค์ hunkydory.. webserver.js์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค...
๋๋ฌด ๋ง์ ๋
ธ๋ ํ๋ก์ ํธ๊ฐ jquery๋ฅผ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค....
๋ฒ ์คํธ!
localhost๋ฅผ ๋ง๋ค๊ธฐ ์ํด node server.js ๋ช
๋ น์ ์
๋ ฅํ ํ ๋ช
๋ น์ ์ฐ๋ ์ ๋ ์ฆ์ ๋์ต๋๋ค.
"redis-server" ๋ชจ๋์ ์ฐพ์ ์ ์์ต๋๋ค
--------------------------------------์๋ฒ ์์----------- ------------------------------------------
2019-10-12T08:09:36.456Z - ์ค๋ฅ: ์ธ์ฆ์ ํ์ผ ๋๋ ํค ํ์ผ์ด ๋๋ฝ๋์ด ๋น SSL ๋ชจ๋๋ก ๋์ฒด๋จ
2019-10-12T08:09:36.460Z - ์ค๋ฅ: ์ด๋ฅผ ์์ฑํ๋ ค๋ฉด ์
ธ์์ ๋ค์์ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. sh ./scripts/generate-ssl-certs.sh
๋ด๋ถ/๋ชจ๋/cjs/loader.js:783
์ค๋ฅ๋ฅผ ๋์ง๋ค;
^^
์ค๋ฅ: 'redis-server' ๋ชจ๋์ ์ฐพ์ ์ ์์ต๋๋ค.
์คํ ํ์:
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด์ ๋ชจ๋ ์๋ํฉ๋๋ค!
npm์ด /local/node ์ด์ ์ /usr/local/node๋ฅผ ์ฌ์ฉํ๋ค๋ ์ฌ์ค์ ์ธ์ํ์ง ๋ชปํ์ต๋๋ค.
mv, ๊ทธ ๋ค์ hunkydory.. webserver.js์ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค...
๋๋ฌด ๋ง์ ๋ ธ๋ ํ๋ก์ ํธ๊ฐ jquery๋ฅผ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค....
๋ฒ ์คํธ!