정말 오랜만에 보는 unix user level 나누기
# User들의 level 나누기
Beginner - Terminal에 대한 개념도 없다. - vi를 배우고 있다. - 디렉토리 개념이 없다. - 명령 끝에서 리턴키를 누르는 것을 까먹는다. Novice - ls가 디렉토리 listing이라는 것을 안다. - editor를 사용한다. - C를 들어보긴 했지만 사용해 본 적은 없다. - rm 명령을 막 쓰기 시작했다. - mail을 일고 싶어한다. - 다른 사람들이 왜 unix를 좋아하는지 궁금해 한다. USER - vi, nroff를 힘겹게나마 써 봤다. - regular expression에 대해 들어봤지만, 사용한 적은 없다. - 고정 길이 string search를 할 때 egrep을 사용한다. - 디렉토리를 옮기는 방법을 궁금해 한다. - C로 프로그램을 짜보려고 했지만 실패하고, 파스칼이 좋다고 우긴다. - dbx를 오디오의 상표라고 생각한다. - news를 읽고 싶어한다. Knowledgeable User - nroff를 문제없이 사용할 수 있고, tbl, eqn도 배우기 시작했다. - fgrep이 fast grep이란 것을 유추해 낸다. - mv명령이 디렉토리를 옮긴다는 것도 이해한다. - '도움말'이 도움이 되지 않는다는 것을 배웠다. - C 프로그램 작성하는 법을 배웠다. - 텍스트 치환하는데 sed를 한 번 써봤다. - 남이 dbx를 사용하는 것을 봤다. 하지만 본인은 사용하지 않는다. Expert - 필요할 때 주저없이 sed를 쓴다. - vi의 매크로를 쓸 줄 알고, 필요하면 ex도 사용한다. - 포스팅을 한다. - C shell 스크립트를 가끔 작성한다. - vi로 C 프로그램을 작성하고, cc를 이용해 compile한다. - &&, ||이 뭐하는 것인지 안다. Hacker - sed, awk를 완벽히 구사한다. - vi의 undocumented feature까지도 사용한다. - cat 명령으로 C 프로그램을 짜고, '!cc' 명령으로 compile한다. - source-level debugger를 믿지 못하므로 adb를 사용한다. - 자신만의 nroff 매크로를 작성한다. - Bourne shell 스크립트를 작성한다. GURU - m4, lex를 쉽게 사용한다. - cat 명령으로 어셈블리어 코드를 작성한다. - 시스템이 loading되어 있는 동안에도 kernel에 대해 adb를 돌린다. - 유틸리티 source를 patch해서 customize를 한다. - 심심할 때 device driver source를 읽는다. - 몇 개의 명령이 필요할 경우에는 make를 이용한다. - security 홀을 알지만 크랙을 시도하지는 않는다. Wizard - cat 명령으로 device driver를 작성한다. - binary를 직접 patch해서 bug를 수정한다. - 묻기 전에 답을 해준다. - 자신만의 troff 매크로 패키지를 작성한다. - 그의 first name은 Dennis, Bill, Ken 등이다.
—-
sed를 써본 적은 있고 vi, ex명령어를 알지만 nroff는 잘 모르는걸 보니 Knowledgeable User와 Expert중에 KU에 가까운 축인가 보다.
9월에 가고픈 - 자라섬 국제 재즈페스티벌
공연이란, 종류를 막론하고 챙겨서 보자면 끝없이 많지만 외면하고 살다보면 존재를 잊게 된다.
간혹 눈길을 멈추게 하는 공연이 있는데 ‘자라섬 국제 재즈페스티벌’이 몇일 전 눈에 띄었다. 잘 아는 뮤지션이 있는것도 아니지만 가서 보고싶다는 생각이 든다. 일정이 잘 풀린다면 일요일 오후엔 가볼 수 있을지도 모르겠다. 관심있을법한 분들을 위해..
“행사홈페이지 가기”:http://www.jarasumjazz.com/
참고로 행사가 벌어지는 자라섬은 경기도 가평에 있는 섬이다. 큰 비가 내리면 물에 잠겨버린다고 한다.
Introduce XML-RPC
XML-RPC는 XML을 통한 RPC다. 나는 다른 종류의 RPC에 대한 경험은 없으며 나와 비슷한 수준의 사람을 위해 조금 설명하자면, RPC란 Remote Procedure Call라는 이름에서 알 수 있듯이 네트워크를 통한 함수 실행방법이라고 생각하면 된다.
procedure와 function라는 두 용어는 같은 뜻으로 사용되는 경우가 많지만 문맥에 따라 선택되어지며 precedure가 조금 범위가 넓다고 이해하고 있다.
XML-RPC는 RPC의 메세지 프로토콜로 XML을 사용한 것이다. 이것과 유사한 기능을 하는 프로토콜로 SOAP을 들 수 있는데, 나는 SOAP을 통해 구현한 경험은 역시 없다. 그러나 문서상의 스펙으로 둘을 살펴보면 SOAP쪽이 확장성이 뛰어나지만 XML에 대한 지식이 좀 더 필요하다. XML-RPC는 namespace따위는 고려할 필요가 없고 몇 가지 정해진 Data-type만 교환할 수 있지만 SOAP는 이런 것들에서 자유롭다.
XML-RPC는 userland라는 회사에서 (더 정확하게 말하면 userland의 CEO인 데이브 워너의 주도하에) 개발되었지만 그 구현 및 사용은 오픈소스로 자유롭다. http://www.xmlrpc.com 에서 XML-RPC와 관련된 더 많은 정보를 얻을 수 있다.
XML-RPC는 서로 다른 머신간의 데이터 교환에 아주 유용하다. 우리 회사에서는 전통적으로 HTTP POST를 이용한 서버간의 데이터 교환을 자주 사용했다. 그런데 이 방식은 간단하게 구현할 수 있기는 하지만 PHP의 magic_quotes 기능과 더불어 복잡한 문자열을 보내거나 할 때 까다로운 문제점을 자주 만들어낸다. 언젠가 서버간에 HTTP를 통해 상품 목록을 보내는 기능을 구현하는걸 지켜봤는데, DB에서 목록을 읽은 후 csv로 변환을 한 다음 POST로 전송하는 방식을 썼다. 그런데 이게 참 볼만하더라… csv 변환을 할 때도 안정된 라이브러리를 사용한게 아닌데다, PHP는 POST로 전달받은 변수에 addslashes()를 해버리는 멋진 기능 - magic_quotes이 default로 on이라 원치않는 변환이 일어나기도 하는 것이었다.
성격상 이런 구현이 마음에 들지 않아서 살펴보다 발견한 것이 XML-RPC이다. XML-RPC는 HTTP를 통해 XML로 작성된 메세지를 전송하기 때문에 방화벽에 자유롭고 XML을 이용해 이기종간의 전송에 자유롭다.
XML-RPC는 몇 가지의 데이터 타입 - Int, String, Base64, Boolean, Array, Struct - 을 통해 데이터를 표현할 수 있고, 이렇게 표현된 데이터를 RPC를 호출하거나 결과값을 돌려받을 때 사용한다. 참고로 한글 문자열을 전송할 때 String type을 사용하는 것 보다 Base64로 인코딩해서 보내는게 편리하다. XML-RPC 라이브러리중에 xml의 encoding을 UTF-8과 iso-8859만 지원하는 경우가 많기 때문에 맘편하게 Base64를 사용하는게 좋다. 그리고 XML-RPC의 Array type은 순차배열이다. 혹시 연관배열(첨자가 문자열 등인)을 사용하려면 Struct type을 사용하면 된다.
—-
여기까지 적어둔지가 오래됐는데, 흐름이 끊겨버렸다. 글을 버리기는 좀 아깝고 해서 일단 여기까지 포스팅을 하고 기회가 되면 예제와 효용성에 대한 내용을 추가하기로 기약을 해보자.
부천 국제 판타스틱 영화제 단편걸적선 2004
어느 날 밤, “KBS 독립영화관”:http://www.kbs.co.kr/1tv/enter/shortfilm/index.html 을 통해 “양상추 여자와 송어 남자(영문 제목:Salad Days)”를 봤다. 20분 정도 되는 단편이었지만 여러모로 인상깊은 영화였다. 컴퓨터를 켜고 검색을 좀 해봤더니 국내에서는 부천 국제 판타스틱 영화제를 통해 소개가 된 적이 있었고, “인디스토리”:http://www.indiestory.com/ 에서는 이 영화를 포함해 “몇 편의 단편을 모아 DVD로 출시”:http://www.indiestory.com/zboard/view.php?id=indiestoryboard&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=1717 를 했더라.
낼롬 주문함.
누나 집에 가서 연속으로 모두 봐버렸다.
Salad Days 는 역시 수작이었고 ‘자연을 보는 안경’은 충격적이었다.
보고 싶은 분은 직접 사서 보세요
실용예제로 배우는 웹표준
아침에 배달된 책을 대략 30분동안 훑어봤다. 이미 웹상의 css관련 문서에서 접했던 내용이거나 업무상 고민하다 발견했던 내용들이 많았기 때문에 잠시 훑어보는 것으로 거의 파악을 할 수 있었지만, 바로 그 점이 이 책의 미덕이라고 본다. 다른 웹사이트의 css파일을 훔쳐(?)보거나 언제 어디서 봤는지 기억도 나지 않는 내용들을 한 권의 책으로 만나볼 수 있다는 점이 굉장히 가치있다. 또 ‘이 문제 어떻게 해결할까?’에 대해 몇 가지 대안을 놓고 비교하는 방식으로 구성되어 css 초심자에게 매우매우 추천하고싶다.
책의 내용은 많은 사람들이 평가했듯이 나무랄 데 없다. 다만 오렌지 2도 인쇄는 개인적으로 책의 품위가 떨어지는 듯한 느낌을 받았고 내가 받은 책은 부록 씨디가 제본풀에 잠식-_-되어있는 불량품이라 기분이 좀 상했다. 하지만 에이콘 출판사는 최근 좋은 책을 많이 출판하고 있어 참아줄 수가 있었다! 개인적으로 에이콘출판의 편집과 제본은 별로 좋아하지 않는다.