R(Read), E(Evaluate), P(Print), L(Loop)
자바스크립트는스크립트언어로, 즉석 코드 실행 가능하다.
cmd나 터미널에 node를 입력하여 사용할 수 있다.
프롬프트가> 모양으로바뀌면, JS 코드를 입력할 수 있다.
브라우저의 콘솔창처럼, 간단한 코드를 테스트 하는 용도로 적합하다.
모듈 사용하기
• 파일끝에 module.exports로 모듈로 만들 값을 지정한 후,
• 다른파일에서 require(파일 경로)로 그 모듈의 내용을 가져올수있다.
const { odd, even } 부분은 module.exports를 구조분해 할당한 것이다.
exports.odd = '홀수입니다';
exports.even = '짝수입니다';
var.js의 코드를 위와같이 바꾸어도 동일하게 기능한다. 동일한이유는module.exports와 exports가 참조 관계이기 때문이다.
__filename, __dirname
• __filename: 현재 파일 경로
• __dirname: 현재 폴더(디렉터리) 경로
예전에 __filename__과 같은 변수명들을 봤었던 것 같아서, gemini에게 차이를 질문했다.
__name__같은 형태로 쓴다는 사실을 확인했다.
Process
현재 실행중인 노드 프로세스에 대한 정보를담고있다.
설치된 노드 버전, 아키텍처 정보, 플랫폼 정보, 프로세스id값, 노드의 경로, 현재 프로세스의 실행위치, 현재 CPU 사용량 등을 알 수 있다.
os
운영체제의 정보를 담고있다.
모듈은require로 가져오는데, 내장 모듈이라 경로 대신이름만 적어줘도 된다.
const os = require("os");
console.log("운영체제 정보 ---");
console.log("os.arch():", os.arch());
console.log("os.platform():", os.platform());
console.log("os.type():", os.type());
console.log("os.uptime():", os.uptime());
console.log("os.hostname():", os.hostname());
console.log("os.release():", os.release());
console.log("경로 ---");
console.log("os.homedir():", os.homedir());
console.log("os.tmpdir():", os.tmpdir());
console.log("메모리 정보---");
console.log("os.freemem():", os.freemem());
console.log("os.totalmem():", os.totalmem());
os 모듈 메서드
• os.arch(): process.arch와 동일합니다.
• os.platform(): process.platform과 동일합니다.
• os.type(): 운영체제의 종류를 보여줍니다.
• os.uptime(): 운영체제 부팅 이후 흐른 시간(초)을 보여줍니다. process.uptime()은 노드의 실행 시간 이었습니다.
• os.hostname(): 컴퓨터의 이름을 보여줍니다.
• os.release(): 운영체제의 버전을 보여줍니다.
• os.homedir(): 홈 디렉터리 경로를 보여줍니다.
• os.tmpdir(): 임시 파일 저장 경로를 보여줍니다.
• os.freemem(): 사용 가능한 메모리(RAM)를 보여줍니다.
• os.totalmem(): 전체 메모리 용량을 보여줍니다.
path
폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈
운영체제별로경로구분자가다름(Windows: ‘\’, POSIX: ‘/’)
const path = require("path");
const string = __filename;
console.log(__dirname);
console.log(__filename);
console.log(path.dirname(__filename));
console.log(path.basename(__filename));
console.log(path.extname(__filename));
console.log(path.parse(__filename));
console.log(path.join(__dirname, "..", "img", "xinker.png"));
path 모듈 메서드
• path.sep: 경로의구분자. Windows는\, POSIX는/.
• path.delimiter: 환경변수의 구분자. process.env.PATH를 입력하면 여러개의 경로가 이 구분자로 구분됨.
Windows는세미콜론(;)이고POSIX는콜론(:)임.
• path.dirname(경로): 파일이 위치한 폴더경로
• path.extname(경로): 파일의 확장자
• path.basename(경로, 확장자): 파일의이름(확장자포함)
파일의 이름만 표시하고 싶다면 basename의 두 번째 인자로 파일의 확장자를 넣어야함.
• path.parse(경로): 파일 경로를 root, dir, base, ext, name으로 분리.
• path.format(객체): path.parse()한 객체를 파일 경로로 합침.
• path.normalize(경로): /나\를 실수로 여러번 사용했거나 혼용했을 때 정상적인 경로로 변환해줌.
• path.isAbsolute(경로): 파일의 경로가 절대경로인지 상대경로인지 (true/false)
• path.relative(기준경로, 비교경로): 경로를 두 개 넣으면 첫번째 경로에서 두번째 경로로 가는 방법을 알려줍니다.
• path.join(경로, .. .): 여러 인자를 넣으면 하나의 경로로 합침. 상대경로인..(부모디렉터리)과 .(현위치)도 알아서 처리.
본 후기는 [한글과컴퓨터x한국생산성본부x스나이퍼팩토리] 한컴 AI 아카데미 2기 (B-log) 리뷰로 작성 되었습니다.
'한컴AI 2기' 카테고리의 다른 글
[스나이퍼팩토리] 한컴AI 2기 - 파이썬 파일 I/O, 랜덤시드 숫자 맞추기 게임, CLI 학생 성적 관리 프로그램 (1) | 2025.09.10 |
---|---|
[스나이퍼팩토리] 한컴AI 2기 - npm, mysql, 몽고DB CRUD (0) | 2025.09.03 |
SQL 공부 1 : SELECT, DISTINCT, CONCAT (0) | 2025.08.21 |
[스나이퍼팩토리] 한컴AI 2기 - SQL 쿼리 실습 (3) | 2025.08.13 |
[스나이퍼팩토리] 한컴AI 2기 - 리액트 네이티브와 포켓몬 API (5) | 2025.08.08 |