λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ’»WEB BackEnd/node.js

λ…Έλ“œμ˜ 전역객체와 μ „μ—­ λ³€μˆ˜

 

λ…Έλ“œλŠ” 싀행쀑인 ν”„λ‘œκ·Έλž¨ μ–΄λ””μ—μ„œλ“ μ§€ μ ‘κ·Όν•  수 μžˆλŠ” μ „μ—­ λ³€μˆ˜ 및 μ „μ—­ 객체λ₯Ό μ œκ³΅ν•œλ‹€.

μ΄λŸ¬ν•œ μ „μ—­ 객체, μ „μ—­ λ³€μˆ˜λ“€μ€ λͺ¨λ“ˆμ„ λΆˆλŸ¬μ˜€μ§€ μ•Šκ³ λ„ μ‚¬μš©ν•  수 μžˆλ‹€.

λ…Έλ“œμ—λŠ” μ›Ή λΈŒλΌμš°μ €μ—μ„œ μ‚¬μš©κ°€λŠ₯ν•œ window, document λ“±μ˜ 객체 λŒ€μ‹  이것을 μ‚¬μš©ν•œλ‹€.

 


μ „μ—­(global) 객체

  • μ „μ—­ κ°μ²΄λŠ” λͺ¨λ“  λ…Έλ“œ ν”„λ‘œκ·Έλž¨μ—μ„œ μ ‘κ·Όν•  수 μžˆλ‹€.
  • μ „μ—­ κ°μ²΄λŠ” global.console 처럼 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‚˜, global 은 μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€.
  • global 객체에 μ •μ˜λœ λ‚΄μš©λ“€μ€ REPL ν™˜κ²½μ—μ„œ global 객체λ₯Ό 확인해 보면 μ•Œ 수 μžˆλ‹€. 
  • global 객체의 속성에 값을 λŒ€μž…ν•˜μ—¬ 파일 간에 데이터λ₯Ό κ³΅μœ ν•  μˆ˜λŠ” μžˆμ§€λ§Œ, ν”„λ‘œκ·Έλž¨μ˜ 규λͺ¨κ°€ 컀질수둝 μ–΄λ–€ νŒŒμΌμ—μ„œ global 객체에 값을 λŒ€μž…ν–ˆλŠ”μ§€ μ°ΎκΈ° νž˜λ“€μ–΄μ Έ μœ μ§€ λ³΄μˆ˜μ— 어렀움을 κ²ͺ게 λ˜λ―€λ‘œ λ‚¨μš©ν•΄μ„  μ•ˆλœλ‹€.
μ „μ—­ 객체 μ„€λͺ…
buffer 파일과 λ„€νŠΈμ›Œν¬ μž…μΆœλ ₯ μž‘μ—…μ— μ‚¬μš©
console μ½˜μ†”μ°½μ— κ²°κ³Όλ₯Ό 좜λ ₯
module λͺ¨λ“ˆ 객체
exports λͺ¨λ“ˆμ„ λ‹€λ£¨λŠ” 객체
require λͺ¨λ“ˆμ„ κ°€μ Έμ˜€λŠ” 객체
process ν”„λ‘œμ„ΈμŠ€μ˜ μ‹€ν–‰μ— λŒ€ν•œ μ •λ³΄λ₯Ό λ‹€λ£¨λŠ” κ°μ²΄
setImmediate 
setInterval 
setTimeout
타이머 ν•¨μˆ˜
stream 슀트림 κΈ°λ°˜ λ°μ΄ν„° μ „솑

 

1) console 

λ©”μ†Œλ“œ μ„€λͺ…
console.log(msg); 둜그λ₯Ό μ½˜μ†”μ— 좜λ ₯
console.dir(object); 객체의 속성을 좜λ ₯
console.error(msg); μ—λŸ¬λ₯Ό 좜λ ₯
console.time(id); 같은 idλ₯Ό 가진 timeEnd와 λŒ€μ‘λ˜λ©° timeκ³Ό timeEnd μ‚¬μ΄μ˜ μ‹€ν–‰μ‹œκ°„μ„ μΈ‘μ •
console.timeEnd(id); 같은 idλ₯Ό 가진 timeκ³Ό λŒ€μ‘λ˜λ©° timeκ³Ό timeEnd μ‚¬μ΄μ˜ μ‹€ν–‰μ‹œκ°„μ„ μΈ‘μ •

 

