Vue.js 시작 

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

Vue.js 

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

Joinc Tagging 시스템 구현 

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

Glide를 이용한 go 패키지 관리 

우분투 리눅스 17.14에서 설치했다.# curl httpsgo는 1.10 버전이다. 1.6 버전 부터 vendor를 지원하기 시작했으니 따로 GOPATH를 잡을 필요가 없다. 1.6 이하 버전을 사용하고 있다면 업데이트하자.Go언어는 github에서 패키지를 다운로드해서 사용 할 수 있다. 하지만 버전과 상호의존성을 관리해야 한다. 자바스크립트의 경우 n...

bcrypt 

bcrypt는 Blowfish를 기반으로 만들어진 "단방향 암호화 해싱함수"로 1999년 USENIX에서 발표됐다. Rainbow table 공격을 막기 위해서 를 사용하며, 암호검사 요청이 반복될 수록 cost를 늘림으로써, 무차별 대입 공격(brute-force search)을 막을 수 있다. cost는 반복횟수로 2^n 이다. bcrypt 함수는 Op...

Javascript로 뒤로가기 막기 

히스토리를 조작해서 뒤로가기를 막을 수 있다. 자바스크립트를 이용하는 것이니 만큼, 자바스크립트를 지원하지 않는 브라우저에서는 사용 할 수 없다. 뒤로가기를 눌러서 이전 페이지를 호출할 경우 "에러"가 출력되는 경우가 많을 건데, 유저 실수를 막아서 사이트의 흐름을 원할히하기 위한 목적이라고 보면 된다. 다른 방법도 마찬가지로 완전히 막을 수 있는 그런 방...

자바스크립트와 JSON 

은 자바스크립트(Javascript)언어에서 파생되는 데이터형식으로 자바스크립트 사용시 자연스럽게 사용하게 된다. JSON은 아래와 같은 목적으로 사용한다. 데이터의 저장 유저입력으로 부터 자료구조의 생성 설정과 데이터 확인 자바스크립트가 웹에 워낙에 널리 펴저있기 때문에, 다른 대부분의 언어들역시 JSON을 다루기 위한 패키지(혹은 라이브러리)들을 제공...

GoLang Defer 

Go는 흐름을 제어하기 위한 일반적인 메커니즘인 if, for, switch, goto를 제공한다. 이 외에 고루틴(goroutine)을 실행하기 위한 go 문이 있다. 이외에도 defer, panic, recover이 있다. 여기에서는 defer를 다룬다.defer는 go에서 제공하는 흐름 제어 메커니즘(Control flow mechanism)이다. d...

Hacker Rank 

는 사이트에서 제시하는 프로그래밍 문제를 해결하는 사이트다. 개발자는 프로그래밍 실력을 공개 증명 할 수 있으며, 기업은 검증된 프로그래머를 채용 할 수 있다. 해커랭크는 Java, C, C++, Bash, Python, SQL등 다양한 영역의 문제를 제공한다.개발자는 프로그래밍 문제에 대한 해결책을 제출하고, 해커랭크는 결과물의 정확도에 따라서 점수를 매...

golang 빌더패턴 

객체를 만드는 디자인 패턴이다. factory 패턴과 abstract factory 패턴과 유사하다. 유사한데도 사용하는 이유가 있는데, factory, absstract factory 패턴은 아래와 같은 문제점이 있다. 수맣은 파라메터들이 클래스로 전달되는데, 타입까지 비슷한 경우가 많기 때문에 파라메터를 제대로 사용하기가 쉽지 않아서 에러를 발생하는 경...