JavaScript
Javascript Promise로 배우는 Kotlin Coroutine
Javascript Promise로 배우는 Kotlin Coroutine
2022.10.09Coroutine 이란? 처음 코루틴을 접했을 때 코틀린의 '코'를 따서 'Ko'routine 인줄 알았지만, 사실 코루틴의 Co는 Concurrency라는 의미를 가지고있습니다. 즉, 동시성 프로그래밍 개념을 코틀린에 도입한 것이 코루틴 이라고 합니다. 코루틴은 javascript Promise와 조금 다른 성질을 가지고 있습니다. 코루틴은 스레드 위에서 실행되는데 여러가지 코루틴 1,2,3이 존재한다고 할 때 코루틴1을 실행하던 중 코루틴2가 실행되어도 실행중인 스레드를 정지하면서 컨텍스트 스위칭 개념으로 다른 스레드로 전환하는 것이 아니라 기존 스레드를 유지하며 기존 스레드에서 코루틴2를 실행하게 됩니다. 이후 코루틴1을 다시 실행할 때 저장해둔 코루틴1 상태를 불러와 다시 스레드에서 코루틴1을 실..
[javascript] 일반 함수와 화살표 함수의 차이 (feat. ES6)
[javascript] 일반 함수와 화살표 함수의 차이 (feat. ES6)
2021.09.05항상 일반 함수와 화살표 함수의 정확한 차이점을 지나쳐 왔습니다. 단순하게 화살표 함수(Arrow function)는 ES6에 새로 나온 문법인 것으로만 인식한 상태로 개발했지만 정확히 알고 적절하게 활용한다면 더욱 깔끔하고 디버깅이 편한 코드를 작성할 수 있을 것 같아서 따로 정리하게 되었습니다. Q . function 과 () => {} (화살표 함수)의 차이점이 무엇일까요? A : "바인딩되는 this가 다릅니다." 틀린 답변은 아니지만, 정확히 어떻게 this가 다를까요? 말 뜻대로 생각했을 때, 아래 코드처럼 생각할지도 모르겠습니다. // 서로 다른 값이 출력될 것? function normalFunc() { console.log(this); } const arrowFunc = () => { c..
[javascript] Primitive Type(원시 타입) vs Reference Type(참조 타입)
[javascript] Primitive Type(원시 타입) vs Reference Type(참조 타입)
2021.08.28자바스크립트의 자료형은 크게 원시 타입과 참조 타입으로 나뉩니다. 원시 타입 (Primitive Type) 원시 타입은 모두 하나의 값을 담고 있습니다. - 문자(string) - 숫자(number) - bigint - 불리언(boolean) - null - undefined - 심볼(symbol) => ES6부터 추가된 타입 총 일곱 가지 입니다. 원시 자료형은 값 자체에 대한 변경이 불가능(immutable) 하지만, 변수에 데이터를 재할당할 수 있습니다. 하나의 메모리에 하나의 데이터를 보관합니다. 변수를 재할당 해도 변수의 항당 값에 영향을 주지 않습니다. let myString = 'goodNews'; myString = 'badNews'; // 재할당 가능 myString[0] = 'B'; /..
[javascript] 콜스택/메모리힙 구조, 데이터 저장/참조 원리
[javascript] 콜스택/메모리힙 구조, 데이터 저장/참조 원리
2021.08.27콜 스택, 메모리 힙이란? 자바스크립트 엔진은 Memory Heap 과 Call Stack 으로 구성되어 있습니다. 가장 유명한 것이 구글의 V8 Engine입니다. 자바스크립트는 단일 스레드 (sigle thread) 프로그래밍 언어인데, 이 의미는 Call Stack이 하나 라는 이야기입니다. 즉 멀티가 되지 않고, 하나씩 하나씩 처리한다는 의미입니다. 콜 스택(Call Stack) 원시 타입(숫자 등) 데이터가 저장된다. 실행 콘텍스트(Execution Context)를 통해 1) 변수 식별자(이름) 저장, 2) 스코프 체인 및 this 관리, 3) 코드 실행 순서 관리 등을 수행. *실행 컨텍스트의 상세 구조 및 원리는 이 글의 범위를 넘어가므로 다루지 않습니다. 메모리 힙(Memory Heap)..