[JavaScript/자바스크립트] 프로그래머스 Level.0 - 문자열 출력하기
🐳 문제 설명
문자열 str이 주어질 때, str을 출력하는 코드를 작성해 보세요.
🐳 제한 조건
- 1 ≤ str의 길이 ≤ 1,000,000
- str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.
🐳 입출력 예
입력 #1
HelloWorld!
출력 #1
HelloWorld!
🐳 작성 솔루션
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
}).on('line', console.log)
🐳 끄적끄적
오랜만에 level0부터 코테 연습 좀 하려고 했는데 보자마자 뇌가 멈칫해버렸다.. 자바스크립트가 목적이 아닌 아닌 프로젝트를 위해 자바스크립트를 사용하니 자바스크립트 언어 자체에 내장된 모듈에 대해선 생소하다. 이참에 공부해두자!
readline모듈은 사용자의 입력을 console.log로 출력할 수 있도록 해주는 역할을 한다.
[1] readline 모듈
: readline 모듈은 JavaScript에 내장된 모듈로, readable 스트림에서 한 줄씩 입출력을 처리할 수 있게 도와줍니다.
[2] 모듈 불러오기
: 모듈을 불러오기 위해서는 require("모듈 이름")을 선언하고, 변수를 선언하여 저장해야 합니다.
const readline = require("readline")
[3] readline interface 객체 만들기
: (1) 정의한 변수를 이용해 readline 인터페이스 객체를 하나 만들어줍니다.
(2) readline interface 객체를 이용해 콘솔에서 표준 입출력을 처리할 수 있습니다.
(3) creacteInterface()메서드를 이용해 객체를 만들고, rl 변수에 저장해줍니다.
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
[4] on 메소드
: 생성한 변수 rl 객체로 입출력과 관련된 여러 이벤트 처리를 할 수 있습니다. 예를 들어 사용자가 콘솔에 입력을 넣는 것과 같은 이벤트가 있습니다. on메소드를 이용하면 이벤트가 발생할 때 실행할 동작을 지정할 수 있습니다.
[5] line 이벤트
: readline interface를 통해 다룰 이벤트는 'Line'이벤트로 사용자가 콘솔에 입력을 할 때 발생합니다.
입력 이벤트는 입력 스트림에 줄바꿈을 나타내는 \n, \r, \r\n 제어문자가 나타나거나, 사용자가 Enter 또는 Return을 누를 때 발생합니다.
아래와 같이 작성하면 사용자가 입력한 한 줄을 그대로 다시 출력할 수 있습니다.
rl.on("line", function(x) {
console.log(x);
});
[6] close 이벤트
'close'이벤트는 readable 스트림 종료를 제어하는 이벤트이며, 'line'이벤트와 비슷한 형태로 작성합니다.
.on("close", function() {
});
해당 이벤트는 더 이상 입력받을 것이 없을 때 rl.close()를 호출하여 발생시킵니다.
따라서 'line'이벤트와 함께 아래와 같이 사용됩니다.
rl.on("line", function(x) {
console.log(x);
rl.close(); // 입력종료
}).on("close", function() {
// 입력 종료 후 동작할 코드
});
[7] 사용자 입력을 받아 출력하는 방법 정리
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)
});