-
[프로그래머스/JavaScript] 문자열 출력하기 (Feat. 기초 트레이닝)IT Study/프로그래머스 2023. 10. 10. 17:59728x90
초기 코드
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('프로그램 종료'); });
'IT Study > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JavaScript] 주사위 게임 3 (Feat. Map) (0) 2023.10.11 [프로그래머스/JavaScript] 조건 문자열 (Feat. eval) (0) 2023.10.10 [프로그래머스/JavaScript] 문자열 겹쳐쓰기 (0) 2023.10.10 [프로그래머스/JavaScript] 대소문자 바꿔서 출력하기 (0) 2023.10.10 [프로그래머스/JavaScript] 문자열 반복해서 출력하기 (0) 2023.10.10