2013-04-25

이제 나도 늙었나보다. 생각이 치밀하지가 못해. 자꾸 무언가 빠뜨린다. 버그도 많이 생기고.

2013-04-14

Mocks Aren't Stubs

Martin Fowler의 Mocks Aren’t Stubs이라는 글이 있는데, 제가 이 글을 3년 전 쯤에 심심풀이 삼아 번역을 했었습니다. 그냥 재미삼아 했고 구글 사이트에 올렸죠. 그 때는 테스팅에 대해 공부 좀 해 볼 요량으로 그런건데 여전히 TDD는 잘 못합니다. 그런데 며칠전 정상혁님이 이 번역글을 원문 글에 한국어 번역으로 링크를 추가하는게 어떠냐고 메일로 제안을 해 주셨어요. fowler에게 메일로 보내면 해 줄거라면서. 헤헤헤. 그래서 요청을 하려고 fowler의 메일 주소를 찾았는데, 못찾아서 페이스북 담벼락에 요청글을 남겼죠. 하지만 며칠이 지나도 답변은 없고… 그래서 메일을 다시 보냈더니 10분만에 응답! 링크 추가 완료. 진작에 메일을 보낼 걸… 페이스북은 자세히 안보는 모양입니다. About me 링크를 자세히 읽어 보는건데… 어쨌든 나름 유명한 아티클에 제 번역 글이 링크가 걸려서 좀 뿌듯해 지는 중입니다.

2013-04-12

컴퓨터 신간

컴퓨터신간 2013-04-12 - [스크럼으로 소프트웨어 제품 관리하기] 포함 4종

스크럼으로 소프트웨어 제품 관리하기
로만 피클러 지음, 박현철.류미경 옮김 / 에이콘출판 / 2013년 04월
소셜게임 디자인의 법칙 - 수익창출을 위한 전략과 기법
팀 필즈 & 브랜드 코튼 지음, 김호연 외 옮김 / 비제이퍼블릭 / 2013년 04월
프로 Git - 그림으로 이해하는 Git의 작동 원리와 사용법
스캇 샤콘 지음, 박창우 외 옮김, 숀 피어스 기술 리뷰어 / 인사이트 / 2013년 04월
아마존 웹 서비스 완벽 활용법 - 365일 24시간 끄떡없는 웹 사이트 구축과 운영
제프 바 지음, 최용호 옮김 / 위키북스 / 2013년 04월


http://blog.aladin.co.kr/755686115/6303625
at April 12, 2013 at 02:38PM

2013-04-09

Ubuntu에서 Phantomjs 설치

jasper report를 이용하여 pdf를 만들고 있는데, 아무리 생각해도 이건 아니다 싶다. 별로 예쁘지도 않고, 값 넣는 것도 힘들고.


jspdf를 쓸 수 있을까 했는데, 이건 한글 처리에 문제가 있는 것 같다.


google service를 이용하는 방법은 어떨까? google docs 문서를 generate 하고 이것으로 pdf를 대신하는거지. 만들어진 도큐먼트를 pdf export 하면 되니까. 될까? … 하지만 이것 역시 귀찮아서 포기.


한참을 생각하다가 딱! phantomjs !


pdf 생성 요청에 대해 프로세스를 fork해야 한다는 점이 맘에 걸리지만 한 번 시도해보자.


$ sudo apt-get install phantomjs
$ phantomjs --version
[WARNING] phantomjs: cannot connect to X server.

1.4버전까지는 X server가 필요하단다. 1.5부터 pure headless라고. 할 수 없다. 직접 설치.


$ wget https://phantomjs.googlecode.com/files/phantomjs-1.9.0-linux-x86_64.tar.bz2
$ sudo tar xjf phantomjs-1.9.0-linux-x86_64.tar.bz2
$ sudo ln -s /your/phantomjs-install/bin/phantomjs /usr/bin/phantomjs
$ phantomjs -v
1.9.0

나는 A4 사이즈 pdf생성을 위해 examples의 rasterize.js 파일을 참고했다.


