async/await async/await가 생기기 전에는 Promise를 활용하여 콜백지옥을 해결하였다. Promise가 콜백지옥보다는 깔끔하나, 여전히 지저분했다. 이를 해결하기 위해 async/await가 등장했다. async/await를 활용하여 비동기 함수를 동기 함수처럼 사용하기 시작했다. 제약조건 비동기적 함수(Promise를 반환하는 함수) 앞에 await를 붙여야 한다. → 해당 함수가 끝나길 기다린다. await가 붙어있는 비동기적 함수는 다른 함수 안에서 실행되어야 한다. 2번의 함수는 앞에 async가 붙어있어야 한다. → await를 사용할 수 있게 된다. 해당 함수는 Promise를 리턴하게 된다. 예를 들어, 위 코드의 run이라는 함수는 Promise를 반환한다. 따라서, r..
동기/비동기 Promise에 대해 공부하기 전, 동기와 비동기에 대해 먼저 알아보자. Synchronous는 동기라고 하고, Asynchronous는 비동기라고 부른다. 동기는 다양한 명령을 실행시켰을 때, 순차적으로 실행되는 것이다. 반면, 비동기는 다양한 명령을 실행을 시켰을 때, 본인의 시간표에 따라 동시에 각자 실행되는 것이다. 동기적인 방법은 순서대로 실행되기 때문에 어떻게 실행되는지 파악하기 쉬운 반면, 비동기적인 방법은 동시에 여러가지 일을 하기 때문에 혼란스러우나, 훨씬 더 빠르게 실행시킬 수 있다. 그렇다면, 비동기적인 실행을 하는 경우는 언제일까? 명령이 언제 끝날지 예측하기 어려운 경우 주가 되는 작업(메인 작업)이 아닐 경우 대표적인 예로, 서버 통신을 들 수 있다. 서버 통신은 언..
Callback 콜백 함수는 다른 함수의 인자로 전달된 함수를 의미한다. 자바스크립트가 함수를 일급 객체로서 가지는 특징 중 하나이다. 💡 일급 시민(객체)이란? ❗️ 변수의 값이 될 수 있는 것들. 예를 들어, 숫자 또는 함수 등은 변수의 값이 될 수 있으므로 일급 시민이다. 반면, 조건문처럼 변수의 값이 될 수 없는 값들은 이급 시민이다. 함수가 일급 시민이 되기 위한 또 다른 조건이 있다. 위 처럼 함수가 다른 함수의 리턴 값이 될 수 있다면, 해당 언어는 함수를 일급 시민으로 대우하고 있는 것이다.(함수가 다른 함수의 입력값으로 사용되는 것 또한 마찬가지이다.) 그리고, 위 사진의 val 함수처럼 다른 함수의 입력값으로 전달돼서 다른 함수에 의해 나중에 호출되는 함수를 콜백 함수(Callback ..
ECMAScript는 무엇일까? 사람들이 자바스크립트를 말할 때, ES5, ES6 라고 말을 하는 경우가 있다. ES는 ECMAScript의 약어이다. 그러면 ECMAScript는 무엇일까. 💡 ECMAScript의 탄생 자바스크립트는 1990년대 Netscape 회사의 Brendan Eich 라는 사람에 의해 개발되었다. 자바스크립트가 잘 되자, MS에서 Jscript라는 언어를 개발해 IE에 탑재하였는데, 이 두 스크립트가 너무 제각각이라, 표준이 필요하게 되었다. 표준을 위해 자바스크립트를 ECMA라는 비영리 표준 기관에 제출하였고, 그렇게 제작된 표준이 ECMAScript다. ECMAScript의 탄생 배경은 위와 같다. 따라서, 자바스크립트는 프로그래밍 언어이고, ECMAScript(ES)는 자..
OOP 객체 지향 프로그래밍은 OOP(Object-Oriented Programming)라고도 불리며 프로그래밍 패러다임 중 하나이다. 자바스크립트는 객체 지향 언어가 아니지만, 객체 지향 언어 방식을 지원한다. 자바스크립트로 객체 지향 프로그래밍을 하는 방법에 대해 알아보자. 비디오 게임을 만들 때, 우리는 Player(Object)가 필요하다. 그리고 각각의 Player는 서로 다른 데이터를 가질 것이다. 만약, Player가 여러 명일 경우에는 다음과 같이 코드가 작성될 것이다. const playerOne = { name: "Geonhee", skill: "punch", health: 90, }; const playerTwo = { name: "Nicolas", skill: "kick", heal..