자바스크립트(JS) 입출력 : readline 모듈 이용하기

Yeongju Yun·2022년 4월 12일
1

Javasscript

목록 보기
1/1

# readline 모듈

const readline = require("readline");
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
rl.on("line", function (line) {

}).on("close", function () {
  process.exit();
});

모듈 불러오기

모듈을 불러오기 위해서는 require(모듈 이름)를 이용해야 합니다. 불러온 모듈은 readline이라는 변수에 저장합니다.
여기서 const는 선언한 변수가 상수임을 나타내며, 해당 변수의 값을 변경하는 것은 불가능합니다.

readline interface 객체 만들기

정의한 변수를 이용해 readline interface 객체를 하나 만듭니다. readline interface 객체를 이용해 콘솔에서 표준 입출력을 처리할 수 있습니다. createInterface() 메소드를 이용해 객체를 만들고, rl이라는 변수에 저장해줍니다.

on 메소드

생성한 rl 객체로 입출력과 관련된 여러 이벤트들을 처리할 수 있습니다.

이벤트란 어떤 사건을 의미하며, 예를 들어 사용자가 콘솔에 입력을 넣는 것과 같은 사건을 의미합니다.
on 메소드를 이용하면 이벤트가 발생할 때 실행할 동작을 지정할 수 있습니다.

line 이벤트

readline interface를 통해 다룰 이벤트는 "line" 이벤트로 사용자가 콘솔에 입력을 할 때 발생합니다.

입력 이벤트는 입력 스트림에 줄바꿈을 나타내는 \n, \r, or \r\n 제어 문자가 나타나거나, 사용자가 Enter 또는 Return을 누를 때 발생하게 됩니다. 아래와 같이 작성하면 사용자가 입력한 한 줄을 그대로 다시 출력할 수 있습니다.

close 이벤트

또 다른 이벤트로 "close" 이벤트가 있습니다.
"close" 이벤트는 Readable 스트림 종료를 제어하는 이벤트이며, "line" 이벤트와 비슷한 형태로 작성합니다.

해당 이벤트는 더 이상 입력 받을 것이 없을 때 rl.close()를 호출하여 발생시킵니다. 따라서 "line" 이벤트와 함께 아래와 같이 사용됩니다.

0개의 댓글