자바스크립트의 readline이란?

Jinny·2024년 9월 15일
1

안녕하세요!
오늘은 자바스크립트에서 readline이라는 도구를 사용하여 사용자와 컴퓨터 간의 대화를 어떻게 구현하는지 알아볼 거예요. 자, 시작해볼까요?

1. readline이란?

자바스크립트에서 readline은 사용자와 컴퓨터 간의 대화를 가능하게 해주는 도구예요.
질문을 하고, 답변을 받아서 처리할 수 있는 기능을 제공합니다.

2. 자바스크립트 코드로 readline 사용하기

다음은 readline을 사용하여 사용자에게 질문을 하고, 답변을 받는 간단한 코드 예제입니다:

const readline = require('readline'); // readline 모듈을 가져와요.

const rl = readline.createInterface({
  input: process.stdin, // 사용자 입력을 받을 거예요.
  output: process.stdout // 컴퓨터의 응답을 보여줄 거예요.
});

rl.question('이름이 뭐에요? ', (answer) => {
  console.log(`안녕하세요, ${answer}님!`); // 사용자 이름에 대해 인사해요.
  rl.close(); // 대화가 끝났으니, readline을 닫아요.
});

이제 이 코드의 각 부분을 자세히 살펴볼까요?

3. 코드 설명하기

require

  • 자바스크립트에서 다른 도구나 파일을 가져올 때 사용하는 명령어입니다.
  • 예를 들어, require('readline')을 통해 readline 모듈을 가져와 사용할 수 있습니다.
  • 이는 새로운 기능을 추가하기 위해 필요한 도구를 조달하는 과정과 같아요.

createInterface

  • readline 모듈의 기능 중 하나로, 사용자와 대화할 수 있는 인터페이스를 설정합니다.
  • 이 기능은 대화의 장을 열어주며, 사용자와의 소통을 가능하게 합니다.

input & output

  • input
    • 사용자가 데이터를 입력할 수 있는 부분입니다. (e.g. 키보드 입력을 받아오는 역할)
  • output
    • 컴퓨터가 사용자에게 정보를 보여주는 부분입니다. (화면에 메시지 출력하는 역할)

process.stdin & process.stdout

  • process.stdin
    • 사용자의 입력을 받아오는 스트림입니다.
    • 즉, 사용자가 입력한 내용을 읽어들입니다.
  • process.stdout
    • 컴퓨터가 화면에 출력하는 내용을 보여주는 스트림입니다.
    • 즉, 컴퓨터가 사용자에게 결과를 출력합니다.

question

  • 사용자에게 질문을 던지고, 사용자가 답변할 때까지 기다리는 기능입니다.
  • 사용자가 답변을 입력하면, 그 답변을 처리하여 후속 작업을 수행할 수 있습니다.

close

  • 대화를 종료하고, 대화 인터페이스를 닫는 명령어입니다.
  • 대화가 끝났음을 컴퓨터에 알려주며, 대화 창을 정리합니다.

4. 비유로 이해하기

이제 readline의 각 개념을 쉽게 이해할 수 있도록 비유를 들어볼게요.

  • require

    • 새로운 장난감을 사기 위해 장난감 가게에 가는 것과 비슷해요.
    • require를 사용하면 자바스크립트에서 필요한 도구(장난감)를 가져올 수 있어요.
  • createInterface

    • 장난감으로 놀이를 시작하기 위해 장난감의 설정을 하는 것과 같아요.
    • createInterface는 사용자와 대화할 수 있는 환경을 준비하는 역할을 해요.
  • input & output

    • 장난감이 사용자와 상호작용하는 방식이에요.
      • input은 장난감이 사용자가 원하는 동작을 받아들이는 부분
      • output은 장난감이 사용자에게 결과를 보여주는 부분이에요.
  • process.stdin & process.stdout

    • 장난감의 두 가지 기능을 나타내는 거예요.
      • process.stdin은 사용자가 장난감에 입력하는 부분
      • process.stdout은 장난감이 결과를 사용자에게 보여주는 부분
  • question

    • 장난감이 사용자의 반응을 기다리는 것과 같아요.
    • 장난감이 "이걸 해볼까요?"라고 묻고, 사용자가 대답할 때까지 기다리는 과정이에요.
  • close

    • 놀이가 끝난 후 장난감을 정리하고 종료하는 것과 비슷해요.
    • 대화가 끝나면 모든 것을 정리하고 종료하는 역할을 해요.

이 비유를 통해 readline의 각 개념이 좀 더 쉽게 이해되길 바래요! 😊

5. 퀴즈

이제 여러분이 얼마나 잘 이해했는지 확인해볼까요? 퀴즈를 풀어보세요!

문제 1: require는 자바스크립트에서 무엇을 할 때 사용하는 명령어인가요?
A) 변수를 선언할 때
B) 다른 도구나 파일을 가져올 때
C) 조건문을 작성할 때

문제 2: createInterface는 어떤 역할을 하나요?
A) 컴퓨터의 화면을 깨끗이 하는 기능
B) 사용자와 대화할 수 있는 환경을 설정하는 기능
C) 숫자를 더하는 기능

문제 3: process.stdin과 process.stdout의 역할은 무엇인가요?
A) 입력과 출력을 처리하는 두 가지 통로
B) 데이터를 저장하는 장소
C) 웹 페이지를 로드하는 기능

문제 4: question은 무엇을 할 때 사용하는 함수인가요?
A) 화면에 그림을 그릴 때
B) 사용자에게 질문을 던지고 답변을 기다릴 때
C) 파일을 읽을 때

문제 5: close는 어떤 역할을 하나요?
A) 대화가 끝났음을 알려주고 대화 인터페이스를 닫는 역할
B) 프로그램을 시작할 때
C) 입력된 데이터를 저장하는 역할

6. 퀴즈 답안

B) 다른 도구나 파일을 가져올 때
B) 사용자와 대화할 수 있는 환경을 설정하는 기능
A) 입력과 출력을 처리하는 두 가지 통로
B) 사용자에게 질문을 던지고 답변을 기다릴 때
A) 대화가 끝났음을 알려주고 대화 인터페이스를 닫는 역할

이 블로그 포스트가 여러분에게 유용하길 바랍니다! 😊

profile
세상을 이롭게 하는 프론트엔드 개발자 Jinny

0개의 댓글