장고에서 중복 데이터를 삭제하는 방법 distinct() : 고유한 쿼리셋 반환 values_list(field1, field2, ...) : 필드만 포함하는 쿼리셋 반환 filter(field1=value1, field2=value2, ...) # create_date가 고유한 queryset 얻기 dates = Price.obje...
Grafana, Kibana, DIY
데이터 시각화를 위해 자료를 찾다보면 꼭 등장하는 것이 두 프레임워크 Kibana(이하 키바나)와 Grafana(이하 그라파나)다. 다른 분야의 개발자들과 얘기하다보면 가끔 등장하는 놈들이라 낯설지 않았는데, 드디어 내 앞에 나타났다. 쓸일 없을 때는 몇 번 읽어봐도 잘 몰랐는데 써야할 일이 생기니까 알게되더라. 어떤놈을 쓰는 것이 내 시각화 작업(...
D3.js data(), enter(), exit() 이해
D3.js를 처음 쓰면 정말 쉽게 데이터를 다룰 수 있다는 것에 놀라고, 조금 더 쓰다보면 생각대로 쓰기 너무 어렵다는 것에 놀란다. 잘 쓰다가 움직이는 차트 만들려니 이렇게 어려운 함수였나 싶어 시행착오를 기록한다. 이 포스팅을 찾아 들어온 사람은 d3.js에 대한 기본적인 이해가 있을 것이라 가정한다. 용어 정의 엘리먼트: DOM을 구성...
ES6 점 vs 괄호 표기법(Bracket vs Dot notation)
자바스크립트는 객체의 속성을 추가하는 방법으로 두 가지 점 표기법(dot)과 괄호 표기법(bracket) 두 가지가 있다. 두 방법 다 다른 언어에서 접해봤기 때문에 적당히 이해하면서 쓰고 있다가, 문득 차이가 궁금해 알아보고 글을 남긴다. V8 엔진을 기준으로 합니다 결론. 두 표기법의 차이는 점 표기법은 점 뒤에 오는 변수명(속성명)으로...
리눅스 계정 비밀번호 초기화
리눅스 계정 비밀번호를 잊어버렸을 경우… 비밀번호를 찾을 수는 없지만 비밀번호를 초기화하고 다시 설정할 수는 있다. 계정이 삭제되는 것이 아님. # root 계정으로 접속 $ passwd -d <user> New password:
자바스크립트 날짜 다루기
날짜 데이터를 다루면서 일자, 주, 월, 연, 요일 등의 다양한 기준으로 통계 내는 일을 해야했다. 파이썬에서는 pandas라는 좋은 모듈이 있지만 자바스크립트에서는 어떤 방법으로 구현할지 고민하면서 몇 가지 방법을 정리해봤다. 시간 계산을 지원하는 자바스크립트 모듈 d3.js moment.js danfo.js
터미널을 간지나게 써보자
리눅스 터미널에서 기본 쉘 Bourne Shell(sh)만 사용하던 나에게 신문물을 알려준 분이 있다. 그 분의 터미널은 썸네일에 있는 스크린 보다 멋있었다. 얼마나 많은 단축키를 쓰는지 적은 타이핑으로도 화면이 휙휙 바뀌어서 간지 그 자체였다. 간지를 나도 따라하고자 그때부터 조금씩 테마와 플러그인 이것저것을 써보면서 경험한 것을 정리한 글이다. ...
C/C++ 포인터의 const 쉽게 이해하기
변수를 선언할 때 const를 붙이면 그 변수를 상수로 만드는 효과가 있다. const의 위치에 따라 다른 역할을 하는데, 규칙은 간단하다. 오른쪽에 있는 부분을 상수화 한다 const int num = 10; int* const p = # 변수 num, p은 상수화 되어 다른 값으로 변경할 수 없다. Rule: const 오른쪽...
CMake built-in 변수 확인하기
CMake 내장 변수를 활용하면 소스코드의 파일 경로를 바꿀 때마다 파일 경로를 수정할 필요가 없다. 그래서 내장 변수를 써야한다. 무슨 내장 변수가 있는지 알아야하지 않겠는가? 일단 무슨 변수가 있는지 전부 출력해보고 확인해보자. # CMakeLists.txt foreach (_variableName VARIABLES) message(S...
리눅스에서 키보드 이벤트 처리하기
리눅스에서 키보드 이벤트는 하드웨어 인터럽트를 사용한다. 윈래는 입력만 처리하는 스레드를 만들어서 spin lock으로 키보드 입력을 인식하려 했다. 근데 입력 스레드에서 키보드 입력을 blocking 하게 대기하는 방법을 찾다보니, 결국 입력 이벤트를 대기하는 것과 같은 이야기였다. #include <stdio.h> #include &l...