일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 코드로배우는스프링부트웹프로젝트
- 스프링 시큐리티
- 서버설정
- 목록처리
- 리눅스
- 구멍가게코딩단
- ㅒ
- 선형대수
- 네트워크 설정
- 친절한SQL튜닝
- /etc/network/interfaces
- 티스토리 쿠키 삭제
- 처음 만나는 AI수학 with Python
- 처음 만나는 AI 수학 with Python
- 데비안
- 자료구조와함께배우는알고리즘입문
- iterator
- 스프링부트핵심가이드
- network configuration
- 이터레이터
- 자바편
- 코드로배우는스프링웹프로젝트
- 알파회계
- 자료구조와 함께 배우는 알고리즘 입문
- baeldung
- GIT
- 페이징
- d
- Kernighan의 C언어 프로그래밍
- resttemplate
- Today
- Total
bright jazz music
자바스크립트 파일 시스템 모듈과 readLine모듈, /dev/stdin 본문
1. 파일시스템 모듈
입력 데이터가 텍스트 파일 형식으로 주어지는 경우, 파일시스템 모듈을 사용한다.
만약 ./input.txt 파일의 내용이 아래와 같다면,
5
48 20 39 55 77
let fs = require('fs');
let input = fs.readFileSync('./input.txt', 'utf-8').toString().split('\n');
// split() 을 이용해서 줄바꿈 기호를 기준으로 각각의 정보를 읽어오는 것이 일반적이다.
// readLine 모듈보다 파일시스템 모듈이 빠르게 동작하는 것이 일반적이다.
console.log(input);
[ '5', '48 20 39 55 77' ]
이를 이용하면 파일을 한꺼번에 읽어올 수 있다.
2. readLine 모듈
한 줄씩 입력받아서 처리하여 출력할 때는 readLine 모듈을 사용할 수 있다.
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
readline.on('line', function(line){
// 콘솔 입력창에서 줄바꿈(Enter) 입력할 때마다 호출
input.push(line);
}).on('close', function(){
// 콘솔 입력창에서 Ctrl+C 또는 Ctrl+D를 누르면 호출. 입력의 종료
console.log(input);
process.exit();
});
예시
let readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
let t = 0;
readline.on('line', function(line){
input.push(line);
t++;
if(t >= 2){
// 필요한 입력이 모두 끝났으면 처리 로직 실행
readline.close(); // readline 인터페이스 닫기
}
});
readline.on('close', function() {
// 이벤트 핸들러에서 처리 로직 실행
let a = parseInt(input[0]);
let b = parseInt(input[1]);
console.log(a+b);
});
3. /dev/stdin
`/dev/stdin`은 UNIX 및 유닉스 계열 운영 체제에서 사용되는 특별한 파일 시스템 경로이다. 이 경로는 표준 입력 스트림(Standard Input Stream)을 나타낸다. 간단히 말해, 이것은 프로그램이 사용자로부터 데이터를 받을 수 있는 가상의 파일로, 키보드 입력이나 다른 프로그램의 출력을 프로그램으로 리디렉션할 수 있다.
예를 들어, Node.js에서 `fs.readFileSync('/dev/stdin')`을 사용하면, 이는 프로그램이 실행될 때 표준 입력으로부터 데이터를 읽는 것을 의미한다. 이 방법은 주로 스크립트가 터미널이나 다른 프로그램으로부터 데이터를 직접 받을 때 사용다.
이 코드의 사용 예는 다음과 같습니다:
1. 사용자의 키보드 입력을 받아 처리할 때.
2. 파일의 내용을 프로그램으로 파이프라인하여 처리할 때.
3. 다른 프로그램의 출력을 이 프로그램으로 파이프라인하여 처리할 때.
예시:
- 터미널에서 직접 입력을 받는 경우:
echo "3 4" | node your_script.js
이 경우, "3 4"가 `/dev/stdin`을 통해 스크립트로 전달다.
- 다른 파일의 내용을 읽어 처리하는 경우:
cat input.txt | node your_script.js
여기서 `input.txt` 파일의 내용이 `/dev/stdin`을 통해 스크립트로 전달다.
이러한 방식은 스크립트가 비동기적 입력 처리보다는 동기적인 데이터 처리에 적합할 때 유용하다.
'OS 및 기타 > Node.js' 카테고리의 다른 글
Node.js 프로젝트의 Dependencies 이해하기 (0) | 2024.12.22 |
---|---|
Node.js환경변수 설정과 dotenv(.env) 파일 관리 (0) | 2024.12.22 |