글쓰기 메뉴
1 0
Square

커버 오류 수정

커버가 오류가 있었네요.
업데이트도 잘 안됐었고, 신규 커버는 사진이 안나오는 문제가 있었네요.
이제 수정했습니다.
아무도 안알려주시다니!
3 2
Square

구인글

인천과 서울에서 활동 중인 막개발 하대환입니다.

지난 3.5년 마포/공덕 나와바리를 먹기 위해 신생 조직을 결성했었습니다. 막둥이급이지만 괜찮은 눈빛과 의리를 가진 조직원들도 모아 같이 생활하며 마포/공덕을 제 두 주먹안에 넣기 위해 매일 싸웠습니다.
하지만 행동파 출신인 저의 지략적 경험 부족이 전략적 오판으로 이어져 많은 싸움과 결투에서 패배하게 됐습니다.
3류 소설에나 나오는 배신과 협잡은 일상이었구요.
그나마 큰 일 있기전에 조직원들은 해외나 변두리로 도피시켰지만 저는 최후의 싸움에서 큰 상처를 입고 말았네요.
휴. 글을 쓰는 지금도 그 날의 상처가 욱신거립니다.
그 이후 예전 조직에서 저를 이뻐해주시던 큰형님의 배려로 형님이 활동 중이신 조직에 몸을 맡기고 상처를 추스리고 있었습니다.
그러던 중!!
유명한 전국구 조직들의 (저희도 나름 전국구입니다만) 충돌이 끊이지 않는 노른자 나와바리에 대해 회장님이 특별한 관심을 보이시자 큰 형님이 결단을 내리셨죠.
하루는 절 부르시더니
"아야. 거 거시기 자리 우리가 먹어야 안쓰긋냐?",
"대화이, 니가 지금부터 함 챙기봐라."
이러시며 특공대를 꾸리라는게 아니겠습니까?
예전 조직원들에게 연락돌리고 현 조직에서 일부 차출하며 와꾸 맞춰가고 있습니다.
저는 비록 실패의 경험이 있는 부족했던 행동대장이지만 그 때의 경험과 밤마다 쑤시는 상처의 고통을 상기하며 이번 전쟁에서 이 한 몸 불살라 싹 다 조사버릴까합니다.
제 경험과 큰 형님의 판단. 조직의 방향으로 볼 때.
이거 사이즈 나옵니다. 딱 저희가 먹을 각입니다.
혹시나 조직생활 하시던 분들 중에 조직의 부당함에 갈등하는 분들이나 더 큰 일을 위해 주먹을 갈고 닦던 고수분들 계시면 저와 같이 하시죠.
조직 차원에서의 합당한 보상과 자리는 물론이고 특공대 내에서 저의 무한한 의리와 우정을 바탕으로 큰 일 한번 내십시다.
문신 좀 하시는 그림그리는 분들.
와콤이나 스케치. 애프터이팩트 같은 연장 좀 다루시는 분들.
큰 그림도 보시고 전략적인 기획이 가능한, 빠워뽀인트나 엑세루 마스터 분들.
저희 전국구를 넘어 글로벌 갈껍니다. 자바. 노드. 파이썬. 루비. 뭔 언어를 쓰는 어디 지역 출신이시든,


리얼포스나 해피해킹 같은 연장 좀 다루시는 분들이라면 으리으리하게 의전세우고 모시것습니다.
직접 관심이 있으시거나 혹은 추천해줄 분이 계시다면 댓글 남겨주시거나 패북 메시지 주시거나 duecorda@gmail.com 으로 메일 주시면 좋겠습니다.
농이 아니고 일단 연락 주시면 제가 화끈하게 밥 한번 사면서 이거시 얼마나 큰 꿈이고 저희쪽 사이즈가 어떤지, 각은 잘 나오는지 뻑이 가게 브리핑 해버리겠습니다.
화끈하고 적극적으로 연락 줘버리십쇼.
그럼 성님 누님들 건승하시는 하루되시길 바랍니다.
3 2
Square

