๋ ธ๋๋ ํ์ฅ์ฑ์ ์ํด ๋ชจ๋ ๊ตฌ์กฐ๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋๋ก ํ๊ณ ์๋ค.
์ด๋ ๊ฒ ๋ชจ๋ ๋จ์๋ก ๊ตฌ์ฑ๋๋ค๋ ๊ฒ์ ๊ฐ์ฒด ์งํฅ ์ปจ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ด ๊ตฌ์ฑ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค๊ณ ๋งํ ์ ์๋ค.
๋ชจ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ฃจ๋ ๊ธฐ๋ณธ ๋จ์๋ก, ๋ณดํต ๋ค์์ ํด๋์ค์ ์ด๋ฅผ ํตํด ์์ฑํ ๊ฐ์ฒด ๋ฑ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
๋ชจ๋์ ์ข ๋ฅ
๋ ธ๋์์๋ ๋ชจ๋์ ์ข ๋ฅ๋ฅผ ํฌ๊ฒ ๋ ธ๋ ์ค์น ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋์ด ์๋์ง์ ๋ํ ์ ๋ฌด๋ฅผ ํตํด ๊ธฐ๋ณธ ๋ชจ๋๊ณผ ํ์ฅ ๋ชจ๋๋ก, ๋จ์ํ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑํ์๋์ง, C/C++ ๋ฑ์ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑํ๊ณ ๋น๋ํ์ฌ ๊ฐ๋ฐํ์๋์ง์ ๋ฐ๋ผ ์ผ๋ฐ ๋ชจ๋๊ณผ ๋ค์ดํฐ๋ธ ๋ชจ๋๋ก, ๊ทธ๋ฆฌ๊ณ ์ง๊ธ ํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด์๋ง ์ฌ์ฉํ๊ธฐ ์ํด ์ค์นํ๋์ง์ ๋ฐ๋ผ ๊ธ๋ก๋ฒ ๋ชจ๋๊ณผ ๋ก์ปฌ ๋ชจ๋ ์ ๋๋ก ๋ถ๋ฅํ ์ ์๋ค.
๋ชจ๋ ์๋ณ์
๋ ธ๋์ ๋ชจ๋ ์ด๋ฆ์ผ๋ก๋ ํ์ฅ์ ์๋ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค. ๋ชจ๋์ ํ์ผ๊ณผ ์ผ๋์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ .js๋ .node๋ผ๋ ํ์ฅ์๋ฅผ ๊ฐ์ง์ง๋ง ๋ชจ๋์ ๋ถ๋ฌ๋ค์ผ ๋๋ ํ์ผ ์ด๋ฆ๋ง ์ฌ์ฉํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๋ชจ๋์ ์๋ณ์๋ ํฌ๊ฒ ์๋์ ์๋ณ์์ ์ ๋์ ์๋ณ์, ๊ทธ๋ฆฌ๊ณ ์ต์์ ๋ ๋ฒจ ์๋ณ์ ๋ฑ 3๊ฐ์ง๊ฐ ์๋ค.
1) ์๋์ ์๋ณ์
require('./sample_module');
- ํ์ฌ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋์ ์ธ ๊ธฐ์ค์ ์๋ ๋ชจ๋์ ์ฐพ๋ ์๋ณ์
- ./๋ฅผ ์๋ตํ๋ฉด ํ์ฌ ์์น์์ ๋ชจ๋์ ์ฐพ์ง ์์ผ๋ ์ฃผ์ํด์ผํ๋ค.
2) ์ ๋์ ์๋ณ์
require('/usr/local/node_modules/sample_module/sample_module');
- ์ ๋ ์์น๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ทธ ๊ฒฝ๋ก์ ๋ง๋ ๋ชจ๋์ ์ฐพ๋ ์๋ณ์
3) ์ต์์ ๋ ๋ฒจ ์๋ณ์
require('sample_module');
- ์๋ฌด๊ฒ๋ ์ ๋ ฅํ์ง ์๊ณ ๋ชจ๋ ์ด๋ฆ๋ง ์ ๋ ฅํ๋ฉด ์ต์์ ๋ ๋ฒจ ์๋ณ์๋ก ์ธ์ํ๊ณ ์ค์น๋ ์ ์ฒด ํ์ฅ ๋ชจ๋์ด๋ ๊ธฐ๋ณธ ๋ชจ๋ ์ค์์ ํด๋น ๋ชจ๋ ์ด๋ฆ์ ๊ฒ์ํ์ฌ ๋ก๋ํ๋ค.
- ๋ง์ฝ sample_module์ด๋ผ๋ ๋ชจ๋์ด ๊ธฐ๋ณธ๋ชจ๋์์ ์ฐพ์ ์ ์๋ ๋ชจ๋์ด๋ผ๋ฉด ์์ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐจ๋ก๋๋ก ํ์ํ๊ฒ ๋๋ค.
require()์ module.exports
require() ๋ฉ์๋๋ ๋ชจ๋ ์๋ณ์์ธ module.exports๋ฅผ ์ด์ฉํด ๋ชจ๋์ด ์ ๊ณตํ๋ ํจ์๋ ๊ฐ์ฒด ๋ฑ์ ๋ฐํํ๋ค. ๋ง์ฝ ๋ถ๋ฌ์จ ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋์ด ์์ด์ผ ํ๋ค๋ฉด ๊ทธ ๋ชจ๋๋ ๊ฐ์ด ๋ก๋ํ๋๋ก ๋์ด ์๋ค. ์ด๊ฒ์ ๋ ธ๋ ๋ชจ๋ํ์์ ํต์ฌ์ด๋ค.
ํ๋์ ๋ชจ๋๋ก ๋ง๋ค์ด์ง ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ๋ด๋ถ์์ ํจ์๋ ๋ณ์๋ฅผ module.exports์ ํ ๋นํ๋ฉด ์ธ๋ถ์์ ์ ๊ทผํ ์ ์๋ค.
์๋ฅผ ๋ค๋ฉด,
- B.js๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑ๋ ๋ชจ๋์ด๋ค. ์ด ๋ชจ๋์ name์ด๋ผ๋ ๋ณ์์ run(), stop()์ด๋ผ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
- A.js๋ ์ด๋ฌํ ๋ชจ๋ B๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ด๋ค. ์ด ํ์ผ์์ moduleA๋ผ๋ ๊ฐ์ฒด๋ require() ๋ฉ์๋๋ฅผ ํตํด ์์ฑ๋ ๋ชจ๋ B์ ์ธ์คํด์ค๋ฅผ ํ ๋น๋ฐ๋๋ค.
- B.js์์๋ module.exports๋ฅผ ํตํด run()๊ณผ stop() ๋ฉ์๋๋ฅผ ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฉํ๊ณ ์์ผ๋ฏ๋ก A.js์์ moduleB๋ฅผ ํตํด run()๊ณผ stop() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ๋ ๋์ํ๊ฒ ๋๋ค.
๋ค์ ๋งํด, ๋ชจ๋์ ์ฌ์ฉํ๋ ํ์ผ์์๋ require() ๋ฉ์๋๋ก ๋ค๋ฅธ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ถ๋ฌ์์ module.exports๋ก ํ์ฉ๋ ๋ณ์๋ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
'๐ปWEB BackEnd > node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ ธ๋์ ์ ์ญ๊ฐ์ฒด์ ์ ์ญ ๋ณ์ (0) | 2021.01.07 |
---|