java builder pattern (빌더 패턴)
2017-09-03

bulider pattern은 창조적 디자인 패턴이며 이것은 factory pattern 또는 abstract factory pattern과 매우 비슷하다. 이 패턴에 들어가기 전에 factory pattern과 abstract factory pattern들의 문제점(수 많은 attributes을 사용해야 패턴을 사용할 수 있는 점)에 대해 먼저 알아보자. factory pattern과 abstract factory pattern에는...

dev/java
typescript에서 ie9 window.console bug 수정하기
2017-08-30

ie와의 지독한 싸움이 아직도 끝나지 않았다. 예전에 ie9에서 작업할 때 꼭 디버깅 창을 열어야 javascript 소스가 실행되는 현상이 있었다. 알고보니 ie9 버그로써 디버그 창을 열어야 console을 인식하고, 디버그 창을 열지 않으면 console이라는 문자열이 js에 찍히는 순간 javascript가 에러나서 종료되는 현상이였다....

dev/javascript
nodejs cluster 프로세스에서 데이터 공유하기
2017-08-29

nodejs의 cluster는 기본적으로 child_process의 기능을 바탕으로 만들어졌다. master process와 worker process는 프로세스간 통신할때 일반적으로 사용되는 IPC를 사용하여 서로 통신한다. 또한 cluster 모듈을 사용할 때 공식적으로 프로세스간에 공유하는 메모리는 없다. 따라서 같은 메모리 주소값을 참조해서 데이터를 사용하는 방법 역시 없다. 하지만...

dev/javascript
webpack으로 nodejs 서버사이드 개발시 옵션
2017-08-18

webpack으로 nodejs server-side를 작성하려고 하니까 모듈 exports나 기타 모듈 관계 생성이 잘 동작하지 않는다. webpack의 기본 옵션은 front-side로 맞춰져 있기 때문이다. server-side에서 바로 시작할 수 있게끔 webpack의 가장 중요한 옵션을 정리해본다. config file 수정 아래를 참고해서 3부분을 수정하면 바로 server-side용으로...

dev/javascript
jekyll 개발모드로 사용 및 빌드하기
2017-08-10

jekyll로 블로그를 하다보니 운영빌드와 개발빌드를 나눠서 하고 싶은 마음이 생겼다. 이전까지는 귀찮아서 그냥 사용했는데 디스커스(댓글) 어드민에서 댓글의 url을 확인했더니 blog.seotory.com 도메인과, localhost 도메인으로 분할되는 것을 보고 제대로 작업하기로 했다. jekyll 공식문서에 가보면 환경변수(env)를 통해 빌드시 선택적으로 빌드할 수 있도록 지원해주고...

dev/jekyll
javascript es6 class 및 mixin 사용해보기
2017-08-08

es6가 나온지도 꽤 되었다. 많은 스펙들이 추가가 되었지만 가장 중요한 class에 대해서 정리를 해보자. 예전부터 느낀거지만 es5보다 편한 부분도 있고 불편한 부분도 있다. 중요한 점은 es6 또한 prototype 기반이며 단지 문법상의 변화만 있다는 점이다. 즉 이전 자바스크립트에서 prototype을 사용함으로 얻는...

dev/javascript
mac에 pyenv를 이용해 python 설치하기
2017-03-05

mac에 python을 설치해본다. python의 공식 홈페이지에서 패키지를 다운받아서 설치하는 방법이 있겠으나, 매우 비추천하는 방식이다. 특히나 python은 2.X 대와 3.X 대의 라이브러리나 문법이 서로 호환이 안되므로 python 버젼관리를 도와주는 pyenv를 설치하여 관리하도록 한다. homebrew 설치 homebrow를 우선 설치해서 pyenv의 설치를 돕도록...

dev/python
git에서 vi 에러 메세지 해결하기
2017-03-02

git 사용중에 아래와 같은 vi 관련 에러 메시지가 발생했다. 이 에러가 발생하면 git 명령어 처리가 제대로 작동하지 않는다. error: There was a problem with the editor 'vi'. Please supply the message using either -m or -F option. 다음과 같이 글로벌...

dev/git
docker 컨테이너 내의 locale(로케일) 에러 해결
2017-02-28

특정 docker image를 컨테이너로 만들고 접속해보니 아래와 같은 locale 에러 메세지가 발생했다. 무시하고 작업을 해도 되지만 매우 거슬려서 아래와 같이 추가 설정을 하였다. bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory bash: warning: setlocale: LC_COLLATE:...

dev/etc
redis 소개 및 시작
2016-11-03

redis 소개 2010년대 이전까지 관계형 데이터베이스를 사용하여 어플리케이션을 제작한다고하면 막을 사람은 아무도 없었다. 그러나 2000년대 중반부터 몇몇 글로벌 서비스가 크게 성공하면서 관계형 데이터베이스를 사용하여 데이터를 처리할 수 없을 만큼의 데이터를 생산하게 되었다. 원인은 관계형 데이터베이스에서 주로 사용하는 B-tree 알고리즘의 한계에...

dev/database