REDIS : LINDEX key index 

1.0.0 버전 부터 사용 시간 복잡도 LINDEX는 key의 index 위치에 있는 아이템을 반환한다.index는 0부터 시작하므로 0은 첫번째 아이템을, 1은 두번째 아이템을 의미한다. 음수의 경우 리스트의 끝에서 부터 index를 찾는다. -1은 마지막 아이템을 의미하고 -2는 마지막에서 두번째 아이템을 의미한다.key가 리스트(List)가 아닌 경...

REDIS : BRPOP key [key ...] timeout 

2.0.0. 이후 버전에서 사용 시간복잡도 BRPOP은 RPOP의 블럭(Block) 버전이다. 기본적으로 RPOP 즉 리스트의 마지막에 있는 아이템을 POP하지만, POP할 아이템이 없을 경우 timeout 시간만큼 블럭된다. timeout 시간만큼 블럭되는 것을 제외하고는 RPOP와 동일하므로 자세한 사용법은 RPOP 문서를 참고하면 된다. timeou...

Goroutine 기다리기 

고루틴(Goroutine)는 go언어에서 가장 유용한(그리고 가장 많이 사용하는)기능 중 하나일 거다. 고루틴은 go언어에 내장된(built-in) 기능이다. 개발자는 표준라이브러리나 외부라이브러리의 의존 없이 언어자체로 동시성(concurrency)애플리케이션을 개발 할 수 있다. 고루틴을 가지고 프로그램을 만들다 보면, 고루틴의 종료를 기다리거나 고루틴...

The Behavior of Channels 

처음 go의 채널을 사용 했을 때, 나는 채널을 데이터 구조체(스트럭처)처럼 다루는 실수를 했다. 채널은 고루틴(goroutine)사이에서 큐를 제공하고, 자동으로 데이터를 동기화 해주는 것이라고 보았기 때문이다. 이렇게 채널을 구조체로 보는 것 때문에, 복잡하고 나쁜 동시성 코드를 만들게 됐다. 시간이 지나면서 채널을 스트럭처로 보는 대신, 행위에 중점...

Javascript로 페이지 이동 

HTML meta 태그와 javascript를 이용한 두 가지 방법이 있다.

Vue.js 이벤트 핸들링 

v-on 지시자(directive)로 DOM 이벤트를 듣고 Javascript를 실행 할 수 있다.

Vue.js component 

웹 사이트들은 서로 다른 여러 컴포넌트들고 구성이 된다. 이들 컴포넌트들은 더 작은 컴포넌트들로 구성되기도 하며, 재사용되기도 한다. Vue 컴포넌트는 일종의 함수로, 코드를 재사용 할 수 있게 하고 가독성을 높여준다. 일반적인 사이트는 헤더, 탑 메뉴, 사이드바, 컨텐츠, 바닥 글 등의 독립적인 컴포넌트로 구성된다. 이들을 함께 배치해서 사용자 인터페이스...

Vue.js 시작 

jquery로 노가다 뛰고 있는데, Vue.js라는 녀석이 나와서 해볼려고 한다. 과연 이녀석은 어떨지. 여기에 있는 모든 예제들은 페이지에서 실제 작동하는 예제들이다.Vue는 유저 인터페이스를 만들기 위한 프로그래시브 프레임워크(progressive framework)다. 다른 모놀리틱 프레임워크와는 다르게 Vue는 점진적으로 채택이 가능하게 만들어졌다....

Vue.js 

Foundation css 프레임워크와 jQuery 노가다로 사이트를 관리했는데, 트랜드에 발 맞춰? Vue.js를 적용해보기로 했다....

Joinc Tagging 시스템 구현 

태깅은 정보를 관리하기 위한 좋은 방법이다. 완전히 공개된 서비스의 경우 태그관리가 까다롭다는 문제가 있지만, 추천시스템에 대한 노하우가 쌓이면서 많은 부분 해결이 된 것 같다. Joinc는 개임위키이니 만큼 관리하기가 훨씬 쉽다. 태그라고 해봐야 100개가 넘지 않을 것 같은데, 이 정도라면 자동완성이나 추천에 신경쓰지 않고 단순하게 구성 할 수 있을...