• MongoDB Index 설계 전략

    Index는 왜 중요한가 인터넷에는 셀 수 없이 많은 정보들이 있습니다. 2020년이면 인터넷의 정보량이 40제타바이트에 이를 것이라고 합니다. 1 제타바이트는 1021, 그러니까 1,000,000,000,000,000,000,000 byte이니 상상도 할 수 없을 정도의 양입니다. 하지만, 우리가 원하는 정보를 찾을 때는 어떻습니까? 검색어 몇 번 입력하면 꽤 높은 확률로 필요한 정보를 얻을 수 있습니다. 무엇이 이를...


  • JavaScript object의 deep merge 방법 알아보기

    Shallow Merge Object.assign JavaScript의 두 오브젝트를 병합merge하는 방법으로 Object.assign을 가장 먼저 떠올릴 수 있습니다. 이 함수는 오브젝트들을 병합 시켜주지만, DEEP merge는 아니라는 점을 유의해야 합니다. 어떤 차이가 있는지 알아보겠습니다. const A1 = { B: { C: 'A1.B.C' } } const A2 = { B: { D: 'A2.B.D' } } Object.assign(A1,...


  • [번역] Node.js 프로덕션 환경을 위한 Best Practice 모음

    원문: Checklist: Node.JS production best practices (August 2018) - Yoni Goldberg Node.js 애플리케이션을 프로덕션 환경에서 서비스하기 위한 모범 사례(Best Practice) 컬렉션에 오신 것을 환영합니다. 이 글은 최고의 블로그들로부터 얻은 훌륭한 지식들을 요악, 정리하는 것이 목표입니다. 놓치지 마세요: 각 모범 사례들에는 “GIST Popup” 아이콘이 있습니다. 클릭하면 추가 설명과 인용구, 코드 예제들을...


  • Mongoose가 'undefined'를 처리하는 방식에 대해

    MongoDB 컬렉션에 문서를 업데이트하는 코드를 넣고 테스트를 하다가 업데이트하는 필드 중 하나에 뜬금없이 null값이 들어가 있는 이상한 현상을 발견했습니다. 테스트 코드를 만들어 확인해보니, 문서의 특정 필드가 undefined인채로 FindOneAndUpdate 함수가 호출되면 그 필드는 null로 변환되어 저장되고 있습니다. 지금까지 undefined 값을 가진 필드는 MongoDB에 입력되기 전에 무시되는 걸로 알고 있었는데 말이죠. 좀...


  • MongoDB Text Index로 발음구별기호가 있는 문자 검색하기

    해외를 대상으로 하는 서비스를 만들 때 언어는 가끔 골치 아픈 문제가 될 수 있습니다. 특히 라틴어 계열이지만 영어와는 다른 알파벳을 가진 언어들이 그렇습니다. 그리고 의외로 아시아에는 ‘쯔꾸옥응으‘라는 알파벳 비슷하게 생긴 문자를 사용하는 베트남이 있습니다. 먼저 베트남어가 어떻게 생겼는지 한번 살펴봅시다. 베트남어는 모양도 독특하지만 발음도 매우 독특합니다. 번역> Tiếng Việt có...