ㄱㄱㄱ

공상 속에선, 기회를 맞이한 나는 거침없는 결단과 막힘없는 지식. 빠르고 우직한 실행력으로 단박에 문제를 해결하고 목표를 달성하지.
현실의 나는, 과거 많은 시간을 '기회가 없음'을 한탄했고 주저앉아 있는 그 자리에 기회도 같이 깔고 앉았음을 몰랐지.
그리고 무엇보다. 
상상할 수 있는 모든 옵션을 쥐어짜느라 모든 결정은 아주 느리게 내려졌고
협소한 내 지식으로 납득되는 시나리오만 검토하니 비상식적인 진행덕에 모든 예측은 더 불투명해졌지.
게다가 모든게 ㅡ말 그대로 모든것ㅡ 준비되고 움직이려했으니 내가 움직이긴했을까 싶다.
그리고 지금.
엉덩이 밑에 기회가 빼꼼히 삐져나와 실실거리는게지.
결정하라고.
행동하라고.
지금이라고.
1 1

우분투 16.04 - 엘라스틱 서치 메모리 설정
Ubuntu 16.04 - Elasticsearch Memory config

AWS 등이나 docker 환경에서 Elasticsearch 를 사용하거나 로그 분석 등 사이즈가 큰 데이터를 다루기 위해 Elasticsearch 를 사용한다면 애초에 "메모리 부족" 으로 JDK 가 안올라가는 그런 황당한 일은 없을게다.
평범한 양의 콘텐츠를 다루는 RDB 의 검색엔진으로 Elasticsearch 를 사용하고 있는데 1기가 메모리에 웹, DB, Elasticsearch 를 모두 올려야하는 상황.
Elasticsearch 구동 시 syslog 에 아래와 같은 에러를 뱉고 당당하게 종료되는 elasticsearch.
Elasticsearch 메모리 설정 관련 검색 시 ES_HEAP_SIZE 환경변수 설정 얘기가 많이 나오는데 (공홈 매치 결과도..) 사용되지 않는 설정값이고 구동 시 xms, xmx (각 최소, 최대) 설정을 해줘야한다.
우분투에서는 아래의 파일에서 관련값을 설정할 수 있다.
두 개의 값이 다르면 성능저하가 생길 수 있다고 한다.
참고로 systemd 환경의 우분투에서 MAX_OPEN_FILES 와 MAX_LOCKED_MEMORY 설정은 elasticsearch.service 파일에서 하는 것이 좋다고 한다.
음... 또 또 참고로 .service 파일에서의 해당 설정 키는 각각 LimitNOFILE 과 LimitMEMLOCK 이다.
음.. 또 참고로 systemd 뒤의 system path 는 해당 서비스가 구동되는 레이어에 관한 정보로 시스템이나 설정마다 다를 수 있다.
3 0

청춘

곱씹어 노려보니 좀 다르게 보이네요.
시대가 "청춘"에 아픔과 지루함을 더해버렸지만,
靑春(청춘)은 그런 단어가 아니였겠죠.
듣기만 하여도 가슴이 설레는 생동하는 단어였겠죠.
저 같이 꼰대로의 길에 접어선 꼰대들이 "청춘"을 놓고 꼰대짓을 하는건 부러워서 그래요.
지옥보다 더한 괴로움이 몸부림치고 있는 걸 알지만 그 사이로 드러나는 청춘이 부러워요.
여기도 거기만큼 지옥이라..
6 0
Square

하루

통화를 마치는 아버지의 인삿말이 인상적이다.
"하루 잘 살아라"
하루는 보내는게 아니라 내가 사는거라고 문득 알게됐다.
오늘도 잘 살아야지.
2 0

서울

갈 수 없는 곳.
나고 자란 고향이고

직장도 이곳이건만.
집값이!!
전세값이!!
생활비가!!
조용히 변두리에 살아야짘ㅋ
6 1
Square

