AMD(Asynchronous Module Definition) 방식으로 동적로딩되는 모듈의 경우, 그러니까 Javascript에서 define() 혹은 require()로 외부 모듈을 끌어다쓰는 경우, vscode에서 자동완성이나 기타 코드정보가 나타나지 않는 문제가 있는데, 이를 해결하려면 require를 define안에 선언하고 외부모듈에서는 module.export를 명시해줘야 한다. 하지만 이렇게하려면 구버전 라이브러리 같은 소스들은 각 코드를 쫒아 직접 하나하나 수정해줘야해서 난감해진다.이를 보완할 간단한 방안이 하나 있다. /** * @typedef {import("manager").PageManager} pagemanager * @typedef {import("eventmanager"..
아래 에러로 GLIBC_2.18에 대한 고민에 빠졌다. 알고보니 문제의 발원지가 node에서의 canvas문제였다. error: /lib64/libc.so.6: version GLIBC_2.18 not found (required by ...(project_dir).../node_modules/_canvas@2.8.0@canvas/build/Release/librsvg-2.so.2) RPM resource : CentOS 7.x에서는 glibc 2.18 이상을 지원하지 않음. 이 에러에 대해 Troubleshoot가 존재한다. gcc 버전이나 운영체제 관계없이 canvas의 GLIBC 지원 문제라 한다. CentOS 7에서 위 에러가 보인다면, canvas의 버전을 2.7.0 이하로 세팅하면 해결된다. ..
Nullish란. 널 병합 연산자(Nullish coalescing operator, ??)는 왼쪽 피연산자가 null 또는 undefined일 때 오른쪽 피연산자를 반환하고, 그렇지 않으면 왼쪽 피연산자를 반환하는 논리 연산자이다. ??의 동작을 동일하게 문법적으로 표현해보면 다음과 같다. /* 아래 두 구문은 동일한 의미를 지닌다. */ x = a ?? b; x = (a !== null && a !== undefined) ? a : b; 이는 ||와 매우 유사한 연산결과를 나타낸다. ||의 경우 boolean 논리 연산자 때문에, 왼쪽 피연산자는 boolean으로 강제로 변환되었고 falsy 한 값(0, '', NaN, null, undefined)은 반환되지 않는다. 만약 0, '' or NaN을 ..