목차
02-1 자바스크립트 기초 문법
02-2 자바스크립트 비동기 처리
02-3 노드의 모듈
02-4 노드의 코어 모듈
02-1 자바스크립트 기초 문법
- 템플릿 리터럴
- 이를 사용하기 위해서는 백틱(`) 이 사용되어야 한다.
let num1 = 10;
let num2 = 20;
// 연결 연산자 사용
console.log(num1 + "과 " + num2 + "를 더하면 " + (num1 + num2) + "입니다.");
// 템플릿 리터럴 사용
console.log(`${num1}과 ${num2}를 더하면 ${num1 + num2}입니다.`);
- 함수
//함수선언
function add(num1, num2) { ... }
//1회성 함수
const a = function(){... }
//선언과 동시 실행 함수
(function(a,b){
console.log(`두 수의 합: ${a+b}`);
})(100,200);
//화살표
//let sum = (a, b) => { return a + b; };
// 화살표 함수를 좀더 간단하게
let sum = (a, b) => a + b;
sum(100, 200); // 300
- 변수
- const : 값이 프로그램 내에서 불변, let : 값이 프로그램 내에서 가변
02-2 자바스크립트 비동기 처리
02/async-2.js
// 중간에 시간 걸리는 작업이 있을 경우 (결과 비교: 02\results\async-1.js)
function displayA(){
console.log("A");
}
function displayB(){
setTimeout(()=> {
console.log("B");
},2000);
}
function displayC(){
console.log("C");
}
displayA();
displayB();
displayC();
함수들을 원하는 처리 순서에 맞게 프로그래밍 하는 것을 비동기 처리 라 한다.
비동기 처리를 할때 사용하는 방법 3가지
- 콜백 함수
- 콜백 함수 = 다른 함수의 매개변수로 사용하는 함수
02/callback-2.js
function displayLetter() {
console.log('A');
setTimeout(() => {
console.log('B');
setTimeout(() => {
console.log('C');
setTimeout(() => {
console.log('D');
setTimeout(() => {
console.log('stop!');
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}
displayLetter();
위와 같은 콜백 지옥에서 벗어나기 위해 프라미스가 있다.
- 프라미스
- resolve, reject 함수를 사용해 성공/실패를 결정하고, 이를 then,catch에서 받는다.
let likePizza= true;
const pizza = new Promise((resolve, reject)=>{
if (likePizza)
resolve("피자를 주문합니다.");
else
reject("피자를 주문하지 않습니다.");
});
pizza
.then(result => console.log(result))
.catch(err => console.log(err));
//피자를 주문합니다.
- async/wait
async function init() {
const response = await fetch("https://jsonplaceholder.typicode.com/users"); // 서버에서 가져오기
const users = await response.json(); // 가져온 결과를 users에 저장
console.log(users); // users 표시
}
init();
02-3 노드의 모듈
모듈 export
module.exports = 파일이름
모듈 require
require("./파일이름);
모듈 적용하는 실습
02/users-3.js
const user1 = "Kim";
const user2 = "Lee";
const user3 = "Choi";
module.exports = {user1, user2, user3};
02/app-4.js
const users = require("./users-3");
const hello = require("./hello");
console.log(users);
hello(users.user3);
console.log(users)는 객체의 묶음을 반환하고,
hello(users.user3)는 hello함수의 결과를 반환한다.
노드의 코어 모듈
- 코어 모듈
- 코어 모듈임을 밝히기 위해 node: 접두사를 붙여서 가져온다.
const fs = require("node:fs");
- 글로벌 모듈
- require 함수를 사용하지 않고 사용가능한 모듈 (ex. console, __dirname, __filename, setTimeout, setInterval, clearInterval)
- setInterval 함수 (https://developer.mozilla.org/en-US/docs/Web/API/setInterval 참고)
setInterval(func, delay)
func : A function to be executed every delay milliseconds. The first execution happens after delay milliseconds.
반복되는 함수 대상 자체
delay : The time, in milliseconds (thousandths of a second), the timer should delay in between executions of the specified function or code. Defaults to 0 if not specified. See Delay restrictions below for details on the permitted range of delay values.
함수 반복 주기
setTimeout 도 위와 같은 구조. 다만, delay 시간 후 func을 한 번 실행한다.
이 책에서는 commonJS 모듈 사용만 다룬다고 쓰여져 있어서, 추가로 들어있는 ES 모듈 파트는 넘어갔다.
'전공 > node.js' 카테고리의 다른 글
[node.js] 기본 라우팅, 비동기 처리 방법 (node.js 스터디 -ch4,5) (1) | 2024.03.24 |
---|---|
[node.js] 파일 관리하기-path, File System 모듈 (node.js 스터디 1주차-ch3) (0) | 2024.03.20 |
[node.js] 실행환경 설정 (node.js 스터디 1주차-ch1) (0) | 2024.03.20 |