씬디 시즌투를 시작한다

시즌1이라는게 없었는데 시즌2를 시작한다니 놀랍군.
어쨋든 시즌2는 다음과 같이 요약됨.
숨겨진 감성이든
누군갈 욕을하든
알게된 지식이든
맛있는 사진이든
자꾸쓰면 잘써진다.
잘쓰려면 자꾸쓰자.
글쓰기는 잔근육빨.
1 0

미니멀리즘

인테리어나 삶의 방식이 아니라 소프트웨어나 서비스라면 사실 사용자에게 "미니멀리즘" 이 느껴지게 하기위해 물밑에서 엄청난 발장구를 쳐야겠지.
사용자는 아무것도 선택하지않고 (그랬다고 알고있고) 항상 재밌어야할테니까..
0 0

Rails 모든 연결 SSL 로 변경하기 + Nginx Redirect

Let's encrypt 와 EFF 그리고 여러 스폰서들과 개인기부자들 덕분에 간단하게 SSL 을 적용했으니 이제 모든 http 연결을 ssl 로 돌려보자.
Rails 에서는 Controller 단위에서 force_ssl 을 사용할 수도 있고 보다 와이드하게 전체 설정에서 다룰 수도 있다.
씬디는 https 변경에 다른 별 이슈가 없기때문에 config/environments/production.rb 에 force_ssl 을 설정했다.
이렇게 설정하면 route 룰을 포함해 모두 ssl 연결로 변경된다.
NginX 나 Apache 등을 리버스 프락시로 구성하여 백단에 서버들에게 넘겨준다면 다음의 헤더를 반드시 포함시켜야한다.
Rack 서버는 1) 443 포트로 연결되었는지 2) ENV['HTTPS'] 값이 "on" 인지 3) X-Forwarded-Proto 헤더가 "HTTPS" 인지 3 가지를 보고 판단하기 때문에 리버스 프락시 뒤에 있는 puma 나 unicorn 등은 443 포트가 아닌 다른 포트나 유닉스소켓으로 통신하기 때문에 HTTPS 연결인지 확인하지 못하고 계속 리디렉션 시키게 된다.
NginX 나 Apache 단에서 301 리디렉션으로 연결 프로토콜을 변경할 수도 있겠다.
80 포트를 수신하는 서버 설정을 넣고 해당 설정에서는 http 를 https 로 변경하여 리디렉션시키면 443 을 리스닝하고 있는 아래의 설정이 요청을 수신하게 된다. 
끝.
1 1
Square

SSL 인증서 설치 및 적용
스마트폰 ssh 접속으로 5분만에 완료?!!?!
그것도 무료??!!?!??!

이건 누구의 얘기도 아닌 제 얘기. 제가 씬디에 https 를 적용하기 않고 버틸 수 있던 합리적(!) 이유들.

