블로그 이미지
JEEN

서울에 사는 꽃청년의 IT찌질모험기

Rss feed Tistory
IT/Tips 2009.10.23 17:51

[ tmux ] 왜 나는 screen 을 버렸는가?

  screen 을 버렸다고 하면 그건 훼이크고, 최근에 screen 대신에 tmux 를 사용하고 있습니다. 회사의 여러 서버에 tmux 가 안들어가 있고, 제 섭이랑, Mac 의 터미널에서는 이미 tmux 를 애용하고 있습니다.
 
   http://tmux.sourceforge.net/

  tmux 는 Terminal Multiplexer 라고 합니다. 위의 소스포지 프로젝트 페이지로 가면 자세한 스크린샷이 있으니 어떻게 쓸 수 있는 가 쉽게 알 수 있을 겁니다.
  추가 화면 생성은 물론이고, 화면의 종/횡 분할이 가능합니다. 개발자들의 C&P 질을 위해서 C&P 용 버퍼를 여러개 가질 수 있습니다.
  아래의 캡쳐화면을 보면 3개의 화면으로 나눠져 있습니다. 왼쪽 위는 시계, 왼쪽 아래는 디렉토리, 오른쪽은 vim 을 띄워놓고 작업하는 모습입니다. 제시간에 척척 일을 해내는 개발자라면 이런 화면 구성에서 작업하는 것도 나름 괜찮지 않을까나요?

  아래처럼 8개의 화면으로 쪼개봤습니다. 소스변경 확인 등등.. 뭔가 열심히 일하는 것 같은 화면을 띄워놨지만... 물론 저렇게 작업은 하지 않고.. 그저 컨셉입니다.


  Mac 이라면 port 에서 install tmux 로 간단하게 설치할 수 있지만... detach 이후 attach 시에 에러가 발생하여 세션이 날라가버리는 사태가 일어나는 것 같으니, 위의 소스포지에서 소스를 다운받아서 직접 컴파일 하시는 방향을 권해드립니다.
  리눅스 계열도 마찬가지로 그렇게...

  간단한 몇개지 키맵을 보자면... screen 은 Ctrl-a 를 기준으로 사용하지만.. tmux 는 Ctrl-b 를 기준으로 사용합니다.

  화면 생성 - C-b  c
  화면이름 변경 - C-b ,
  화면 리스트 표시 - C-b w
  다음/이전 화면 이동 - C-b n/p
  화면 강제 종료 - C-b &
  스크린 분할 - C-b "
  스크린 분할 제거 - C-b !
  스크린 분할 강제종료 - C-b !
  분할된 스크린 사이 이동 - C-b o (혹은 Up / Down)
  분할된 스크린 간격 조정 - C-b C-Up/Down
  분할된 스크린 배치패턴 변경 - C-b Space
  중단 - C-b d
  재개 - tmux attach
  시간표시 - C-b t

  이제 tmux 와 함께 Happy Terminal Time!
신고
IT/Tips 2009.10.11 16:39

[ TeamViewer ] VNC - 게으름병이 극한으로 치닫다

  집에는 윈도우를 쓰는 노트북과 맥북이 있습니다. 최근에 32" TV 를 구입하면서 윈도우 노트북은 동영상 감상용으로 전락해버린 기분이 드는 군요.
  윈도우 노트북과 맥북 사이의 거리 2-3미터. 그 2-3미터의 거리를 일일이 왔다갔다 하는 것에 은근히 귀찮음을 느끼고 있었습니다.

  VNC 로 어떻게 하면 된다는 것을 알고 있으면서, 결국은 그것을 알아보는 것 조차도 귀찮아하면서 지내왔었습니다. 그러다 시간이 나서 잠깐 찾아보니 이런 어플이 있었군요.
  윈도우즈용과 맥용이 따로 있으며, 각자 서버/클라이언트가 가능합니다.
 
