Hidden class와 inline caching은 사소해보일 수도 있지만 javascript의 최적의 성능을 위해서 알아두면 좋은 개념인 것 같다. javacript는 런타임에서 오브젝트의 속성을 추가/변경할 수 있는 동적인 언어이다. V8엔진은 hidden class를 통해 색인 등 속성 관리를 최적화하고 있다. 예를 들어 아래와 같은 코드가 있다고 ...
Category: javascript
에러 “error fsevents@2.0.7: The platform ”linux“ is incompatible with this module.”, ”error Found incompatible module.”를 만났을 때javascript
cra 프로젝트를 docker를 이용해 빌드하려고 node 컨테이너에서 yarn을 실행하도록 했는데 다음과 같은 에러를 마주하게 된다. 아무래도 에러는 특정 모듈이 linux 호환이 안된다는 것 같다? 이런 일이... node:latest 이미지로도 동일했다. 이 문제는 fsevents 모듈의 문제로, fsevents 모듈이 MacOS를 위한 것이고, li...
node 프로젝트를 프로덕션 환경에 pm2로 올려보도록 한다. node docker image를 이용해서 docker container에서 pm2 start로 시작하도록 올려본다. 하지만 갑자기 시작하자마자 docker container가 종료된다. 분명 정확하게 프로세스기 실행되었는데.. 어찌된 일일까. 어떻게 해결할까? 결론부터 말하자면 pm2가 아니라...
웹 개발시 yarn이나 npm을 패키지 매니저로 사용한다. yarn과 npm은 거의 동일하다. npm이 더 기본값이라고 생각할 수 있다. 나는 yarn을 선호한다. 내가 처음 yarn을 접하던 시기에 yarn이 npm보다 미세하게 더 빨랐고, 이전에는 패키지를 설치할 때에 npm install --save라고 --save 옵션을 쓰지 않으면 추가한 패키지가...
Portals - React > Portal은 부모 컴포넌트의 DOM 계층 구조 바깥에 있는 DOM 노드로 자식을 렌더링하는 최고의 방법을 제공합니다. Portal은 기존 React Component가 담겨있는 DOM Tree 밖으로 Component를 렌더링을 할 때에 사용할 수 있는 기법이다. React.Portal의 대표적인 유스케이스가 있다. 다이얼...
아주 오래전 웹 개발에서 Chrome Insepctor 같은 강력한 도구가 없던 시절 자바스크립트 디버깅엔 console.log가 필수였다. 그 때의 습관 탓일까, 디버깅 하면서 간단한 값 확인은 중단점을 걸고 스텝을 넘겨가며 로직을 확인하기보다 로그를 찍어 확인하는 것이 훨씬 빠르게 느껴져서 여전히 많이 사용하고 있다. console.log()는 사실 유...