웹/JavaScript

알고리즘 문제풀이 입력 받아오기.

 알고리즘 문제를 풀려면 입력을 받고 출력을 하는게 기본인데 JS를 해본경험이 거의 없기때문에 설명을 봐도 궁금한점이 많아서 좀더 자세히 찾아보았다.

틀린내용이 있을 수 있으나 본인은 이렇게 이해하고 쓰는중.....

 

 

const testline = require('readline');

 require() 함수는 node.js 에서 외부 모듈을 불러오고 싶을때 사용한다. require() 함수를 통해서 readline 이라는 모듈을 불러올 것이다. realine 모듈에는 데이터를 읽어오는데 필요한 기능이 담겨있기 때문이다.

testline은 그냥 변수이름이다. 아무거나 편한대로 사용하자.

 

const rl = testline.createInterface({
  input: process.stdin,
  output: process.stdout
});

 위에서 testline 이라는 변수이름으로 require() 함수를 통해서 'readline' 모듈을 불러왔었다. 그렇기 때문에 rl 이라는 변수를(변수명은 마음대로) 하나 만들어서 testline을 통해 불러온 readline 모듈에 있는 createInterface 기능을 사용할 것이다. input-읽기 가능 스트림 / output-쓰기 가능 스트림과 연결된다.

 

rl.on('line', (TestNN) => {
  console.log('HELLOWWW');
  if(TestNN == 'end') rl.close();
  
});

 위에서 rl 이라는 변수명으로 인터페이스를 만들어놨다. 그걸이용해서 입력을 받을 것이다. 

.on() 이라는 이벤트 처리 메소드를 사용하여 이벤트를 처리해줄 것이다. 'line'은 개행 문자가 입력으로 들어오면 실행되게 되어있다. 개행문자가 입력되면 한줄을 TestNN 이라는 변수로 받는다. 위의 내용은 입력받은 내용이 'end' 가 아니면 계속해서 입력받게 되어있다. 입력받은 내용이 'end' 라면 rl.close()를 실행한다.

 

rl.on('close', ()=>{
  console.log('END!');
} );

 위에서와 마찬가지로 .on() 이라는 이벤트 처리 메소드를 사용하여 이벤트를 처리해줄 것이다.  close 이벤트가 호출되면 인터페이스는 input 과 output에 관한 조작권한을 포기한다. 그리고 인터페이스는 종료되게 된다.

 

전체 코드

const testline = require('readline');

const rl = testline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.on('line', (TestNN) => {
  console.log('HELLOWWW');
  if(TestNN == 'end') rl.close();
  
});

rl.on('close', ()=>{
  console.log('END!');
} );

 

 

' > JavaScript' 카테고리의 다른 글

자료구조 구현  (0) 2021.08.18
객체와 변경불가성  (0) 2021.08.03
객체  (0) 2021.07.29
타입 변환  (0) 2021.07.28
제어문  (0) 2021.07.28