ABOUT ME

작은 디테일에 집착하는 개발자

Today
-
Yesterday
-
Total
-
  • [프로그래머스/JavaScript] 문자열 출력하기 (Feat. 기초 트레이닝)
    IT Study/프로그래머스 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('프로그램 종료');
    });
Designed by Tistory.