JS AMD


## Asynchronous Module Definition
AMD의 규칙을 따르는 도구를 사용해야 하는데 그 도구들 중 하나 [RequireJS](https://texonom.com/requirejs-44473dd651684ea3a680e302141a18ae) 


```typedefine(['dep1', 'dep2'], function (dep1, dep2) {    //Define the module value by returning a value.    return function () {};});```


- AMD imports modules asynchronously
- AMD is made for frontend
- exact opposite sibling of CJS


> [amdjs/amdjs-api](https://github.com/amdjs/amdjs-api)

> [웹팩(3/4); JS모듈화 역사 돌아보기(1)](https://medium.com/@chullino/%EC%9B%B9%ED%8C%A9-3-4-js%EB%AA%A8%EB%93%88%ED%99%94-%EC%97%AD%EC%82%AC-%EB%8F%8C%EC%95%84%EB%B3%B4%EA%B8%B0-1-9df997f82002)