Apple | iPhone 3GS | 1/17sec
  이런 식으로 사용하고 있습니다. 2-3미터도 버겨워하는 현실에 WALL-E 의 인간들처럼 될까 두려움도 들기도 합니다.
  물론 VNC툴은 여러가지 있겠지만... 일단 눈에 띈 것은 이것이고.. 맘편히 쓰고 있습니다.

  계기가 된 것은
  http://cafe.naver.com/inmacbook/90346
  이 링크입니다.
 
신고
IT/Tips 2009.07.29 23:00

[ SSH ] .ssh/config 에 대해서...

  사실은 ssh 를 쓰면서 그냥 단순하게 2년넘게 써왔었습니다.

jeen$ ssh [host]

  이렇게요.

  저희회사에서는 개발용 서버로 들어가기 위해서는 꼭 어떤 서버를 거쳐서 들어가야 합니다.
 
  제가 쓰는 PC 에서 A라는 서버에 접속해서 A 의 DB 서버로 들어간다든가, A 랑 관계있는 어떤 서버로 들어간다든가 하는 것이죠.

  그래서 맥북에서 A의 DB 서버로 들어갈 때는

jeen$ ssh lee@a.server
lee@a.server's password:
lee@a.server:~$ ssh a.db.server
lee@a.db.server's password:
lee@a.db.server:~$ _
....
// or
....
jeen$ ssh -t lee@a.server ssh lee@a.db.server
lee@a.server's password:
lee@a.db.server's password:
lee@a.db.server:~$ _

  아, 거기에 맥북에서의 계정은 jeen 인데, 회사에서 쓰이는 일반적인 제 계정은 lee 라고 합니다. 서로간의 계정이 다르니까, 매번 접속시에 접속할 서버계정에 Username 을 맞춰줘야 되죠.
  대략 이런 플로우라는 겁니다. (귀찮아서 사실 키 설정도 안했는데, 매번 치는 게 오히려 귀찮은데 말이죠..)

  그럼 이걸 한방에 어떻게 맥북 -> a.db.server 로 들어가느냐...

  예전에 북마크해둔 링크가 하나 있어서 꺼내봅니다.

* http://openlab.dino.co.jp/2007/10/03/17550797.html (일본어)

  즉 $HOME/.ssh/config 를 설정하면 된다는 것입니다.
Host a.db
  HostName a.db.server
  ProxyCommand ssh lee@a.server nc %h %p
 
  이런 설정입니다.

$ ssh a.db
lee@a.server's password:
lee@a.db.server's password:
lee@a.db.server:~$ _

  그러면 각 서버별로 패스워드를 물어옵니다. 이것마저도 귀찮으면 ssh-keygen 으로 인증키를 만듭니다.

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/jeen/.ssh/id_rsa):  (엔터)
Enter passphrase (empty for no passphrase): (엔터)
Enter same passphrase again: (엔터)
Your identification has been saved in ....
Your public key has been saved in ......
The key fingerprint is:
..........

 그리고 생성된 id_rsa.pub 파일을 각서버의 $HOME/.ssh/authorized_keys 에 첨부합니다.

 맥북 -> A서버 -> A서버의 DB 서버 일경우에는
 보통 맥북에서 생성된 인증키를 A서버에
 A서버에 생성된 인증키를 A서버의 DB 서버에 첨부합니다.
 ....
 ....
 물론 일반적인 경우에는 그렇지만... 위의 .ssh/config 를 설정한 상태에서는
A서버의 DB서버에는 A서버의 인증키가 아니라 맥북의 인증키가 필요합니다.

 최근에는 집에서 잠깐 회사서버로 접근하거나 하는 일이 많아져서... 회사 프록시 타고 들어가야 하는 일등이 많이 있고, 이럴때마다 계정이름 등등.. 많이 귀찮기도 해서... ssh_config 설정한 김에 그냥 시간들여서 모조리 인증키 설정하고 자주 사용하는 서버에는 한방에 갈  수 있도록 설정도 했습니다.

  물론 SCP 의 경우에도 적용됩니다. 위의 설정이 끝난 다음에는 맥북 -> A 서버의 DB서버로 파일을 전송할 시에도 위의 ssh_config 에서 설정한 Host 를 그대로 사용할 수 있습니다. 

  한순간의 귀찮음을 잠깐만 극복하면... 앞으로 편해질 수 있다는 사실...
  참 쉽게 간과해버리죠. (역시 인간이란 재미있어...)

