[node.js] 파일 입출력
파일 입출력 모듈로는 fs가 있다.
단순하게 파일을 하나 써넣으려면 이런식으로 하면 된다.
writeFileSync는 동기적으로, 그냥 우리가 해왔듯이 쓰기 작업을 한다. 노드가 비동기를 기본동작으로 삼아놔서 네이밍이 저렇게 된거다.
첫번째 인자는 경로+파일이름이다. 파일이 없거든 text.txt라는 파일을 만들어놓는다.
두번째 인자는 써넣을 데이터다. Hello World!라고 써넣었다.
세번째 인자는 선택적 인자인데, 명시하지 않으면 utf8 포맷을 기본으로 한다.
어쨌든 잘 실행이 됐다면
작업경로에 이렇게 떴을 것이다.
그럼 이제 다시 이걸 읽어보자
readFileSync를 쓰면 된다.
이건 쓰기 버전에서 2번째 인자만 증발한 대신에, 읽은 텍스트를 반환값으로 뱉어낸다.
잘 된다.
이번엔 비동기 버전을 써보자
사용법은 동기 버전과 거의 비슷하나,
실행 완료 시점을 예측할 수 없기 때문에 try-catch 방식의 예외처리를 할 수가 없다는 점이 다르다.
그래서 마지막 4번째 인자로 예외처리용 콜백함수를 전달해준다. 이렇게 전달된 콜백함수는 해당 작업이 다 끝나면 자동으로 호출된다.

이런식으로 쓰면 된다.
비동기 입력은 이와는 좀 다르다.
출력함수의 경우에는 그냥 뱉어버리고 마니까, 신경을 덜 써도 되는데 입력함수는 그렇지 않다.
입력을 받은 값을 로직 내에서 또 쓸 것 아닌가? 쓰려고 받을 것일테니 말이다.
그런데 알다시피 비동기 함수는 완료 시점을 알 수가 없으니, 동기 버전처럼 입력받은 값을 리턴하는 식으로 구현할 순 없다.
그래서 비동기 버전에선 입력받은 값을 콜백함수를 통해 처리하도록 한다.
두번째 인자가 그 입력값이 된다.