하지만 계속 눈에 밟히는....
그리고 괜시리 갖고 싶은 녹색 자물쇠
그리고 오늘.. Let's encrypt 와 EFF 의 Certbot 으로 인증비용없이 뻥안치고 스마트폰으로 5분만에 SSL 도입 끝.
물론 후속 설정들과 이미지, 외부 소스 등에 대한 url 점검과 설정이 필요했지만 이건 레알 신세계.
근데 이거 나만 몰랐어???
불과 몇달전에도 클라한테 인증서 구매시키고 서버세팅했었는데???
블로그 참 열심히 하시는 존경스러운 outsider 님이 2015년에 베타를 경험했던 포스팅은 여기.
이후 EFF 에서 Certbot 에 Apache, Nginx 등의 소프트웨어와 서버 OS 를 플러그인으로 개발하면서 지금은 서버설정까지 Certbot 이 완료시켜주고 있음.
설치는 EFF Certbot 페이지에 가서 자신의 서버와 웹서버를 선택하면 나오는 메뉴얼대로 (대략 5 ~ 7 커맨드) 하면 끝.
난 심지어 지하철에서 스마트폰으로 ssh 연결해서 설정 끝냈음. ㅇㅇ
내 케이스는 nginx / ubunt 14.04 LTS 로 실제 설치 커맨드 히스토리는 아래와 같음. 아래가 전부임.
이렇게 하면 1) 이메일 주소 입력하세요. 2) 이메일 수신 OK? 3) (서버레벨에서 확인된 도메인 중) 어떤 도메인 쓸꺼임? 4) https 만 씀? 80도 같이 씀? 이렇게 4개 물어보고 답하면 된다.
이후에 nginx 에서 http 접속을 https 로 리디렉션 시키던지 Rails 에서 모든 연결에 ssl 을 적용하는 등의 설정을 하면 됨. 이건 별도의 글로 작성.
이제 Let's encrypt 라는 회사를 살짝 알아보자.
리눅스 재단 (Linux Foumdation) 과의 협력프로젝트라고 사이트 상단에 '이미지'가 박혀있는데 어떤 관계인지는 확인하지 못했다.
ISRG 라는 캘리포니아의 기업에서 "HTTP" 보안이 기업들과 사용자들의 비용절감에 직간접적인 도움이 된다는 생각으로 시작했다고한다.
기본적으로 ACME (인증관리자동화환경) 을 보고 있고 실제로 해당 목적을 훌륭하게 수행하는 솔루션이 있다. letsencrypt 에서 개발하다가 현재는 EFF 에서 개발하고 있으며 패키지이름은 Certbot. 인증절차 및 인증서 설치 이후 갱신을 "명령어 하나로" 처리해준다.
SSL CA 로 중요한것은 얼마나 많은 주효한 클라이언트가 이를 인증된 CA 로 받아들이는가 하는 부분인데 해당 목록은 이곳 링크에서 확인할 수 있고 파폭 2.0+, 크롬, 익스 XP3+, 엣지, 안드 2.3.6+, 맥 사파리 4.0+, iOS 사파리 3.1+ 등등 그냥 믿고 사용해도 되는 수준이다.
또 하나는 letsencrypt 의 생존력인데.. 인증서가 무료다보니 기업의 유지가능성도 살펴보는게 좋겠다.
기업 스폰과 기부금으로 운영되는 것으로 보이며 공식홈페이지에서 스폰서들은 소개하고 있다.
문서상으로 년간 30만불(3년유지) 또는 35만불을 지원하는 플래티넘 스폰서는 mozilla, Akamai, SISCO, EFF, OVH, chrome 등의 6개사이고 그 외 IdenTrust,  포드재단, 페이스북, 디지털오션, 볼터, 쇼피파이 등 다수의 스폰서들이 있다.
역시나 결론은 그냥 믿고 쓰면 되겠군이라는 결론 ㅋㅋ
EFF 는 Electronic Frontier Foundation 의 약자로 한국위키 이름이 "전자 프런티어 재단" 이다.

뭔가 틀리진 않았지만 우습달까?
EFF 는 '디지털 월드' 에서 사용자들의 자유를 지키기 위해 1990년 설립된 비영리 재단으로 블루 리본 캠페인도 여기서 시작했다고 한다.
물리적으로는 관계되기 힘든 연결고리 없는 사람들과 조직이 어느날 나에게 직접적으로 혜택을 주는 일들이 많아지는게 참 재밌고 고마울 뿐이다.

진짜 고마우면 Donate! 
Support Let's encrypt
Support EFF Certbot
0 0

아우 나 돌머리...

아 된장. 원래 소스나 프레임워크 업뎃이 목적이 아니였고.. 글 상세 페이지 하단에 나오는 연관글들 로직 수정하려고 했던건데... 초반에 글이 너무 없어서(지금도 적지만) 최신글 몇개를 박아넣었는데 그게 아직도 살아있어서 없애려는 목적이였는데...
코드를 여는순간 매직!!!! 뻘짓만 드럽게했네.
1 0
Square

