AWS Lambda 의 context 객체에는 callbackWaitsForEmptyEventLoop 라는 프로퍼티가 있다. 저녀석에 대해 알아보다가 이참에 자바스크립트의 이벤트 루프에 대해 정리해보려 한다. (이번에 다루는 것은 Node.js 의 libuv에 대한 얘기는 아니다.) 시작하기에 앞서 자바스크립트의 동작 원리에 대해 정리해보자. 일반적으로 자바스크립트를 사용하고있는 브라우저에는 크게 2가지 엔진이 있다. 1. 자바스크립트 코드를 읽어들여 실행하는 자바스크립트 엔진(javascript engine) 2. html, css 코드를 가지고 브라우저에 화면을 그려내는 렌더링 엔진(rendering engine) Chrome 과 Node.js 가 구글의 V8 엔진을 사용하고 있다는 것을 많이 들었을..
javascript를 개발하면서 특정 라이브러리들을 사용하다보면 callback function을 사용하는 경우들이 있다. 예를들면 아래와 같은 경우다. request.get(url, function(error, response, data) { if (error) { throw new Error(error) } else { console.log(data) } }) (물론 request 의 경우는 await을 사용할 수 있는 별도 라이브러리가 존재하긴 한다.) 만약 await을 쓰고싶다거나, Promise 체인에서 사용하고 싶다면 위의 함수를 promise로 감싸주어야 한다. (당연한 말이지만 저 앞에다가 await 붙인다고 되는게 아니다..) 아래와 같이 해주면 된다. const getData = () ..
앞서서 설명한 forEach와 map은 정말 많이 쓰니 꼭 알아둬야한다. 근데 이번에 설명한 some, every, filter 는 앞의 두녀석보다는 상대적으로 덜 쓰게 된다. (filter는 자주 쓰는거 같다) 심지어 some, every 의 존재 자체를 깜빡한 채 해당 기능을 반복문으로 직접 구현할때도 있었다... 평상시에 정리해두면서 머리속에 팍팍 넣어놔야 겠다. 세가지 메소드 모두 인자로는 (요소, 인덱스, 배열자체) 를 받는다. 예제에서는 요소 하나만 인자로 받아서 설명하도록 하겠다. (실제로도 거의 이렇더라 나는) some 배열의 요소중 하나라도 특정 조건을 만족하는지 true, false로 리턴해주는 메소드다. (이름 참 명확하다) 참고로 요소를 돌면서 조건을 만족하는 요소를 만나면 그 즉시..
개발을 하면서 정말 많이 사용되는 녀석들... 바로 array 메소드들이다. 매번 필요한 기능이 있을 때마다 구글링을 하게 되는데 array 메소드의 경우 하도 자주 쓰니 이참에 정리를 해보려고 한다. 이번 포스팅의 경우 배열의 원소 하나하나에 접근하는 공통점을 가진 forEach와 map에 대해서 차이점을 정리하겠다. forEach 배열 안에 존재하는 요소에 하나하나 접근을 하여 원하는 로직을 구현할 수 있다. 함수 인자로는 순서대로 원소, 인덱스, 원본배열 이다. (사실 인자는 보통 첫번째만, 기껏해야 인덱스 까지만 사용되더라... map도 마찬가지고) 간단히 숫자들로 구성된 배열들의 합을 구한다면 아래와 같이 구현하면 되겠다. let numArr = [1,2,3,4,5] let sum = 0 // ..
먼저 자바스크립트의 모듈시스템에 대해 설명하자면 기존에는 html 파일에서 태그를 이용하여 필요한 자바스크립트 파일들을 불러왔다. 이러한 방식에는 큰 문제가 있었는데 html 파일에서 불러와진 여러 자바스크립트들이 서로 다른 파일임에도 불구하고 서로가 의존적이게 되어버렸다... 부가적으로 파일들을 로드하는 순서도 중요했고... 이러한 점을 보완하기 위해 등장한 것이 바로 모듈 시스템이다. 간단히 말하면 외부에서 사용할 수 있게 특정 함수나 오브젝트 등을 모듈화 하고, 해당 모듈을 사용하려는 쪽에서는 필요한 모듈만 불러와서 사용하면 된다. 모듈을 정의하기 위한 문법에는 여러가지가 있다. (모듈 포맷) 대표적으로 AMD, CommonJS, ES6 등이 있는데 이 포스팅에서는 CommonJS와 ES6를 비교해..
- Total
- Today
- Yesterday
- CommonJs
- jest
- es6
- javascript
- promise
- 야누자이
- 자바스크립트 엔진
- 프로미스
- nuxtjs
- Builder
- vue.js
- 스프링부트
- 근본
- 테스트코드
- springboot
- vue
- 자바스크립트
- vuejs
- 이벤트루프
- event loop
- 모듈시스템
- javascript engine
- await
- KCD2019
- 근본설
- intellij
- KCD
- nuxt
- 인텔리제이
- 빌더패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |