• 3년간의 리모트 개발에 대한 소회

    리모트 근무를 시작한지 햇수로 만 3년이 되어갑니다. 지금까지 한번도 이 주제를 공개적으로 이야기해본 적이 없었는데, 블로그의 about 섹션을 작성하다 언급된 김에 생각들을 조금 더 적어볼까 합니다. “리모트 근무는 복지가 아니다. 하나의 업무 형태일 뿐이다.” 무척이나 신뢰하는 동료이자, 회사의 CTO 였던 분께서 인터뷰를 할 때 자주 했던 말씀입니다. 일주일에 하루 정도의...


  • MongoDB와 Mongoose에서 update를 사용 할 때 주의할 점

    처음부터 Mongoose를 ODM(Object Document Mapper)으로 썼던 탓에, MongoDB 문법을 Mongoose로 배웠습니다. 기본적인 쿼리 인터페이스는 이 둘 간에 큰 차이가 없기 때문에 이후 MongoDB Driver API를 사용해 코드를 작성 할 때도 별다른 불편함을 느끼지 못했습니다. 오히려 오리지널의 API가 가진 불편함을 해소시켜주는 Mongoose의 친절한 부분에 고마워하기도 했지요. 별 생각없이 update 쿼리를 작성했다가...


  • VS Code로 node.js 애플리케이션을 디버깅 할 때의 소소한 팁

    VS Code로 node.js 애플리케이션을 디버깅 할 때, 브레이크포인트를 잡아 라인 단위로 진행을 시키다보면 async 함수를 지나갈 때 어김없이 node의 emitHookFactory 함수로 프로세스가 이동됩니다. 비동기 처리를 하다보니 어쩔 수 없는 일이지만, 이게 디버깅을 심각하게 방해하죠. 바로 요놈. function emitHookFactory(symbol, name) { // Called from native. The asyncId stack handling is taken...


  • 예제로 배워보는 상황 별 MongoDB 위치 기반 쿼리

    몸에 지닌 채 돌아다닐 수 있는 모바일 기기의 장점 덕분에, 요즘의 앱들은 자신의 위치를 기반으로 주변의 장소, 혹은 업소등을 추천하는 기능을 제공하는 경우가 많습니다. 이 글은 MongoDB를 이용해 현재 나의 위치에서 가까운 업소를 찾거나, 해당 업소와의 거리를 구하는 방법을 소개합니다. 가급적이면 서비스에서 활용 가능한 형태의 요구 사항을 가정하고, 이를 구하기...


  • Refresh Token과 Sliding Sessions를 활용한 JWT의 보안 전략

    사용자의 상태를 유지하지 않는 stateless한 서비스를 운영할 때는 보안 이슈가 문제가 됩니다. 이를 해결하기 위한 보안 솔루션 중 하나가 JSON Web Token입니다. 이를 이용해서 보안 정책을 세우는 경우 토큰 관리에 여러 전략을 이용 할 수 있습니다. JWT가 제공하는 기본적인 AccessToken 외에 RefreshToken을 도입한다거나 Sliding Sessions 전략을 활용할 수 있는데 이에...