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

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


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

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


  • Google, Facebook 등 대형 서비스들의 REST API 에러 처리 비교

    대형 서비스 제공자들의 에러 처리 방식을 분석하면서, 각 서비스들의 에러 형식, 특징 등을 정리해보았습니다. TL;DR 분석한 서비스 목록 Google, Twitter, Spotify, AWS S3, Facebook, Github, Naver 복수 에러 지원 (3/7) Google, Twitter, Github 오류 발생 위치 전달 (4/7) Google, Twitter, AWS S3, Github HTTP 상태 코드 미사용 (1/7) Facebook 전통적인...


  • [번역] Mongoose 모델과 단위 테스트: 최종 가이드

    원문: Mongoose models and unit tests: The definitive guide - Jani Hartikainen Mongoose는 node.js로 보다 쉽게 MongoDB를 사용하게 해주는 훌륭한 도구입니다. 모델 관련 로직을 코드 사방에 뿌려놓는 대신, Mongoose의 모델을 이용하면 설계가 매우 쉬워집니다. 데이터를 쿼리하는 것도 쉽고 빠르며, 사용자가 직접 정의한 쿼리 로직도 필요하다면 모델에 숨겨 둘 수 있습니다....


  • 좋은 git commit 메시지를 위한 영어 사전

    골치아픈 이름 짓기 프로그래머들에게 가장 어려운 것 하나만 꼽아보라고 하면 절반이 ‘naming’을 선택한다고 합니니다. 프로그램을 작성하면서 파일명, 클래스명, 변수명, 함수명 등 수도 없이 많은 이름들을 지어내야 합니다. 거의 작명소 수준입니다. 그런 이름 짓기보다 더 어려운 것이 있습니다. 바로 커밋 메시지 작성입니다. 한글로 커밋 메시지를 작성하는 팀이라면 별 걱정이 없겠으나, 영문으로...