** 추:
  그리고 이번기회로 예전에 @saillinux a.k.a 세일덕이 Y모사에서 SSH 때문에 옥상에 끌려갔다는 사실을 비웃었던 것에 대해서 심심한 사과를 ...
신고
IT/Tips 2009.02.21 12:13

[ Apache ] mod_access_token 을 사용해봤습니다.

  mod_access_token 은 일본의 대형IT업체인 livedoor labs 에서 공개한 아파치 모듈입니다.

 - http://blog.livedoor.jp/edge_labs/archives/717201.html

  mod_access_token 을 사용함으로 웹사이트 상의 그림 이나 각종 파일에 유효기한을 설정해서 유저에게 일시적인 다운로드를 허용하도록 하는 것입니다. 저희 회사 같은 경우에도 중요도에 따라서 클라이언트에게 보내는 문서등에 원타임 패스워드를 발행하거나, 저런식으로 유효기한을 설정하거나, 다운로드 횟수 제한을 걸어두기도 합니다.

  아쉽게도 mod_access_token 에는 아직 원타임 패스워드나 다운로드 횟수 제한 등에 관한 구현은 없으며, 단순한 토큰발행으로 유효기한만을 설정할 수 있습니다.

  - http://code.google.com/p/modaccesstoken/
  - http://modaccesstoken.googlecode.com/files/mod_access_token-0.10.tar.gz

 위의 구글코드에서 mod_access_token 설치파일을 받을 수 있습니다. 자세한 건 그 안의 README 파일을 읽어보시면 쉽게 설명되어 있을 겁니다. 그리고 토큰 발행을 위한 방법과, 토큰 발행을 위한 펄 스크립트 코드도 제공되어 있습니다.

  제 서버에 설정해놓은 간단한 예제는 아래와 같습니다.

  우선 Location 설정을 /access 로 놓고, AccessKey 등을 설정합니다.
  그리고 토큰을 발행할 대상 파일은 아래와 같습니다.

    http://www.myemy.com/access/whitecatz.txt
 
  위 파일에 접근하면 403 Forbidden, 접근할 권한이 없다고 나옵니다.
  그래서 위 파일에 대한 토큰을 발행합니다.

  위의 tar.gz 를 해제하면 eg/sign.pl 파일이 있습니다. <URL> + <Access> + <Secret> + <Expire> 를 지정하고, 아래와 같은 URL 을 받았습니다.

   http://www.myemy.com/access/whitecatz.txt?Signature=L3D8mlK1b5HU%2BNqk2NUK0KN%2FPx4&AccessKey=bar&Expires=1245103297

  그러면 whitecatz 의 정체를 말해주는 파일의 내용을 볼 수 있습니다. 위에 발행된 URL 도 유효기한이 지나면 위처럼 403 Forbidden 이 나오겠죠. mod_access_token 은 이런 식으로 동작합니다. 조금 생각해보면 간단하게 Web App 를 연결해서 각종 업무에 도입할 수 있을 것입니다.
  개인적으로는 조금만 더 발전하면 좋겠다라는 생각도 하지만요. 뭐, 물론 Web App 로 mod_access_token 에서 하는 그런 것들이나, 부족한 것들을 구현해낼 수도 있겠죠.
신고
IT/Tips 2008.07.11 09:07

