
-일정 시간 후에 함수를 실행
setTimeout(function () {
console.log('1초 후 실행');
}, 1000);
// 123
-setTimeout 타이머를 종료
const timer = setTimeout(function () {
console.log('10초 후 실행');
}, 10000);
clearTimeout(timer);
// setTimeout이 종료됨.
-일정 시간의 간격을 가지고 함수를 반복적으로 실행
setInterval(function () {
console.log('1초마다 실행');
}, 1000);
// 345
-setInterval 타이머를 종료
const timer = setInterval(function () {
console.log('1초마다 실행');
}, 1000);
clearInterval(timer);
// setInterval이 종료됨.
비동기 이벤트 기반 JavaScript 런타임
많은 API가 비동기로 작성
const fs = require('fs'); // 파일 시스템 모듈을 불러옵니다
const dns = require('dns'); // DNS 모듈을 불러옵니다
// 이제 fs.readFile 메서드 등을 사용할 수 있음
underscore (Node.js에 없는 모듈)npm install underscore //터미널에서 다음과 같이 입력해 underscore를 설치
const _ = require('underscore'); // require 구문을 이용해 underscore를 사용
File System: 파일을 읽거나 저장하는 기능 등을 제공
readFile: 파일을 읽을 때
writeFile: 파일을 저장할 때
참고할 사이트: fs.readFile의 공식 API 문서
fs.readFile: 로컬에 존재하는 파일을 읽어옴 (공식문서 참고하기)
fs.readFile 은 비동기적으로 파일 내용 전체를 읽음. 전달인자를 세 개 받음

path는 파일 이름을 전달인자로 받음. 네 가지 종류의 타입을 넘길 수 있지만 일반적으로 문자열(string)의 타입을 받음
fs.readFile('/etc/passwd', ..., ...)
// '/etc/passwd' 파일을 불러오는 예시

두 번째 전달인자 options는 넣을 수도 있고, 넣지 않을 수도 있음. -> 선택적 전달인자를 의미(대괄호)
options는 문자열 또는 객체 형태로 받음. 문자열로 전달할 경우 인코딩을 받음 -> 'utf8'
// /etc/passwd 파일을 'utf8'을 사용하여 읽음
fs.readFile('/etc/passwd', 'utf8', ...);
두 번째 전달인자 options에 문자열을 전달한 경우
let options = {
encoding: 'utf8', // utf8 인코딩 방식으로 연다
flag: 'r' // 읽기 위해 연다
}
// /etc/passwd 파일을 options를 사용하여 읽음
fs.readFile('/etc/passwd', options, ...)
두 번째 전달인자 options에 객체를 전달한 경우

콜백 함수를 전달함. 파일을 읽고 난 후에 비동기적으로 실행되는 함수.
두 가지 매개변수가 존재함. 에러가 발생하지 않으면 err 는 null
data 에 문자열이나Buffer 라는 객체가 전달. data 는 파일의 내용임
fs.readFile('test.txt', 'utf8', (err, data) => {
if (err) {
throw err; // 에러를 던집니다.
}
console.log(data);
});
// fs.readFile로 파일의 데이터를 읽을 수 있음
Part 2
두번째 과제는 fs module 사용법("파일 열기", "파일 저장하기" 등)을 배우고 callback,Promise,promise all, async/await 를 사용해 데이터를 받아오는 함수를 완성하는 과제였다. 개념만 겨우 이해하고 문제를 푸니 개념과 문제와의 괴리감이 느껴졌다.. 과제를 풀 때 어떤 개념을 어디에 대입해야할지 감이 오지 않았고 어려웠다. 많은 복습이 필요할듯 😭