Hidden class와 inline caching은 사소해보일 수도 있지만 javascript의 최적의 성능을 위해서 알아두면 좋은 개념인 것 같다. javacript는 런타임에서 오브젝트의 속성을 추가/변경할 수 있는 동적인 언어이다. V8엔진은 hidden class를 통해 색인 등 속성 관리를 최적화하고 있다. 예를 들어 아래와 같은 코드가 있다고 ...
Tag: 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...
웹 개발시 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의 대표적인 유스케이스가 있다. 다이얼...
ㅎㅎㅎ 예전에 네이버 블로그에서 작성했던 글이었는데, 최근 어떤 분이 댓글을 달아두셔서 뿌듯했던 포스트라 이쪽으로 옮겨온다. ㅎㅎㅎ JQuery 프로젝트 상에서 위와 같은 에러가 나올때에는 .load() function이 있는지 찾아보고, on('load',function(){});으로 바꾸어주면 됨. .load, .unload, .error가 deprec...
mongoose는 timestamp라는 옵션을 제공한다. plugin은 스키마별로도 적용할 수 있지만, 전역 플러그인(global plugin)으로 모든 schema에 대해서도 적용이 가능하다. 이제부터 delete를 기록하기 위해서는 delete만을 사용한다. remove는 document를 완전히 삭제할 때 사용한다.
MySQL과 같은 전통적인 SQL 데이터베이스가 여전히 많이 쓰이고 있고, 나도 꽤 익숙한지라.. mongoDB는 자주 접할 기회기 없었는데, javascript와의 찰떡 궁합이라는 이야기에 욕심내서 공부겸.. 사용해보려고 한다. mongoose는 mongoDB의 ODM 라이브러리이다. ODM은 Object-Document Mapper로, ORM(Objec...
아주 오래전 웹 개발에서 Chrome Insepctor 같은 강력한 도구가 없던 시절 자바스크립트 디버깅엔 console.log가 필수였다. 그 때의 습관 탓일까, 디버깅 하면서 간단한 값 확인은 중단점을 걸고 스텝을 넘겨가며 로직을 확인하기보다 로그를 찍어 확인하는 것이 훨씬 빠르게 느껴져서 여전히 많이 사용하고 있다. console.log()는 사실 유...
React Hook Form은 14.7k에 빛나는 리액트용 폼 라이브러리이다. 폼 생성과 검증 등 개발 과정을 간소화할 수 있고, 폼 생성 과정과 코드를 좀 더 규격화 할 수 있다는 장점이 있다. 다른 폼 라이브러리에 비해서 React Hooks 형태로 사용할 수 있다는 점과 빠르다는 장점도 있다. 또한, 문서가 굉장히 잘 구성되어있다.ㅎㅎ (완벽하지는 않...