[ 버젼관리 ] SVK - 로컬에서 맘껏 커밋때리기

 올해 초(2008. 2. 22)부터 perldoc 의 번역을 계속 해오고 있습니다.
 구글코드에서 저장소 하나 받아가지고 거기에다가 열심히 커밋을 하고 있구요.
 현재 리비젼이 300번을 돌파하는 기염을 토하고 있습니다(Ownership 가진 제가 이런 말해도 될런지..;;).

 번역은 주로 지하철을 타고 오고가는 출퇴근 시간에 하고 있습니다. 한번 타면 20분 정도 운좋으면 앉아서 열심히 키보드 두드릴 수 있죠. emacs 에서 열심히 두드리고, 회사에서 인터넷 선 꼽자마자 일단은 커밋을 하고는 합니다.

 여기서 제가 든 생각이...

  "인터넷 안들어와도 로컬에서 작업하고 커밋할 수는 없을까?"

 그래서 눈을 뜬 것이 SVK 였습니다.
 (사실 집의 서버에 SVK 를 깔려다가 삑사리 맞아서 그냥 놔두고 있고, 사실 항상 인터넷 선이 꼽힌 서버에게 SVK 의 필요성은 그리 없었습니다.)

 Mac 용 SVK 패키지를 제공해주기 때문에 간단하게 인스톨할 수 있었습니다.

 그리고 구글의 저장소를 제 MacBook 에 미러링하고...
 
svk mirror http://perldoc-kr.googlecode.com/perldoc-kr/trunk //mirror/perldoc-kr/trunk
svk sync


 그 미러링한 것을 브랜치만들어서...
svk cp //mirror/perldoc-kr/trunk //mirror/perldoc-kr/branches/local/
svk checkout //mirror/perldoc-kr/branches/local perldoc-kr


 그 브랜치에서 작업하고, 작업한 것은 인터넷이 안들어와도 차곡차곡 커밋되게 된다는 것입니다.
 svk ci blahblah

 대량 커밋도 순식간에 슥삭 끝나곤 하니까 참 좋더군요(어차피 로컬 미러에 대고 하니까요...)

 그렇게 차곡차곡 쌓인 분량을 또 한번에 밀어넣는 재미도 쏠쏠하더군요.
 svk push --verbatim

 거기에 브랜치에서 저장소의 최근 리비젼도 그대로 받아올 수 있으니...
svk pull


 안그래도 올 9월에 한국에 갈텐데... 그때가 아마 회사가 바쁠 시점이라 일을 들고 갈 듯 싶어서...
 집에 인터넷이 끊겼는데 어쩜 좋지... 하는 마당에 이런 수단이 생겨서 기쁩니다(기쁜 일인지 모르겠지만;;).

 SVK 를 만든 C.L.Kao 도 지난 YAPC::Asia 2008 에서 봤었고, 그때 했던
 "Your Freesoft will be running at our company" 라고 했던 약속도 지키게 되는 것이죠.
 (사실은 슬라이드에 대고 했지만..;;)

사용자 삽입 이미지
( 근데 svk 로 커밋했을 때-- 사실은 svk push--는 저렇게 별표가 쳐지는데... 왜 그럴까요?)
신고
IT/Tips 2008.03.27 22:19

터미널 2.0 혹은 Partty! 혹은 ttyrec

사용자 삽입 이미지

이제는 터미널도 공유하자꾸나...


Web 2.0의 광풍이 해외를 몰아치고 있는 요즘에 노짱은 민주주의 2.0을 외치고...

일본은 터미널 2.0을 외치고(쿨럭 이건 제가 맘대로) 있습니다.

공유 / 개방 이라는 기치하에 FTA 요즘은 터미널도 공유하는 시대가 온 것이죠.

백문이 불여일견... 일단 왜 대단하다고 느끼는 지 한번 붙여보겠습니다.


 이정도면 좀 짱일까요?

 http://www.partty.org/


Mac, Linux, Windows 전부 지원하고 있으니.. 관심있으신 분들은 한번 해보시는 것도 좋을 듯 합니다.

자기가 하고 있는 Geek하거나... 좀 특별한 작업이나... 교육용 자료나...

뭐든지 일단 만들고 공유하는 정신... 역시 좋습니다.. >_<b

이런 비슷한 것이라고 해야할까요?

예전에 ttyrec 라고...
터미널을 녹화(?)하는 툴도 있었고, 이를 바탕으로 해서 웹서비스도 나온 것으로 알고 있습니다. 웹서비스 링크는 못찾겠네요..

