반응형
1. readline 모듈이란?
readline 모듈은 Node.js에서 제공하는 기본 모듈로, 터미널에서 입력과 출력을 처리할 수 있도록 도와줍니다. 주로 CLI(Command Line Interface) 프로그램에서 사용자로부터 입력을 받고, 이를 처리하거나 결과를 출력하는 데 사용됩니다.
주요 기능
- 콘솔 입력 처리: 사용자로부터 실시간으로 입력을 받을 수 있음.
- 입력된 데이터 처리: 줄 단위로 입력을 받아, 각 입력마다 이벤트를 발생시켜 특정 작업을 수행.
- 질문 및 응답: 사용자의 입력을 기다렸다가, 입력된 값에 따라 동작을 처리하는 기능.
2. readline 사용 방법
Node.js에서 readline을 사용하려면 먼저 모듈을 불러와야 합니다. 아래는 간단한 예제입니다.
const readline = require('readline');
// readline 인터페이스 생성
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 질문을 던지고 사용자의 입력을 받음
rl.question('What is your name? ', (answer) => {
console.log(`Hello, ${answer}!`);
// 인터페이스 닫기
rl.close();
});
위 예제는 readline 모듈을 통해 터미널에서 사용자에게 질문을 던지고, 사용자가 응답하면 그 값을 출력하는 간단한 프로그램입니다. 입력이 완료되면 rl.close()로 인터페이스를 종료해야 합니다.
3. React에서 readline을 사용하지 않는 이유
React는 브라우저 기반의 클라이언트 사이드 라이브러리로, 주로 웹 애플리케이션을 개발하는 데 사용됩니다. 브라우저 환경에서 사용자 입력을 처리하기 위해서는 HTML 폼 요소와 이벤트 핸들러를 사용합니다.
- readline은 Node.js와 같은 서버 또는 터미널 환경에서만 동작하며, 웹 브라우저와는 호환되지 않습니다.
- React에서 사용자 입력을 받는 방식은 HTML 폼 요소(예: <input>, <textarea> 등)를 활용하며, 사용자와 상호작용을 처리할 때는 이벤트 핸들러를 사용합니다.
React에서의 사용자 입력 처리 예시는 다음과 같습니다.
import React, { useState } from 'react';
function App() {
const [name, setName] = useState('');
const handleInputChange = (event) => {
setName(event.target.value);
};
const handleSubmit = (event) => {
event.preventDefault();
alert(`Hello, ${name}!`);
};
return (
<div>
<form onSubmit={handleSubmit}>
<label>
Name:
<input type="text" value={name} onChange={handleInputChange} />
</label>
<button type="submit">Submit</button>
</form>
</div>
);
}
export default App;
4. readline vs React의 입력 처리 방식
- readline: Node.js 환경에서 터미널을 통해 사용자의 입력을 받아 처리하는 데 사용.
- React: 웹 브라우저를 통해 사용자 입력을 폼 요소와 이벤트 핸들러를 사용하여 처리.
readline은 서버나 터미널 기반 프로그램에서 유용하지만, React 같은 클라이언트 사이드 애플리케이션에서는 필요하지 않습니다.
반응형