본 영상
생활코딩: WEB2 - Node.js 재생목록 / 36 ~ n
동기 vs 비동기
자바스크립트에는 Sync가 되는 함수와 안되는 함수 2가지가 존재한다.
동기 방식 | 비동기 방식 |
//readFileSync
console.log('A');
var result = fs.readFileSync('egoing/syntax/sample.txt', 'utf8');
console.log(result);
console.log('C');
|
//readFile
console.log('A');
fs.readFile('egoing/syntax/sample.txt', 'utf8', function(err, result){
console.log(result);
});
console.log('C');
|
결과 | |
A B C |
A C B |
일반적인 절차지향적 프로그래밍과 달리 비동기적으로 처리할 수 있기 때문에 line 순서대로 결과가 나오는 것이 아니라 비동기로 작동한다.
효율적이게 사용할 수 있지만 지난 캠프에서 react 팀이 어려워 하는 부분도 이 비동기 부분이었다. 안보이는 곳에서 돌아가는 것을 볼 수가 없기 때문에 순서에 주의를 기울여야 한다.
NodeJS의 철학은 비동기 방식이므로 동기 방식을 지양한다.
콜백함수
자바스크립트에서 함수는 `값`이다.
var a = function(){
console.log('A');
}
함수를 파라미터로 넣을 수 있고 다시 함수 내부에서 지역 변수로서 호출할 수 있다.
function slowfunc(callback) {
callback();
}
slowfunc(a);
패키지 매니저와 PM2
pm2 -> Advance, production process manager for Node.js
nodejs의 상태를 확인해서 재시작을 도와주는 모듈.
java spring의 dev-tools에서 지원하는 auto compile 기술 정도로 이해함.
pm2 설치
sudo npm install pm2 -g //mac&linux 관리자 권한 부여
pm2 명령어 예제
pm2 실행
cpu 및 memory 점유 상황 확인 가능.
pm2 start app.js --watch
--watch 옵션을 적어주어야 변경 감지 후 재시작을 해줌.
pm2 mornitoring
pm2 monit
terminal 창에서 모니터링 할 수 있음
pm2 list
감시하고 있는 node process를 확인할 수 있음.
pm2 stop main
main 프로세스 감시 중지
pm2 log (app)
로그 확인 가능
JavaScript 객체의 형식
Object와 Array는 모두 데이터를 담는 도구이지만 객체(Object)는 순서없이 배열(Array)은 순서있게 정리하는 방식이다.
객체는 JSON처럼 key-value 형식이다.
반복으로 출력하고 싶다면 다음과 같은 문법을 사용한다.
for(var name in rols){
console.log('object => ', name, 'value => ', roles[name]);
}
JavaScript - 모듈의 형식
모듈의 작성
`module.exports = 모듈이름;`을 통해 모듈을 작성할 수 있다. module은 함수이다.
var M = {
v:'v',
f:function(){
console.log(this.v);
}
}
module.exports = M;
------ or -------
module.exports = {
v:'v',
f:function(){
console.log(this.v);
}
}
모듈의 사용
모듈은 require를 통해 불러올 수 있고, 객체의 프로퍼티를 지정하여 사용할 수 있다.
var part = require('./mpart.js');
part.f();
'Web Dev > Node.js' 카테고리의 다른 글
Node.js 기본 (0) | 2023.04.04 |
---|