$ phantomjs rasterize.js http://naver.com naver.pdf A4

한글이 표시안되더라. 글꼴을 설치하자.


$ sudo apt-get install ttf-nanum ttf-nanum-extra
$ sudo apt-get install ttf-mscorefonts-installer

여전히 돋움 같은 글꼴은 안나온다. 이것도 설치해주면 나오겠지.


이상 설치 끝.


그 다음엔 이놈을 java web app에서 이용하려면 Process를 띄워야 하는데 이 주제는 다음 기회에…


update: 한글 문제 때문에 고생 좀 했다. 내가 pdf로 보여주려는 웹페이지는 나눔글꼴을 사용하고 있었는데, 이게 내 개발환경(맥)에서는 pdf에서 제대로 한글이 나온다. 하지만 우분투 서버에서는 나눔글꼴이 안나오고 다른 한글 글꼴이 선택되더라. 그래서 pdf페이지가 예쁘지 않고 … 그나마 다른 우분투 서버는 대체 한글 글꼴도 없으면 네모로 출력. 뭐가 문제일까 한참을 삽질 좀 했더니, 문제는 css에서 NanumGothic이나 ’Nanum Gothic’은 안먹고 ’나눔고딕’이라고 해야 한글이 제대로 나온다. 즉


body {
    font-family: '나눔고딕' !important;
}

헐… phantomjs가 QT 기반인 것 같은데, 나는 QT를 잘 모를 뿐이고…

2013-04-04

Reverse proxy 환경에서 tomcat access log의 IP를 X-Forwarded-For로 변경.

tomcat 앞단에 reverse proxy가 있다면, tomcat access log를 볼 때, host부분이 proxy의 IP로 나온다. 우리는 X-Forwarded-For헤더의 값을 나오게 하고 싶다.


아래와 같이 한다.


<!-- 아래 Valve를 추가 -->
<Valve className="org.apache.catalina.valves.RemoteIpValve" />
<!-- AccessLogValve를 아래와 같이 수정 -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%{X-Forwarded-For}i %h %l %u %t &quot;%r&quot; %s %b %{User-Agent}i" />

tmux 기초

설치


$ brew install tmux # os x
$ sudo apt-get install tmux # ubuntu

$ tmux -V # version

session 만들기


$ tmux new -s basic # 이름 있는 세션

Detaching and Attaching Sessions


Ctrl-b is for tmux command.


CTRL-b, d # detach
$ tmux ls # list-sessions
$ tmux attach -t [session]
$ tmux kill-session -t basic

Working with Windows


$ tmux new -s prd -n log # 첫째 윈도우 이름을 'log'로 함.
Ctrl-b, c # 새 윈도우 생성
Ctrl-b, , # 윈도우 이름 변경.
Ctrl-b, n # 다음 윈도우로 이동
Ctrl-b, p # 이전 윈도우로 이동
Ctrl-b, 숫자 # 0부터 시작하여 지정된 숫자의 윈도우로 이동
Ctrl-b, f # 윈도우 찾기
Ctrl-b, w # 윈도우 선택하여 이동

Working with Panes


Ctrl-b, % # 새 패인 생성. new column
Ctrl-b, " # 새 패인 생성. new row
Ctrl-b, o # 패인간 이동.
Ctrl-b, <space> # 기본 레이아웃 사이클.
# 기본 레이아웃: even-horizontal, even-vertical, main-horizontal, main-vertical, tiles

Command mode


Ctrl-b, : # command mode

Scrolling Through Output with Copy Mode


Ctrl-b, [ # copy mode. 'Enter' to escape.
그런 다음 <space> and <Enter> # 복사할 텍스트의 시작과 끝 지정.
Ctrl-b, ] # 붙여 넣기.
# ~/.tmux.conf에 
setw -g mode-keys vi # 커서 이동하기 위해 vi키를 사용.

access log를 tail할 때 필요한 것만 보기

$ tail -f /home/apps/tomcat/logs/localhost_access_log.`date +%Y-%m-%d`.txt | grep -Ev "패턴1|패턴2|"