업데이트

프레임워크 버전이 너무 올라가서 나중에 따라가려면 대형 공사가 될까 걱정되어 프레임워크 버전업. 하지만 이미 큰 공사였음. 아 힘들어.
텍스트 에디터도 자잘한 오류들이 많이 보여서 코드 정리 및 라이브러리들 일부 업데이트. 완전 힘듬.
별로 테스트 해볼 시간은 없어서 대충 동작되는 것 같아서 서버에 적용.
오류나면? 알려주삼.
1 0
Square

안드로이드 앱 업데이트

씬디는 원래 웹 버전이 베이스라 (아.. 시대착오적...) 초기부터 쓰시던 분들은 앱이 있는지도 모르실텐데 몇달전에 안드로이드만 우선적으로 (제가 안드유저라) 등록했었습니다.
저조차도 앱은 설치했지만 설치하고 보니 '당겨서 새로고침' 이 안되기에 뭔가 어색해서 안쓰고 있었죠.
그런데 간간히 안드 앱으로 사용자분들이 들어오시더니 급기야는 누군가 플레이스토어에 무려 리뷰를 남기신겁니다!!
화면 회전 시키면 첫페이지로 돌아간다는 오류 리포트를요.
엄청나게 짜증나는 오류일텐데 그걸 리뷰로 남겨주신 정성과 애정에 무한한 감사를 느꼈지만 과연 내가 언제 업뎃 작업을 할 수 있을까하는 걱정도 있었습니다.
그러다가 오늘 아침 드디어!!! 꽤 이른시간에 출근하게되어 상큼한 기분으로 풀충전되어있는 그 타이밍을 놓치지 않고! 앱을 업데이트했습니다.
회전 시 초기페이지 이동 오류와 '당겨서 새로고침' 을 추가했습니다.
혹시나 씬디 사용하시다가 오류나 버그가 아니여도 불편한점이 있거나 추가되면 좋겠다는 내용이 있으면 아무곳으로나 알려주세요.
씬디에 글로 써주시면 제일 좋구요.
사족)
당겨서 새로고침을 직접 구현하지 않고 안드로이드 SDK 에서 제공하는 SwipeRefreshLayout 을 사용해버렸네요.
구버전 호환성을 꼼꼼하게 확인하지 않았는데.. 업댓은 했으나 마음의 짐은 또 하나 생겼네요 ㅠ.ㅠ
2 2
Square

커피 - 아침마다 깜놀

미국영화나 드라마보면 아침마다 드립커피가 항상 있던데 ( 누가 내렸을까!!) 난 출근하고 첫 커피를 마시지.
놀라운건. 매일매일 새삼 놀라는건.
첫모금이 넘어갈때의 그 "각성의 맛"
실제로는 매우 무뎌서 카페인으로 인해 잠이 안온다든지 하는 일은 겪어보지 못했지만 이건 그야말로 각성의 맛.
매일 아침 첫모금이 질리지도 않고 매번 절로 감탄이 튀어나오니 진짜 놀라워.
1 0
Square

"여름"은 스크류바!

해가 미친듯이 내리쬐고 아스팔트에 아지랑이가 스믈거리는 뜨거운 한낮에 좀이라도 시원할까 싶어 스크류바를 산다면 질질 녹아 흐르는 끈적한 설탕물 범벅 ㅋ
다 먹고 나면 넘넘 단맛이라 입안도 끈적끈적.
1 1
Square

내 생각을 멈추면
지구가 멈춰
그렇게 돌아가지
태양말고 너
2 1
Square

foo, bar - Metasyntactic variable
메타구문변수라니.. 번역해도 뭔말인지...

개발자들은 foo, bar 라는 단어가 아주 친숙하지.

