NeDB, alternative SQLite for node.js

  보통 가벼운 데이터베이스가 필요할 때에는 SQLite를 주로 써왔다. 안드로이드 개발할 때 써본 것을 시작으로 SQL을 아예 안 써본 수준은 아니니까 약간 번거롭더라도 씨-퀄-라이트를 사용했었는데, 최근에 (일렉트론으로 프로젝트를 진행하면서) Node.js로 대부분의 코드를 작성하다보니 MongoDB가 그리워졌다. 그냥 그리워만 하고 있던 나는, electron-vue의 공식 문서를 읽다가 다음과 같은  특징을 갖는 NeDB를 발견했다. 파일 하나로 저장됨. 내가 원하던 경량 […]

메인보드 구매 + 하소연

별 일은 아니다. 메인보드를 구매했다. 이런 저런 이유로 지금 약간 만사가 귀찮아진 느낌이라 블로그에 하소연 해본다. 0. 잘 쓰던 데스크탑이 작년부터 느려졌다. 잘 켜지던 데스크탑이 이따금 켜지지 않았다. 확인해보니 램이 꽂혀있는 것은 풀뱅 16기가였지만, 작업관리자에서 인식되는 것은 8기가뿐이었다. 더 놀라운 것은 바이오스에 진입하면 2개의 뱅크가 없는 것으로 나오고, 시스템에서 사용 가능한 용량도 8기가로 표기되지만, CPU-Z를 […]

Private Method in JavaScript Class

옛날 JS에서는 프로토타입을 기반으로한 객체지향을 추구해왔다면, 요즘 JS는 Class를 지원하기 시작했다. 하지만, 그 요-즘 JS에서 private 이라는 키워드가 존재하지 않는다. 이런 상황에서 private method를 만드려면 어떤 식으로 구현해야할까? 내가 아는 것은 두 가지. 하나는 클래스 외부에서 쓸 수는 있지만, 쓰지 말아주세요! 라는 의미를 가진 naming convention을 따르는 것. 나머지 하나는 클래스 외부에서 절대 private 메소드를 […]

Polite Crawling with await & async

전생에 크롤링을 못하고 죽었나 싶을 정도로 또 크롤링을 돌리고 있다. 초기에는 특정 서비스에서 사진 / 동영상을 크롤링하는 코드를 Node.js CLI 로 짰다. 이 코드는 아주 잘 작동했지만, 한 가지 치명적인 단점이 있었다. 그건 바로 sync-request를 쓰는 것도 모자라, C++ binding을 사용해 Node의 모든 이벤트 루핑을 막아버리는 sleep이라는 패키지까지 가져다 썼다는 것. sleep을 사용한 이유는 너무 […]

Vis.js Network Module

0. 최근 연구실에서 데이터 시각화 쪽을 담당했다. Vis.js는 Network, Timeline, Graph2d, Graph3d 등의 시각화 모듈을 지원하며, 이 시각화 모듈이 내부적으로 사용하는 자료구조가 DataSet이라는 모듈인 듯 하다. 이번 포스팅에서는 내가 담당했던 Network Module 부분만 간단하게 문서화하고자 한다. 다른 부분은 본인도 다뤄보지 않아서 잘 모르니 답변을 기대하지 마시길! 1. vis.Network를 초기화하는 방법에 대해서 알아보자. import vis from […]