2013-04-03

컴퓨터 신간

지탱하는 기술 - [모바게를 지탱하는 기술 - 모바일 게임 플랫폼,] 포함 8종 XXX를 지탱하는 기술 시리즈를 모아 보았어요.

모바게를 지탱하는 기술 - 모바일 게임 플랫폼,
DeNA(디엔에이) 지음, 정인식 옮김 / 제이펍 / 2013년 03월
서버/인프라를 지탱하는 기술 - 24시간 365일
이토 나오야 외 지음, 진명조 옮김 / 제이펍 / 2009년 04월
웹 개발자를 위한 웹을 지탱하는 기술 - HTTP, URI, HTML 그리고 REST
야마모토 요헤이 지음, 김성훈 옮김, 권정혁 감수 / 멘토르 / 2011년 05월
프로세서를 지탱하는 기술 - 끝없이 스피드를 추구하는 세계
안도 히사 지음, 진명조 옮김 / 제이펍 / 2011년 11월
대규모 서비스를 지탱하는 기술 - 웹 개발자를 위한
다나카 신지 & 이토 나오야 지음, 진명조 옮김 / 제이펍 / 2011년 02월
구글을 지탱하는 기술
니시다 케이스케 지음, 김성훈 옮김, 전병국 감수 / 멘토르 / 2008년 12월
데이터베이스를 지탱하는 기술 - 웹 프로그래머를 위한
마쯔노부 요시노리 지음, 정인식 옮김 / 제이펍 / 2012년 11월
온라인 게임을 지탱하는 기술
나카지마 켄고 지음, 김상우 옮김 / 위키북스 / 2012년 06월


http://blog.aladin.co.kr/755686115/6280921
at April 03, 2013 at 03:12PM

2013-04-01

컴퓨터 신간

컴퓨터신간 2013-04-01 - [하이브 완벽 가이드 - 하둡을 이용한 SQL 기반 빅데이터 분석 도구] 포함 12종

하이브 완벽 가이드 - 하둡을 이용한 SQL 기반 빅데이터 분석 도구
에드워드 카프리올로 외 지음, 오세봉 외 옮김 / 한빛미디어 / 2013년 04월
헤드 퍼스트 데이터 분석 Head First Data Analysis - 하둡을 이용한 SQL 기반 빅데이터 분석 도구
마이클 밀튼 지음, 김경태 옮김 / 한빛미디어 / 2013년 04월
서버 부하분산 입문 - 따라하며 배우는
미야타 히로시 지음, 김완섭 옮김 / 제이펍 / 2013년 04월
트위터 부트스트랩 - 디자이너도 놀라워할 매끈하고 직관적인 웹 사이트 제작의 비밀
김덕기 지음 / 위키북스 / 2013년 04월
구글 애널리틱스 - 웹 로그 분석의 시작과 끝, 개정판
브라이언 클리프튼 지음, 이세현.박종채 옮김 / 에이콘출판 / 2013년 03월
게임 엔진 아키텍처
제이슨 그레고리 지음, 박상희 옮김 / 에이콘출판 / 2013년 03월
코딩 호러의 이펙티브 프로그래밍 - 스택 오버플로우 공동 창립자가 알려주는 소프트웨어 개발의 비밀
제프 앳우드 지음, 임백준 옮김 / 위키북스 / 2013년 03월
프로페셔널 Node.js - 한 권으로 끝내는 노드제이에스 프로그래밍
페드로 테세이라 지음, 유윤선 옮김 / 위키북스 / 2013년 03월
세븐 데이터베이스 - 만들면서 파악하는 NoSQL
에릭 레드몬드 & 짐 R. 윌슨 지음, 심재철 옮김 / 제이펍 / 2013년 03월
반응형 웹디자인 - 어비가 들려주는 생생한 반응형 웹디자인 노하우
송태민 지음 / 위키북스 / 2013년 03월

[상품더보기]

http://blog.aladin.co.kr/755686115/6275602
at April 01, 2013 at 04:36PM