2) Timers

  • 타이머 ν•¨μˆ˜λ“€μ€ λͺ¨λ‘ 아이디λ₯Ό λ°˜ν™˜ν•œλ‹€. 이 아이디λ₯Ό μ‚¬μš©ν•˜μ—¬ 타이머λ₯Ό μ·¨μ†Œν•  수 μžˆλ‹€.
타이머 ν•¨μˆ˜ μ„€λͺ…
setTimeout(μ½œλ°±ν•¨μˆ˜, λ°€λ¦¬μ΄ˆ)
타이머 μ·¨μ†Œ : clearTimeout(아이디);
λ°€λ¦¬μ΄ˆ 이후에 μ½œλ°±ν•¨μˆ˜ μ‹€ν–‰
setInterval(μ½œλ°±ν•¨μˆ˜, λ°€λ¦¬μ΄ˆ)
타이머 μ·¨μ†Œ : clearInterval(아이디);
λ°€λ¦¬μ΄ˆλ§ˆλ‹€ μ½œλ°±ν•¨μˆ˜ 반볡
setImmediate(μ½œλ°±ν•¨μˆ˜)
타이머 μ·¨μ†Œ : clearImmediate(아이디);
μ½œλ°±ν•¨μˆ˜ μ¦‰μ‹œ μ‹€ν–‰

 

3) process

process κ°μ²΄λŠ” 싀행쀑인 λ…Έλ“œ ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 정보λ₯Ό λ‹΄κ³  μžˆλŠ” 객체닀.

process 객체 λ‚΄λΆ€μ—λŠ” ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 정보λ₯Ό 확인할 수 μžˆλŠ” λ‹€μ–‘ν•œ 속성이 있으며, repl 등을 μ΄μš©ν•΄μ„œ 확인해 λ³Ό 수 μžˆλ‹€.

$ node

> pocess

// κ²°κ³Ό
process {
  title: 'node',
  version: 'v8.11.3',	// 싀행쀑인 λ…Έλ“œμ˜ 버전
  arch: 'x64',			// ν”„λ‘œμ„Έμ„œ 정보
  platform: 'darwin',	// 운영체제 정보
  argv: [ '/Users/path/to/node' ],  // ν”„λ‘œμ„ΈμŠ€μ— μ „λ‹¬λœ 인수 λ°°μ—΄
  env: {	// μ‹œμŠ€ν…œ ν™˜κ²½λ³€μˆ˜
    LANG: 'ko_KR.UTF-8',
    PWD: '/Users/present/working/directory',
    JAVA_HOME: '/Library/Java/Home',
  },
  pid: 1915,	// ν”„λ‘œμ„ΈμŠ€ 아이디
}

processλ₯Ό μ΄μš©ν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€μ˜ μ‹€ν–‰ 자체λ₯Ό 컨트둀 ν•  μˆ˜λ„ μžˆλ‹€. 

process.cwd();	// ν˜„μž¬ μž‘μ—… 디렉터리
//-> '/Users/path/to/directory'

process.cpuUsage();	// cpu μ‚¬μš©λŸ‰
//-> { user: 97532, system: 25189 }

process.uptime();	// ν”„λ‘œμ„ΈμŠ€ μ§€μ†μ‹œκ°„
// 144.106

process.memoryUsage();	// λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰
//-> { rss: 21491712, heapTotal: 7684096, heapUsed: 5167472, external: 8698 }

process.exit();	// ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ 정지

 

μ „μ—­ λ³€μˆ˜

μžμ£Όμ‚¬μš©λ˜λŠ” μ „μ—­λ³€μˆ˜λ‘œλŠ” __filename, __dirname 등이 μžˆλ‹€.

  • __filename : μ‹€ν–‰ν•œ 파일의 전체 경둜 좜λ ₯
  • __dirname : μ‹€ν–‰ν•œ 파일이 λ“€μ–΄μžˆλŠ” λ””λ ‰ν† λ¦¬μ˜ 전체 경둜 좜λ ₯

 

 

 

 

 

 

'πŸ’»WEB BackEnd > node.js' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

λ…Έλ“œμ˜ λͺ¨λ“ˆ  (0) 2021.01.07