Node.js - 전역 객체

안녕하세요, 프로그래밍에 도전하는 여러분! 오늘 우리는 Node.js 전역 객체의 흥미로운 세계로 뛰어들어 보겠습니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 이 여정을 안내해 드리는 것을 기쁘게 생각합니다. 프로그래밍 초보자라也不用担心 – 우리는 기본부터 시작해 점진적으로 올라갈 테니요. 여러분의 좋아하는 음료를 손에 들고, 편안하게 앉아, 시작해 보겠습니다!

Node.js - Global Objects

전역 객체란 무엇인가요?

구체적인 내용으로 들어가기 전에 전역 객체에 대해 이해해 보겠습니다. 큰 집(그것이 여러분의 Node.js 환경입니다)에 있고, 방마다 가지고 다녀야 할 필요 없이 사용할 수 있는 도구들이 있다고 상상해 보세요. 이러한 것들이 전역 객체입니다. 여러분의 Node.js 프로그램에서 어디서든 사용할 수 있는 객체들이죠.

Buffer 클래스

Buffer 클래스부터 시작해 보겠습니다. 버퍼는 데이터의 일시적인 저장 공간으로, 물을 담는 그릇 같은 것입니다.

Buffer 생성

const buf1 = Buffer.alloc(10);
console.log(buf1); // Output: <Buffer 00 00 00 00 00 00 00 00 00 00>

const buf2 = Buffer.from('Hello, Node.js!');
console.log(buf2.toString()); // Output: Hello, Node.js!

이 예제에서 buf1은 10개의 데이터를 담을 수 있는 빈 그릇입니다. buf2는 문자열에서 생성되었으며, toString()을 사용하여 다시 문자열로 변환할 수 있습니다.

Buffer 사용

const buf = Buffer.alloc(4);
buf.write('Hey!');
console.log(buf.toString()); // Output: Hey!

buf[1] = 111; // 'o'의 ASCII 코드
console.log(buf.toString()); // Output: Hoy!

여기서 우리는 버퍼에 쓰고 심지어 개별 바이트를 변경합니다. 그릇의 다른 부분을 칠하는 것과 같은 느낌입니다!

Console 클래스

Console 클래스는 디버깅과 정보 로그에 유용한 충실한 동반자입니다.

console.log('Hello, World!'); // Prints: Hello, World!
console.error('Oops, something went wrong!'); // Prints error in red
console.warn('Be careful!'); // Prints warning in yellow

console.time('Loop time');
for(let i = 0; i < 1000000; i++) {}
console.timeEnd('Loop time'); // Prints: Loop time: 2.845ms

이 메서드들은 코드에서 무엇이 일어나고 있는지 이해하는 데 도움이 됩니다. 프로그램과 대화하는 것 같은 느낌입니다!

Process 객체

Process 객체는 Node.js 환경과 현재 프로세스에 대한 창을 제공합니다.

console.log(`Node.js version: ${process.version}`);
console.log(`Current directory: ${process.cwd()}`);

process.on('exit', (code) => {
console.log(`About to exit with code: ${code}`);
});

process.exit(0);

이 객체는 현재 Node.js 프로세스와 상호작용할 수 있게 해줍니다. 프로그램의 컨트롤 패널 같은 느낌입니다!

전역 타이머 함수

Node.js는 코드 실행을 예약하는 여러 가지 함수를 제공합니다. 몇 가지를 살펴보겠습니다:

setTimeout(() => {
console.log('This runs after 2 seconds');
}, 2000);

setInterval(() => {
console.log('This runs every 3 seconds');
}, 3000);

setImmediate(() => {
console.log('This runs as soon as possible');
});

이 함수들은 코드가 나중에 무엇을 할 것인지 설정하는 알림이나 알람과 같습니다.

전역 변수

Node.js는 항상 사용할 수 있는 몇 가지 전역 변수를 제공합니다:

console.log(__dirname); // 현재 모듈의 디렉토리 이름 출력
console.log(__filename); // 현재 모듈의 파일 이름 출력
console.log(module); // 현재 모듈에 대한 참조
console.log(exports); // module.exports 객체에 대한 참조
console.log(require); // 모듈을 포함하는 함수

이 변수들은 현재 파일과 모듈에 대한 정보를 제공합니다. 코드의 GPS 좌표 같은 느낌입니다!

다른 전역 객체

Node.js에서 중요한 다른 전역 객체들의 표입니다:

객체 설명
global 전역 이름 공간 객체
process 현재 Node.js 프로세스에 대한 정보와 제어를 제공
console stdout과 stderr에 출력을 위한 사용
Buffer 이진 데이터를 처리
setTimeout(), clearTimeout(), setInterval(), clearInterval() 타이밍 함수
setImmediate(), clearImmediate() "즉시" 실행 예약

이 객체들은 여러분의 Node.js 환경에서 항상 사용할 수 있어서, 놀라운 애플리케이션을 만드는 데 도움이 됩니다!

결론적으로, Node.js 전역 객체는 프로그래머의 삶을 더 쉽게 만드는 강력한 도구입니다. 그들은 여러분의 주머니에 항상 들고 다니는 스위스 아ーノ이와 같은 존재입니다. Node.js 여정을 계속하면서, 이 객체들을 점점 더 많이 사용하게 될 것입니다.

이 튜토리얼이 유용하고 즐거웠기를 바랍니다. 프로그래밍은 여정이며, 쓰는 각 줄은 한 걸음입니다. 계속 연습하고, 호기심을 유지하며, 가장 중요한 것은 즐거워하는 것입니다! 미래의 Node.js ninja 여러분, 행복하게 코딩하세요!

Credits: Image by storyset