그냥 "무엇이든 지칭할 수 있는 의미없는 단어"로 예제코드나 문서에서 매우 자주 쓰이니까.
그래서 개발 시작한지 얼마안되는 초보시절(!)에 foo, bar (합쳐서 foobar 라고도 많이 부름) 의 어원이나 정확한 의미를 찾아보는 시간을 갖지. 나 역시 찾아봤었고.
영문은 위키피디아에서 보면 되고,
한글로는 이게 제일 그럴듯해. (군대 은어 - FUBAR 에 대한 설명만 빠져있음)
다만 foo 를 한글의 "홍길동" 이라고 이해하지는 말자. "홍길동"은 지칭되는 사람이 없는 사람을 뜻하는 단어지만 foo 는 사람이든 사물이든 가리지 않고 무엇이든 지칭할 수 있으니까. 
그런데 foo, bar 다음은 뭔지 알어? 다음 단어가 있긴 있을까?
이게 메타구분 변수 목록이야 ㅋㅋㅋㅋ 너무 재밌고 신기하고 신나서 글 써봄 ㅋㅋㅋ
2001년 만우절에 작성된 RFC3092 문서에 나와있네.  RFC3092
근데 형들 RFC 가 무슨 약자인줄 알어? 이것도 재밌는데 ㅋㅋㅋ
0 1

Vim with the Syntastic plugin and ESLint (feat Vundle)

나는 nerdtree 라든지 하는 플러그인 안쓰고 날것의 vim 을 좋아하는데 syntax 나 eslint 는 필수기 때문에 써야지.
플러그인 관리 대세가 pathogen 에서 vundle 로 넘어간 듯.. 대세는 또 따라줘야지.
Vundle: https://github.com/VundleVim/Vundle.vim
Syntastic: https://github.com/vim-syntastic/syntastic
깃허브에 아주 잘 설명되어 있고.. 아래는 내 설치 히스토리.
소스 받기
.vimrc 에 다음 내용 추가 - Syntastic(만) 포함됨
설정된 플러그인 인스톨
플러그인 인스톨하면 화면 쪼개지고 설치 진행됨. 당황하지 말고 Vim 상태표시줄에 다 끝났다는 메시지 나오면 끄면 됨.
ESLint 는 글로벌로 설치해놓고 
사용하고 있는 .eslintrc 가 없다면 프로젝트 root path 에서
eslint 설정 파일이 있다면 아무 파일이나 돌려보면 eslint-plugin-react 등 필요한 것들 설치해줌
글로벌로 npm 설치해도 물론 됨
끝.
0 1

Mac Xcode 다운로드 2일 12시간...
느려도 너무 느려 터진 iTunes

쌔끈한 브랜~뉴 맥에 개발 환경 설정하다가 높은 확률로 빡치는 곳. 
Apple Development Center 에서 Xcode 다운로드 시도하면 iTunes 로 넘겨주는데 다운로드 누르면 남은 시간이 고무줄.
아, 제목에 2일 넘는건 뻥이고 2시간 30분 남았다고하네. 2시간 30분. 퇴근하겠는걸?
암튼... iTunes 로 안넘어가고 아래 페이지에서 필요한 파일 찾아서 브라우저에서 다운로드 할 수 있음.
apple 계정으로 로그인은 해야하고..
https://developer.apple.com/download/more/

이어받기가 필요하다거나 브라우저 다운로드가 왠지 모르게 불안하다면 gem 중에 adcdownload 라고 있음. wget 사용해서 이어받기도 되니 필요하면 아래처럼 사용할 수 있음
$ gem install adcdownload --no-document
$ adcdownload get http://adcdownload.apple.com/Developer_Tools/Xcode_8.3.2/Xcode8.3.2.xip
이렇게 실행하면 apple 아이디와 비밀번호 묻고 다운로드 시작. 
다운로드 링크는 물론 저 위에 페이지에서 파일 url 복사한거.
중간에 끊어지면 그 위치에서 다시 같은 커맨드로 이어받기 가능.
[링크]
https://developer.apple.com/download/more/
https://github.com/MagLoft/adcdownload
1 3 10