nodejs의 cluster는 기본적으로 child process의 기능을 바탕으로 만들어졌다. master process와 worker process는 프로세스간 통신할때 일반적으로 사용되는 IPC 를 사용하여 서로 통신한다. 또한 cluster 모듈을 사용할 때 공식적으로 프로세스간에 공유하는 메모리는 없다. 따라서 같은 메모리 주소값을 참조해서 데이터를 사용하는 방법 역시...
jekyll 로 블로그를 하다보니 운영빌드와 개발빌드를 나눠서 하고 싶은 마음이 생겼다. 이전까지는 귀찮아서 그냥 사용했는데 디스커스(댓글) 어드민에서 댓글의 url을 확인했더니 blog.seotory.com 도메인과, localhost 도메인으로 분할되는 것을 보고 제대로 작업하기로 했다. jekyll 공식문서에 가보면 환경변수(env)를 통해 빌드시 선택적으로 빌드할 수 있도록...
es6가 나온지도 꽤 되었다. 많은 스펙들이 추가가 되었지만 가장 중요한 class에 대해서 정리를 해보자. 예전부터 느낀거지만 es5보다 편한 부분도 있고 불편한 부분도 있다. 중요한 점은 es6 또한 prototype 기반 이며 단지 문법상의 변화만 있다는 점이다. 즉 이전 자바스크립트에서 prototype을 사용함으로...
mac에 python 을 설치해본다. python 의 공식 홈페이지에서 패키지를 다운받아서 설치하는 방법이 있겠으나, 매우 비추천하는 방식이다. 특히나 python 은 2.X 대와 3.X 대의 라이브러리나 문법이 서로 호환이 안되므로 python 버젼관리를 도와주는 pyenv 를 설치하여 관리하도록 한다. homebrew 설치 homebrow 를...
git 사용중에 아래와 같은 vi 관련 에러 메시지가 발생했다. 이 에러가 발생하면 git 명령어 처리가 제대로 작동하지 않는다. 다음과 같이 글로벌 옵션을 주어서 에러 메세지를 해결했다. 참고로 관련 내용을 찾아보니 vim의 버그라는 이야기가 있었고, 또다른 해결책으로 vim을 재설치하는 방법이 있었다..
특정 docker image를 컨테이너로 만들고 접속해보니 아래와 같은 locale 에러 메세지가 발생했다. 무시하고 작업을 해도 되지만 매우 거슬려서 아래와 같이 추가 설정을 하였다. locale 커멘드를 이용해서 현재 시스템에서 사용중인 로케일을 확인해본다. locale -a 명령어를 사용해서 현재 시스템에서 사용가능한 로케일을 확인한다....
abstract factory pattern은 생산적인 디자인 패턴 중 하나로써 좀 더 factory를 좀 더 생산적으로 만들어 낼 수 있다는 점외에는 factory pattern과 매우 비슷하다. 여러분이 java의 factory design pattern에 익숙하다면, 보통은 어떠한 인풋에 대해 factory class안에서 if-else로 다른 sub-class를 반환하는 일련의...
factory pattern 은 유명한 디자인 패턴 중 하나이다. 이것 역시 JDK 및 우리가 잘 알고 있는 Spring, Struts 프레임워크에 많이 사용되고 있다. super class와 여러개의 sub class가 있는 상황에서 input이 발생하면 하나의 sub class를 반환해야 할때 factory pattern 이 사용된다....
개요 일반적으로 리눅스에서 자바를 셋팅하고 사용하다보면 버젼관리를 해야하는 경우가 반드시 생긴다. path 경로는 일반적으로 os가 부팅될때에 실행되는 파일들을 가지고 있다. 일반적으로 java를 설치했다면 /usr/bin/ 의 경로에 java가 실행파일로 운영이되고 있을 것이다. 이런경우 버젼을 올리거나 내리는 것이 매우 힘드므로 심볼릭 형태로...
GNU/Linux의 일반적인 환경변수들을 한 번 알아보자. 환경변수 확인 환경변수 확인에는 set , printenv , env 와 같은 3가지 정도의 명령어가 있다. 1. set $ set 2. printenv $ printenv printenv 는 뒤에 옵션을 줄 수 있으나, env 는 옵션을 줄...