2024-05-09

__dirname, process.cwd(), path 모듈 활용

node.js

Node.js에서 현재 스크립트 경로 가져오기

Node.js에서 현재 실행 중인 스크립트의 경로를 가져오는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 다음과 같습니다.

__dirname 변수는 현재 스크립트가 있는 디렉토리의 절대 경로를 문자열로 반환합니다. 예를 들어 다음 코드는 현재 스크립트의 경로를 콘솔에 출력합니다.

console.log(__dirname);

process.cwd() 함수는 현재 작업 디렉토리의 절대 경로를 문자열로 반환합니다. __dirname 변수와 마찬가지로 현재 스크립트의 경로를 가져오는 데 사용할 수 있습니다.

console.log(process.cwd());

path 모듈 사용:

path 모듈은 파일 경로를 조작하는 데 유용한 함수를 제공합니다. path.resolve() 함수를 사용하여 현재 스크립트의 경로를 가져올 수 있습니다.

const path = require('path');
console.log(path.resolve(__filename));

참고:

  • __filename 변수는 현재 스크립트의 파일 이름을 문자열로 반환합니다.
  • process.argv 배열은 명령줄 인수를 문자열 배열로 저장합니다. 첫 번째 요소는 항상 Node.js 실행 파일의 경로이고 두 번째 요소는 현재 스크립트의 경로입니다.

주의:

  • 위의 코드 예제는 모두 현재 스크립트가 실행되는 디렉토리의 작업 디렉토리가 현재 스크립트가 있는 디렉토리와 동일하다는 가정을 기반으로 합니다. 작업 디렉토리가 다르면 올바른 경로를 얻지 못할 수 있습니다.
  • 작업 디렉토리가 다른 경우 process.cwd() 함수를 사용하여 현재 작업 디렉토리의 경로를 가져온 다음 해당 경로를 기반으로 파일 경로를 조작해야 합니다.

이 외에도 다양한 방법으로 현재 스크립트 경로를 가져올 수 있습니다. 사용자의 특정 요구 사항에 따라 가장 적합한 방법을 선택하는 것이 중요합니다.



Node.js에서 현재 스크립트 경로 가져오기: 예제 코드

다음은 Node.js에서 현재 스크립트 경로를 가져오는 세 가지 방법을 보여주는 예제 코드입니다.

__dirname 변수 사용:

console.log(__dirname);

process.cwd() 함수 사용:

const path = require('path');
console.log(process.cwd());

path 모듈 사용:

const path = require('path');
console.log(path.resolve(__filename));

설명:

  • 위 코드는 모두 현재 스크립트의 경로를 콘솔에 출력합니다.
  • 각 방법은 현재 스크립트 경로를 가져오는 데 사용할 수 있는 다른 방법을 보여줍니다.
  • 사용자의 특정 요구 사항에 따라 가장 적합한 방법을 선택하는 것이 중요합니다.

추가 예제:

다음은 path 모듈을 사용하여 현재 스크립트의 상대 경로와 절대 경로를 가져오는 방법을 보여주는 추가 예제입니다.

const path = require('path');

// 현재 스크립트의 상대 경로 가져오기
const relativePath = path.relative(__dirname, '/path/to/file.txt');
console.log(relativePath);

// 현재 스크립트의 절대 경로 가져오기
const absolutePath = path.resolve(__dirname, '/path/to/file.txt');
console.log(absolutePath);

설명:

  • path.relative() 함수는 두 경로 사이의 상대 경로를 문자열로 반환합니다.
  • path.resolve() 함수는 여러 경로를 하나의 절대 경로로 결합합니다.

이러한 예제를 통해 Node.js에서 다양한 상황에 맞게 현재 스크립트 경로를 가져오는 방법을 이해할 수 있기를 바랍니다.



Node.js에서 현재 스크립트 경로 가져오기: 대체 방법

앞서 설명한 방법 외에도 Node.js에서 현재 스크립트 경로를 가져오는 몇 가지 대체 방법이 있습니다.

URL 객체 사용:

require('url') 모듈을 사용하여 URL 객체를 만들고 pathname 속성을 사용하여 현재 스크립트 경로를 가져올 수 있습니다.

const url = require('url');
const __filename = url.parse(__filename).pathname;
console.log(__filename);

fs 모듈 사용:

require('fs') 모듈을 사용하여 현재 스크립트 파일의 정보를 가져온 다음 filename 속성을 사용하여 현재 스크립트 경로를 가져올 수 있습니다.

const fs = require('fs');
const stats = fs.statSync(__filename);
console.log(stats.filename);

process.mainModule 객체 사용:

Node.js 10.0 이상에서는 process.mainModule 객체를 사용하여 현재 스크립트 경로를 가져올 수 있습니다.

console.log(process.mainModule.filename);

참고:

  • 위의 대체 방법은 모두 상황에 따라 유용할 수 있지만, 일반적으로 __dirname 변수, process.cwd() 함수 또는 path 모듈을 사용하는 것이 더 간단하고 효율적입니다.
  • 특정 상황에 맞는 가장 적합한 방법을 선택하는 것이 중요합니다.

이러한 대체 방법을 통해 Node.js에서 현재 스크립트 경로를 가져오는 다양한 방법을 이해할 수 있기를 바랍니다.


node.js

Node.js, Express, CoffeeScript에서 CORS 헤더를 OPTIONS 경로에 추가해도 브라우저가 API에 액세스할 수 없는 이유는 무엇입니까?

하지만 경우에 따라 CORS 헤더를 OPTIONS 경로에 추가해도 브라우저가 API에 액세스할 수 없는 문제가 발생할 수 있습니다. 이 문제는 다음과 같은 몇 가지 이유로 발생할 수 있습니다.잘못된 헤더 설정:Access-Control-Allow-Origin 헤더에 허용된 출처가 올바르게 설정되지 않았습니다...


Node.js에서 10,000개의 동시 요청을 처리하는 방법

Node. js에서 10, 000개의 동시 요청을 처리하는 일반적인 방법은 다음과 같습니다.비동기 I/O:Node. js는 기본적으로 비동기 I/O를 사용하므로 여러 요청을 동시에 처리할 수 있습니다. 비동기 I/O는 요청이 완료될 때까지 기다리지 않고 다른 작업을 수행할 수 있게 해줍니다...


Node.js에서 "heap out of memory" 오류 해결하기

메모리 누수: 객체가 더 이상 사용되지 않더라도 메모리에서 해제되지 않아 메모리 사용량이 계속 증가하는 경우 발생합니다.높은 메모리 사용: 애플리케이션이 많은 데이터를 처리하거나 많은 객체를 생성하는 경우 메모리 사용량이 증가하여 오류가 발생할 수 있습니다...


JavaScript와 Node.js에서 발생하는 "ReferenceError: fetch is not defined" 오류 해결

"ReferenceError: fetch is not defined" 오류는 JavaScript 또는 Node. js 코드에서 fetch 함수를 사용하려고 하는데 함수가 정의되지 않았을 때 발생합니다.원인"fetch"는 ES2017에서 도입된 새로운 API이며...