npm 빌드 오류(new Hash / error:0308010)
집에서 쇼룸을 실행해보려고 했더니 다음과같은 오류가 발생했다.
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:67:19)
at Object.createHash (node:crypto:130:10)
at module.exports (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:417:16)
at handleParseError (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:471:10)
at /Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:503:5
at /Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:358:12
at /Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at iterateNormalLoaders (/Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
/Users/user/Programming Documents/WebServer/untitled/node_modules/react-scripts/scripts/start.js:19
throw err;

검색해보니 Node.js 내부에서 openssl (암호화) 관련 소스에서 발생하는 에러 같았다.
환경설정 옵션을 변경해주면 해결이 되는 듯 하다.
Continuous Collision Detection
CCD 에 대한 블로그 글 : https://justdoitproject.tistory.com/30
Subject about Collision Detection Copilot Answers
충돌 검사(Collision Detection)는 그래픽스, 게임, 로봇공학 등 다양한 분야에서 사용되는 기술입니다. 충돌 검사는 물체들이 서로 충돌하는지 여부를 판단하는 기술로, 물체의 모양, 크기, 위치, 속도 등을 고려하여 충돌 여부를 검사합니다. 충돌 검사 기법에는 다음과 같은 것들이 있습니다.
- Bounding Volume Hierarchy(BVH): 물체를 계층적으로 구성하여 충돌 검사를 수행하는 기법입니다. BVH는 물체들을 AABB(Axis-Aligned Bounding Box)와 같은 기하학적 도형으로 둘러싸고, 이를 계층적으로 구성하여 충돌 검사를 수행합니다. BVH는 빠른 검사 속도와 높은 정확도를 가지고 있습니다.
- Sweep and Prune(SAP): 충돌 가능성이 있는 물체들을 축 방향으로 정렬하여 충돌 검사를 수행하는 기법입니다. SAP는 축 방향으로 정렬된 충돌 가능성 리스트를 유지하며, 이를 이용하여 충돌 검사를 수행합니다. SAP는 충돌 검사 속도가 빠르지만, 정확도가 낮습니다.
- GJK 알고리즘: 두 볼록 다각형(Convex Polygon)의 교차 여부를 검사하는 알고리즘입니다. GJK 알고리즘은 두 볼록 다각형의 Minkowski 차(Minkowski Difference)를 구한 후, 이를 이용하여 교차 여부를 검사합니다. GJK 알고리즘은 정확도가 높지만, 계산 비용이 높습니다.
- SAT 알고리즘: 두 다각형의 축 정렬 경계 상자(AABB)가 겹치는지 여부를 검사하는 알고리즘입니다. SAT 알고리즘은 두 다각형의 모든 축에 대해 충돌 여부를 검사하며, 충돌이 발생한 축을 찾아내어 충돌 여부를 판단합니다. SAT 알고리즘은 정확도가 높고, 계산 비용이 낮습니다.
이상으로, 충돌 검사 기법에 대해 간단히 소개해드렸습니다. 더 궁금하신 점이 있으시면 언제든지 물어보세요. 😊
움직이는 물체 A의 속도가 너무 빠른 나머지 deltaTime 이전과 후의 위치가 물체 B를 충돌하지 않고 통과하는 현상을 검사하는 방법은 다양합니다. 이러한 현상이 발생하는 이유는 물체 A가 이동하는 동안 충돌 검사를 수행하는 시간 간격이 너무 크기 때문입니다. 이를 해결하기 위해서는 다음과 같은 방법들이 있습니다.
- Continuous Collision Detection(CCD): 물체 A가 이동하는 동안 충돌 검사를 여러 번 수행하여, 물체 B와 충돌할 가능성이 있는 시간 구간을 찾아내는 기법입니다. CCD는 물체 A의 이동 경로를 여러 개의 작은 구간으로 나누어, 각 구간에서 충돌 검사를 수행합니다. 이를 통해 물체 A가 물체 B와 충돌할 가능성이 있는 시간 구간을 찾아내고, 이를 이용하여 충돌 검사를 수행합니다. CCD는 물체 A의 속도가 빠른 경우에도 충돌 검사를 정확하게 수행할 수 있습니다.
- Swept Sphere: 물체 A를 구 형태의 더미 물체로 대체하여 충돌 검사를 수행하는 기법입니다. 물체 A가 이동하는 동안 더미 물체도 함께 이동하며, 물체 B와 충돌할 가능성이 있는 시간 구간을 찾아냅니다. 이를 이용하여 충돌 검사를 수행합니다. Swept Sphere는 CCD보다 계산 비용이 적지만, 정확도가 낮을 수 있습니다.
- Conservative Advancement: 물체 A가 이동하는 동안 충돌 검사를 수행하여, 물체 B와 충돌할 가능성이 있는 시간 구간을 찾아내는 기법입니다. Conservative Advancement는 물체 A의 이동 경로를 여러 개의 작은 구간으로 나누어, 각 구간에서 충돌 검사를 수행합니다. 이를 통해 물체 A가 물체 B와 충돌할 가능성이 있는 시간 구간을 찾아내고, 이를 이용하여 충돌 검사를 수행합니다. Conservative Advancement는 CCD와 비슷한 원리로 동작하지만, 계산 비용이 적습니다.
이상으로, 움직이는 물체 A의 속도가 너무 빠른 나머지 deltaTime 이전과 후의 위치가 물체 B를 충돌하지 않고 통과하는 현상을 검사하는 방법에 대해 간단히 소개해드렸습니다. 더 궁금하신 점이 있으시면 언제든지 물어보세요. 😊
Immersive Light Field Video with a Layered Mesh Representation
Javascript 에서 iframe 내부인지 판단
function inIframe () {
try {
return window.self !== window.top;
} catch (e) {
return true;
}
}
다음 함수를 호출하면 현재 실행중인 javascript 코드 위치의 문서 위치가 iframe 내부인지 아닌지 판단 가능하다.
[Github] Restore deleted branch
회사 여러 프로젝트 중 내가 전담하고 있는 webgl프로젝트를 submodule로 물려서 사용하는 프로젝트에서 branch를 변경/삭제 하고 나서 jenkins 빌드를 걸었는데 해당 브랜치를 찾을수 없다는 에러 메세지가 나오면서 빌드가 되지 않는 상황이 발생했다.
원래 이런 상황에서는 jenkins 환경 셋팅을 변경하여 submodule 의 타겟 브랜치를 변경하여 진행하면 되지만 담당자가 휴가중인 관계로 부득이하게 리모트 서버에 브랜치를 되돌려야하는 상황이 발생하여 삭제한 것을 되돌리는 방법을 찾아보았다.
아래는 브랜치를 되살리는 방법을 적어둔 블로그 링크이다.
[Github] REMOTE HOST IDENTIFICATION HAS CHANGED!
model-viewer의 github submodule (크로노스 그룹 gltf 모델 패키지) 업데이트 시도 할때 제목의 오류가 발생하면서 작업이 취소 되는 상황이 발생하여 찾아보다 해결방법을 발견하여 게시함
요약 ) github에서 RSA SSH키를 업데이트 하였으니 오류가 난다면 아래 방법으로 known hosts 파일을 업데이트 할것
다른 이런저런 정보는 발견하면 추가함
Revolutionizing AI: Introducing Emu Video & Emu Edit for Next-Level Video Generation and Image Editing
이미지 포맷 판별 방법
Javascript 에서 url 또는 path 로 표현된 파일을 인자로 받았을 때 이미지인지 아닌지 확인
// use Regexp
function isImage( fileName ) {
const regexp = /(\.jpg|\.jpeg|\.png)$/i;
return regexp.text( fileName );
}
console.log( isImage( 'test.png' ) ); // true
console.log( isImage( 'test.txt' ) ); // false
Module not found: Error: Can’t resolve ‘fs’
three.js 모듈중 ttf 로더를 사용 했을 경우 nuxt build error 가 발생하였다.
opentype.module.js 내부에서 nodejs 의 ‘fs’ 라는 모듈을 사용하는데 nuxt 에서 이 키워드가 충돌 되나 보다. nuxt config 에서 해당 키워드를 지워주면 에러가 사라진다.