JaveScript/JaveScript

모던자바스크립트 45, 46, 47, 48장 스터디

알면 알 수록 재밌다! 2023. 12. 8. 15:00

 

모던자바스크립트 스터디 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