IT Study/프로그래머스
[프로그래머스/JavaScript] 문자열 출력하기 (Feat. 기초 트레이닝)
three kim
2023. 10. 10. 17:59
728x90
초기 코드
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);만 추가)
// readline(콘솔에서 사용자 입력 읽기) 모듈 불러오기
const readline = require('readline');
// readline 모듈을 사용해 인터페이스를 생성
const rl = readline.createInterface({
// process.stdin: 콘솔 입력을 사용
input: process.stdin,
// process.stdout: 콘솔 출력을 사용
output: process.stdout
});
// 사용자의 입력을 저장할 배열 초기화
let input = [];
// 'line' 이벤트: 사용자가 엔터 키 입력 시 발생하는 이벤트
rl.on('line', function (line) {
// 입력된 문자열을 배열에 저장 (배열의 첫 번째 원소로만 저장)
input = [line];
}).on('close', function () {
// 'close' 이벤트: 사용자가 입력을 마치고 프로그램 종료 시 발생하는 이벤트
// 저장된 입력 값을 변수에 할당 및 출력
str = input[0];
console.log(str);
});
// 코드 실행이 종료되지 않도록 하기 위해 입력 대기 상태 유지
이 문제에서 가져가야 할 ⭐️ new ⭐️ 개념은 다음과 같습니다.
(1) require: require는 Node.js에서 모듈을 불러오는 데 사용되는 키워드입니다.
다른 파일이나 라이브러리의 기능을 현재 파일에서 사용할 수 있게 해줍니다.
(2) readline 모듈: Node.js의 내장 모듈 중 하나로, 콘솔에서 사용자 입력을 읽을 수 있게 해주는 모듈입니다.
(3) readline.createInterface(): readline 모듈의 메서드로, 입력 및 출력을 지정하여 인터페이스를 생성합니다.
이를 통해 콘솔에서 사용자 입력을 받을 수 있습니다.
(4) rl.on(): 이벤트를 처리하는 메서드로, 지정된 이벤트가 발생했을 때 실행될 콜백 함수를 등록합니다.
(5) 'line' 이벤트: 사용자가 엔터 키를 입력하면 발생하는 이벤트입니다.
입력된 문자열을 처리하기 위한 로직이 이 이벤트 핸들러에 정의되어 있습니다.
(6) 'close' 이벤트: 사용자가 입력을 마치고 프로그램을 종료할 때 발생하는 이벤트입니다.
입력을 처리하고 프로그램을 종료하는 로직이 이 이벤트 핸들러에 정의되어 있습니다.
(7) process.stdin: Node.js에서 제공하는 표준 입력 스트림입니다.
readline 모듈을 통해 이 스트림을 사용하여 사용자의 입력을 읽어옵니다.
(8) process.stdout: Node.js에서 제공하는 표준 출력 스트림으로, 콘솔에 출력하는 데 사용됩니다.
그 중 require, readline에 대한 개념을 살펴보도록 하겠습니다.
(1) require
require과 import
외부 파일이나 라이브러리를 불러올 때 사용하는 키워드로
NodeJs, CommonJS에서는 require,
JS, ES6에서는 import를 사용하는 개념이라고 생각하면 됩니다.
// 사용자 정의 모듈 가져오기
// math.js
exports.add = (a, b) => a + b;
// main.js
const math = require('./math');
console.log(math.add(2, 3)); // 5
(2) readline 모듈
readline
콘솔에서 사용자 입력을 읽는 모듈
readline 모듈을 사용하기 위해서는 아래와 같은 단계를 거쳐야 합니다.
// 1. 모듈 불러오기
const readline = require('readline');
// 2. Interface 생성하기
const rl = readline.createInterface({
input: process.stdin, // 표준 입력
output: process.stdout // 표준 출력
});
// 3. 이벤트 리스너 등록하기
rl.on('line', function (line) {
console.log('사용자 입력:', line); // line: 엔터 키 입력 시 이벤트 발생
});
// 4. close 이벤트 처리
rl.on('close', function () {
console.log('프로그램 종료');
});