사용자 삽입 이미지

ttyrec : 터미널을 녹화 재생하는 툴


 ttyrec 부터 처음 exit 까지가 녹화된 것이고

 ttyplay ttyrecord 이후로는 녹화된 것을 재생하는 것입니다.
 
 이걸 어따쓰냐고 하신다면 그냥 웃지요. 뭐... 리눅스를 공부하는 입문자나...

 HOW-TO 같은 Tip을 제공하실때 tty 로 녹화를 샥샥하면... 저같은 뉴비에게는 도움이 되겠죠?
 
 뭐 예를 들면 "아파치 섭 올리기", "MySQL 설정" 같은 걸 tty로 예를 보여주면 보는 쪽에서도

 이해가 빠를 것이라고 생각합니다. (제 착각이려나요..)

 Perl 모듈로도 있네요... Term::Ttyrec 과연.. Mr. Miyagawa!

 쓰기에는 귀차니즘을 느끼겠지만... 어떤 Tip을 저런 식으로 제공 받는 다는 것은 기쁜 일이죠.

  아무튼 공유 / 개방... FTA 빼고는 만세입니다!
신고
IT/Tips 2007.11.13 11:30

크레이지 브라우저 만들기



어제 퇴근 무렵에, IRC에 N상으로부터의 메시지가 날라왔다.

http://google-mania.net/archives/760

재밌어~

라고...

내용인즉슨....

이미지가 있는 특정 사이트에서 자바 스크립트 코드를 넣으면 7할발광모드가 시작된다는 것.

그래서 실험해봤다.

사용자 삽입 이미지

꺄호~


....

방법은 간단!

이미지 많은 사이트에 들어가서 주소창에

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI= document.images; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5 ); void(0)



요 녀석을 잡아넣기만하면 끝!

친절한 유튜브씨도 첨부~



신고
IT/Tips 2007.10.29 20:15

컨퍼런스 영상을 받아오자! Video Google

예전부터 배움의 욕구는 날로 충천하여 결국은 배움이라는 단어만으로 짜여진 배움닷컴에서 잠시 놀았던 기억이 있다.

  GVA라는 강의파일을 통한 원격강의였는데, 나름대로 신선했었다.(라는 말은 지금은 아니라는 것)

  왜 지금은 신선하지 않느냐면?
1. 고속인터넷이 되는 마당에 언제까지 펜글씨와 지지직거리는 강사 음원에만 의존하겠는가?
2. 그런 펜글씨와 강사 음원파일을 포터블 장비에서 돌릴 수가 없잖은가?
3. 당최 왜 되먹지도 않은 자료마저 다 유료라는 말인가?(강사님들께는 죄송하지만...)
4. 왜 최신 트렌드를 반영하지 않는 것인가?
그러고보니 당시 메가스터디도 GVA로 돌린 것으로 기억하고 있다.

그런고로, 펜글씨와 지지직거리는 강사 음원이 아닌 동영상과 이쁘든 안이쁘든 강사 얼굴을 보고,
파일을 포터블 장비에 담아서 어디서든 볼 수 있고, 적절하게 무료이면서
최신의 기술트렌드를 담아낸 것은 있느냐?

있다. 바로 비디오 구글이다.

물론 Youtube 페이지로 링크를 가진 것도 있지만... Google Tech Talks와 같은 자료들은

기술경향을 따르는 게 아니라... 기술경향을 만들어 내는 사람들의 이야기.

그런 컨퍼런스 자료들을 접할 수 있다.

그것도 ipod용으로 인코딩되고, 용량도 적당하고, "영어"만으로 이루어진 자료...

Perl이라면 YAPC::ASIA로 검색해서 올 4월에 있었던 YAPC::Asia 2007의 컨퍼런스 자료의

거의 전부를 얻을 수 있다. 물론 깔끔한 화질을 기대해서는 곤란하지만...

깔끔한 음질은 기대할 수 있다.

그러니 공부하자...
신고
TOTAL 483,604 TODAY 63

티스토리 툴바