본문 바로가기

전체 글129

[Javascript] 비동기 처리(2) - Promise 객체 콜백 함수를 연속적으로 호출해야 되는 환경에서 구현 복잡도를 낮추고 가독성을 높일 수 있는 방법이 있다고 한다. 바로 객체를 이용한 방법인데, 약속된 객체를 사용함으로써 해당 함수가 비동기 처리를 하고 있음을 나타내고 분리된 결과 값을 만들어 낼 수 있다. 이때 결과값은 비동기 처리가 성공/실패 했을 때의 값으로 나뉘며 Promise 객체는 자신을 생성한 주체 함수로 전달된 인자를 그대로 사용할 수 있다. 구조적인 콜백 함수의 특성을 객체 지향적으로 분리한 방법인듯 보이는데, Promise라는 객체를 반환함으로써 이를 오브젝트로 저장할 수 있게끔 만든 것이다. 일단 예시를 보자. 지난 글과 비교해보면 더 이해하기 쉬울 것이다. function A(a,b){ return new Promise((suc, f.. 2023. 3. 18.
[Javascript] 비동기 처리(1) 자바스크립트에서 비동기 처리를 할 땐 콜백 함수와 비동기 처리 함수를 이용한다. 자바스크립트 엔진 특성상 멀티 스레드는 불가하다고 하는데 이는 좀 더 연구해 봐야 될 것 같다. 일단 자바스크립트의 엔진 구조를 간단하게 알아보자. 크게 두 가지로 나뉘는데 하나는 데이터가 저장되는 메모리 힙이며 다른 하나는 코드의 호출 순서를 저장하는 콜 스택이 있다. 메모리 힙은 비동기 처리에서 크게 중요한 개념이 아니므로 따로 알아보도록 하고 콜 스택에 대해 얘기해 보자. 콜 스택이란 현재 실행되어야 하는 서브루틴에 대한 정보를 담고 있는 스택 구조를 말하는데, 쉽게 말해 실행 순서를 저장하는 공간 정도라 볼 수 있다. 이 공간에 배치되는 첫 번째 정보는 프로그램의 시작을 알리는 메인 컨텍스트이며, 이 메인 컨텍스트가 .. 2023. 3. 17.
[Javascript] 내장 함수 객체 단위인 JS에서 배열의 내장 함수를 이용하면 보다 쉽게 요소에 접근하거나 첨자를 찾아낼 수 있다. 내장함수로는 filter, find, findIndex, slice, map, foreach, concat, sort, join 등이 있는데 귀찮은 연산을 알아서 해준다. 일단 위에 적어둔 함수들의 사용 예시를 만들어보자. forEach // forEach const ar = [1,2,3,4]; ar.forEach((x)=>{console.log(x*2)}); ================================== 2 4 6 8 forEach는 말 그대로 요소 각각에 적용해야 될 연산이 있을 때 사용된다. 원본은 건들지 않으며 단순히 각 요소를 인자로 받아 전달된 값만을 참조한다. 아마 파워쉘과.. 2023. 3. 16.
[Javascript] 객체와 프로퍼티 JS의 기초적인 객체 생성 방식은 두 가지가 있다. let common = new object(); let common = { key: "value", }; 보통 아래 구문을 더 많이 사용하며 이렇게 생성된 객체의 값을 프로퍼티라 부른다. key와 value를 보니 파이썬의 딕셔너리가 생각나기도 하는데, 이런 프로퍼티(Property)는 속성이라는 의미보단 실제 데이터(또는 메모리) 정도로 이해하는 것이 옳은 것 같다 . 간혹 Attribute와 Property가 헷갈릴 때가 있다면 아래 예시를 봐두면 좋을 것이다. Color: "#fffffff"; 색상을 지정할 수 있는 프로그램에서 아마 저러한 옵션을 본 적이 있을 것이다. 위에서 Color는 Attribute이며 "#fffffff"는 Property.. 2023. 3. 15.
[Javascript] 콜백함수 JS에서 지원되는 라이브러리는 대부분 콜백함수를 사용한다. 이 콜백함수는 함수 표현식을 응용한 것인데 간단한 예를 만들어보자. function CALLBACK_choice(flag, callbackFunc1, callbackFunc2){ if(flag = "fuck!"){ callbackFunc1(); }else{ callbackFunc2(); } } function angry(){ console.log("ACTION :: MAD"); } function sad(){ console.log("ACTION :: CRY"); } function happy(){ console.log("ACTION :: WHISTLE"); } function Funny(){ console.log("ACTION :: LAUGH").. 2023. 3. 15.
[Javascript] 호이스팅 호이스팅은 자바스크립트의 특징인데 간단하게 얘기하면 함수 선언식으로 만들어진 함수들을 프로그램 실행 전에 코드의 최상단으로 끌어올려 해석하는 것을 말한다. 예를 들어 다음과 같이 작성할 수 있다는 뜻이다. console.log(displayText()); function displayText(){ return "Hello World"; } 선두에선 어떠한 함수를 호출하여 그 결과값을 콘솔에 출력하고 있다. 호출되는 함수는 출력 함수 뒤에 위치해 있는데 이 구문이 실행되려면 상식적으로 출력 함수 앞에 위치해 있어야 할 것이다. 그런데, 자바스크립트에선 위와 같이 함수 선언식(정규)으로 만든 함수는 소스 코드 내부에서 어느곳에 위치하건 최상단으로 끌어올려 먼저 해석한 후 프로그램을 순차적으로 실행한다는 특징.. 2023. 3. 15.
반응형