문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
제한사항
str
의 길이 ≤ 1,000,000str
에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = [line];
}).on('close',function(){
str = input[0];
console.log(str);
});
여기는 코드가 아예 이해가 안 돼서 그냥 해설을 찾아서 봤다.
Node.js 환경에서 사용자로부터 입력을 받아 처리하는 예제
const readline = require('readline');
→ readline 모듈을 불러온다. ( Node.js의 기본 모듈, 한 줄씩 읽기/쓰기가 가능한 인터페이스 제공
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
→ createInterface 메소드를 사용해 readline 인터페이스를 생성한다. input은 입력 스트림, output은 출력스트림
= 콘솔(터미널)에서 사용자의 입력을 받고 출력할 수 있게 설정하는 것
let input = [];
→ 사용자로부터 입력받은 데이터를 저장할 배열 선언
rl.on('line', function (line) { input = [line]; }).on('close',function(){ str = input[0]; console.log(str); });
→ 이벤트 리스너를 설정
1. line
이벤트 - 사용자가 입력을 한 줄 완료했을 때 발생, 입력한 내용을 input 배열에 저장한다.
2. close
이벤트 - 입력 스트림이 닫히면 발생, input 배열의 첫 번째 원소를 str 변수에 저장한 후, 콘솔레 출력한다.
사용자로부터 한 줄의 입력을 받고, 그 입력을 저장한 뒤, 입력 스트림이 닫힐 떄 저장된 입력을 콘솔에 출력한다.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
}).on('line', console.log)
이 코드는 사용자의 입력을 바로 콘솔에 출력하는 간결한 방식이다.
인터페이스를 설정한 후 on('line', console.log)
을 체인하여 사용자의 입력이 있을 때마다 콘솔에 바로 출력한다. 중간에 배열이나 변수를 저장하지 않고 바로 처리한다.
또한 사용자의 입력을 바로 처리하기 때문에 저장할 필요가 없고, 별도의 변수나 배열을 사용하지 않는다.