Signed URL 만들기 

Signed URL은 컨텐츠를 특정 유저에게만 공유하고 싶을 때 사용한다. 일정한 시간동안만 특정유저에게 공유하기 위한 목적으로도 사용 할 수 있다. 내 사이트(Joinc)는 공개된 문서와 그렇지 않은 문서가 있다. 아직 미완성 중인 문서 혹은 공개하기 애매모호한 문서는 로그인해야지만 볼 수 있도록 제한하고 있다. 비공개 문서 중 특정 문서를 누군가에게 공...

MSA에서의 REST API 테스트 방안 

이름 닉네임 사이트 NaverLabs 클라우드(주로 AWS) 환경에서 서비스 백앤드를 개발. 우분투리눅스 18.04 vim-go + ycm Makefile + glide 개발 환경을 소개 합니다. 여기 있는 문서들은 평소의 제 개발환경에서의 경험을 기반으로 하고 있기 때문에 나름 의미가 있을 거라 생각합니다. 우분투리눅스를 데스크탑으로 하고 있고요...

Redis data structures - SET 

소프트웨어 프로그래밍에서 가장 먼저 다루는 데이터 스트럭처는 비트, 배열, 스트링, 리스트다. 단순해서 배우고 응용하기 쉽고, 다른 데이터 스트럭처를 이해하기 위한 기본이 되기 때문이다. 단점은 단순한 만큼 응용범위도 넓지 않다는데 있다.Sets는 좀 더 복잡하고 그 만큼 더 다양한 응용을 할 수 있다.Sets는 key에 하나 이상의 value를 가지는 데...

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 컴포넌트는 일종의 함수로, 코드를 재사용 할 수 있게 하고 가독성을 높여준다. 일반적인 사이트는 헤더, 탑 메뉴, 사이드바, 컨텐츠, 바닥 글 등의 독립적인 컴포넌트로 구성된다. 이들을 함께 배치해서 사용자 인터페이스...