모던자바스크립트 스터디 19일차이다.
45장 프로미스
46장 제너레이터와 async/await
47장 에러처리
48장 모듈
오늘은 위 단원을 공부하고 모르는것을 정리했다.
# 궁금증
yield와 return 차이
# 이유
yield는 return의 일종으로 반환하는 것이다.
다만, return은 1번 반환하고 끝나는 것과 다르게, yield는 연속적인 반환값이다.
generator는 사라지는 게 아니라 계속 남아서 코드를 돌리기 때문에 일반 함수문과 다르게 메모리 집약적 절차를 가질 수 밖에 없는 것이다.
보통 제너레이터 객체의 next() 메서드를 호출하면 yield 표현식까지 실행되고 일시 중지된다.
함수의 제어권이 호출자에게 양도(yield)되는데, 이 과정의 반복을 돌려야하니 일반 함수의 호출과 1번 return과는 조금 다를 수 밖에 없는 것이다.
# 궁금증 2
왜 node.js backend 진영은 AMD 말고 CommonJS가 주류가 되었을까?
# 이유
CommonJS의 한 부분은 모듈 사양이다.
Node.js는 서버 측 JavaScript 런타임이며, 둘 다 CommonJS 모듈 사양을 기반으로 하는 모듈을 구현한다.
솔직히 amd,나 commonjs나 많이 차이나지는 않지만,
CommonJS
- 대규모 프로젝트의 수많은 기능, 파일, 모듈을 처리하기 위한 사양
- 초기 구현은 서버, nodejs, 데스크탑 기반 라이브러리
- 동기식 지원
- 하나의 서버 우선 접근 방식
- I/O, 파일 시스템, promise 등 지원
- 강제 정의 rapper 필요없음
- 객체만 모듈로 지원
등의 이유로 백엔드를 개발하는데 CommonJS가 목적성이 맞았기 때문에 우세하게 된 것 같다.
# 참고
https://stackoverflow.com/questions/2282140/whats-the-yield-keyword-in-javascript
https://stackoverflow.com/questions/16521471/relation-between-commonjs-amd-and-requirejs
'JaveScript > JaveScript' 카테고리의 다른 글
Chrome Service Worker - Background sync 기능 (0) | 2024.05.28 |
---|---|
모던자바스크립트 42, 43, 44장 스터디 (2) | 2023.12.07 |
모던자바스크립트 41장 스터디 (1) | 2023.12.06 |
모던자바스크립트 37, 38장 스터디 (0) | 2023.12.04 |
모던자바스크립트 33, 34장 스터디 (0) | 2023.12.02 |