[모던자바스크립트 Deep Dive] 48장. 모듈
·
JavaScript
1. 모듈 Module모듈이란, 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각을 말한다. 일반적으로 모듈은 기능을 기준으로 파일 단위로 분리한다. 이때 모듈이 성립하려면 모듈은 자신만의 파일 스코프(모듈 스코프)를 가질 수 있어야 한다. 자신만의 파일 스코프를 갖는 모듈의 자산(모듈에 포함되어 있는 변수, 함수, 객체 등)은 기본적으로 비공개 상태이다. 다시 말해, 자신만의 파일 스코프를 갖는 모듈의 모든 자산은 캡슐화되어 다른 모듈에서 접근할 수 없다. 즉, 모듈은 개별적 존재로서 애플리케이션과 분리되어 존재한다. 하지만 애플리케이션과 완전히 분리되어 개별적으로 존재하는 모듈은 재사용이 불가능하므로 존재의 의미가 없다.모듈은 애플리케이션이나 다른 모듈에 의해 재사용되어야 의미가 있다...
[모던자바스크립트 Deep Dive] 46장. async, await
·
JavaScript
1. async 함수await 키워드는 반드시 async 함수 내부에서 사용해야 한다. async 함수는 async 키워드를 사용해 정의하며 언제나 프로미스를 반환한다. async 함수가 명시적으로 프로미스를 반환하지 않더라도 async 함수는 암묵적으로 반환값을 resolve하는 프로미스를 반환한다.// async 함수 선언문async function foo(n) {return n;}foo(1).then(v => console.log(v)); // 1// async 함수 표현식const bar = async function(n) {return n };bar(2).then(v => console.log(v)); // 2// async 화살표 함수const baz = async n => n;bar(3).t..
yarn 과 npm의 차이
·
JavaScript
1.npm(Node Package Manager)npm은 Node.js와 함께 설치되는 기본 패키지 매니저이다. JavaScript 개발 환경에서 의존성을 관리하고 배포할 때 널리 사용된다. npm은 커맨드라인 독와 npm Registry(패키지 저장소)로 구성되어 있으며, JavaScript 패키지를 다운로드하고 관리할 수 있도록 도와준다. npm의 특징세계에서 가장 많은 패키지가 등록된 저장소를 제공한다.별도의 설치 없이 Node.js를 설치하면 함께 제공이 된다.많은 오픈소스 프로젝트와 라이브러리가 npm에 등록되어 있다.의존성 일관성을 유지하고, 동일한 환경에서 동일한 패키지를 설치할 수 있도록 보장한다.명령어 : npm install, npm run, npm init 등이 있다. 2. Yarny..
JavaScript Memoization
·
JavaScript
1. Memoization 메모이제이션이란?기억되어야 할 것이라는 뜻의 라틴어에서 파생된 단어로, 컴퓨터 프로그램이 동일한 계산을 반복적으로 해야할 때, 이전에 계산한 값을 메모리에 저장하여 중복적인 계산을 제거하여 전체적인 실행 속도를 빠르게 해주는 기법으로 동적 계획 법(DP: Dynamic Programming)의 핵심이 되는 기술이다. // 지정한 수가 소수인지 여부를 반환var isPrime2 = function (num) { console.time('소요 시간'); console.log('소수 판별 시작.', num); // TODO: 소수 판별 코드 let prime = num > 1; // 1은 소수가 아님 for (let i = 2; i  소수는 1과 자기 자신만으로 나누어 떨어..
JavaScript reduce(), find()
·
JavaScript
1.Reduce() , Array.prototype.reduce(callback[, initialValue])Reduce 함수란?reduce는 사전적으로 줄이다라는 뜻을 가지고 있다, 사저적 의미 그대로, 리듀스 함수는 배열의 요소를 순차적으로 순회하며 숫자든 배열이든 객체든 하나의 값우로 줄여 return하는 함수이다. 즉, 배열을 기반으로 하나의 값을 도출할 때 사용된다. reduce 함수 기본 문법arr.reduce(callback(accumulator, currentValue, index, array), initialValue);// 배열.reduce(callback(누적값, 현재값, 인덱스, 요소), 초기값); reduce()는 빈 요소를 제외하고 배열 내에 존재하는 각 요소에 대해 callba..
[모던자바스크립트 Deep Dive] 45장. 프로미스
·
JavaScript
1. PromiseES6에서 비동기 처리하기 위한 다른 패턴으로 프로미스를 도입했다. 프로미스는 전통적인 콜백 패턴이 가진 단점을 보완하며 비동기 처리 시점을 명확하게 표현할 수 있다는 장점이 있다. 2. 비동기 처리를 위한 콜백 패턴의 단점const get = (url) => { const xhr = new XMLHttpRequest(); xhr.open("GET", url); xhr.send(); xhr.onload = () => { if (xhr.status === 200) { return JSON.parse(xhr.response); } console.log(`${xhr.status}`); };};const response = get("https://json~~"..
오류확인자
절대 오류를 확인해!