힘껏 차라

TFYQA

만 원은 어디에

leave a comment »

친구 셋이 식당에서 30만원어치 식사를 하고 10만원씩 나눠서 계산했다. 하지만 이벤트 기간이어서 5만원을 할인해주어야 한다. 종업원은 이를 숨기고 2만원을 쓱싹하고 3만원만 돌려주었다. 당연히 친구 셋은 사실도 모르고 만원씩 나눠가지고 좋아한다. 자 여기서 문제. 친구 셋은 9 * 3 = 27만원을 식사비로 낸 셈이고, 종업원이 2만원을 삥땅했으니 결국 총합은 29만원이다. 아니 도대체 만원이 어디로 간 걸까?

임백준씨의 <누워서 읽는 퍼즐북> 앞 부분에 나오는 퍼즐이다. 답은 … 답은 각자 알아서 ^^;

프로그래머라면 아마 풀기 쉽지 않을게다. 아니 알아챈 답을 회피할 가능성이 더 클 듯 싶다. 그게 내가 좋아하는 프로그래머의 모습이자 한계인 지점이다.

Written by tzara

January 26, 2010 at 8:31 am

Posted in blah blah

Comment 토글 꽁수

leave a comment »

예전 VI(M)으로 코딩할 때 가끔 썼던 꽁수인데 교육 중 잠시 머리 식힐 때 심심풀이로 알려주려니 정작 떠오르지 않아서 역시나 검색의 도움을 받았다.
방법 1.
/*   –> /* 를 //*
System.out.println(“Comment”);
System.out.println(“Trick”);
/* … */
방법 2.
/*/   –> /*/ 를 //
System.out.println(“Comment”);
System.out.println(“Trick”);
/* … */
방법 3.
/*   –> /* 를 //*
System.out.println(“Comment”);
System.out.println(“Trick”);
// */
위의 응용으로
방법 4.
/*   –> /* 를 //* 하면 Line1만
System.out.println(“Line1″);
/*   –> /* 를 /*/ 하면 Line2만
System.out.println(“Line2″);
/* … */
Line1, 2 다 살리려면
//*
System.out.println(“Line1″);
//*
System.out.println(“Line2″);
/* … */

Written by tzara

January 21, 2010 at 3:08 pm

Posted in blah blah

ruby gem 재설치 삽질 기록

leave a comment »

딱 6개월 전 작업한건데 아무 기억이 없다.
처리 로직 중 중심이었던 대상 시스템의 스키마가 변경되어서 사용 중단했었던 프로그램을 이러저러한 이유로 되살려 쓰려고 열어보는데 엄두가 안난다.

그래도 겨우 고쳐서 운영 시스템에 올리려 하니 Ruby 운영 환경이 마구 깨져 있다.
초보가 결국 시간 잡아먹는 것은 이따구 환경설정 문제다. 글구 이리저리 해보다 보통 취하는 방법이 재설치다.
그래 내가 그랬다.

루비 1.8.6 버전 재설치하고 필요 gem 들 추가로 설치했다.
역시 gem install 도 호락호락하진 않다.

* oci8 설치
% gem install ruby-oci8
ruby-oci8 v2.0.3 설치 되었다. 테스트해보니 ‘undefined method ‘define_a_column’ for class ‘OCI8::Cursor’ ‘ 란 에러 발생.
http://www.ruby-forum.com/topic/182145 참조해서
% gem uninstall ruby-oci8
% gem install ruby-oci8 –version “< 2.0.0″

*activerecord-oracle-adapter 설치
% gem install activerecord-oracle-adapter –source http://gems.rubyonrails.org
뒷부분 –source 옵션 안부쳐주니 못찾더라. 별거이 다 발목을 ㅜㅜ

* magic_multi_connections 설치 : http://magicmodels.rubyforge.org/magic_multi_connections/
% gem install magic_multi_connections
테스트해보니 에러 발생. 생쇼하다 검색해보니 6개월 전 이 문제로 내가 정리해놓은 글이 뜬다. 제길슨 …
# 참고 : magic_multi_connections 에러

* tmail 설치 : http://tmail.rubyforge.org/
% gem install tmail

* log4r 설치 : http://log4r.sourceforge.net/
install 안된다. 그냥 아무 생각없이 해당 홈페이지에서 gem 다운받아서 로컬에서 gem 설치.

아, 에러 뱉어내지 않고 묵묵히 돈다 ㅜㅜ
이상 루비 개발자 없는 회사에서 사내 표준 개발 언어인 자바 대신 이런 작업에는 스크립트 언어가 적합하다란 소신으로 무작정 루비 뽑아든 초보의 삽질기였습니다.

물론 회사에서 이런 식으로 개발해선 절대 안됩니다 (먼산)

Written by tzara

December 15, 2009 at 11:27 am

Posted in ruby

품질 삼각형의 딜레마

leave a comment »

‘나는 저렴한 비용으로 신속하고 완벽하게 개발할 수 있지요. 이들 중 두 가지만 고르세요’ – 스콧 로젠버그의 <드리밍 인 코드>, 150p

프로젝트 단계에서는 주로 앞의 두 개가 압박한다. 하지만 운영 시점에서 고객은 기어코 그토록 빼어들고 싶어 안달나하던  ’완벽’ 이라는 숨은 카드를 내놓는다. 이건 개발자가 이길 가능성이 거의 없어 보이는 게임이다.

Written by tzara

June 16, 2009 at 8:14 am

Posted in blah blah, book

magic_multi_connections 에러

with one comment

전에 짰던 Ruby 프로그램 고칠 일 생겨서 Ruby 하고 몇몇 Gem 새로 설치하고 테스트하려는데 이런 에러가 …

…/magic_multi_connections-1.2.1/lib/magic_multi_connections/connected.rb:20:i
n `const_missing’: uninitialized constant {const_id} (NameError)

Dr Nic’s Magic Models 토론 그룹에 올라온 아래 글에서 제시한 방법으로 일단은 해결.

http://groups.google.co.kr/group/magicmodels/msg/3621d2a5f54191bf

해결 방법

connected.rb 20번째 줄

  • 기존 : raise NameError.new(“uninitialized constant {const_id}”) unless target_class
  • 변경 : return unless target_class

Written by tzara

June 12, 2009 at 5:17 pm

거저 먹는건 없다

leave a comment »

예전 개발이란 것 좀 해보던 시절에 정규식 아는 개발자가 드문 것을 보며 의외다라고 생각하곤 했었는데(물론 자바의 경우 jdk 1.4 버전 이 후에나 정규식 도입된게 이유라면 이유이겠지만) 오늘 groovy 책 보다가 상큼한 답을 발견했다.

어떤 프로그래머에게 한 가지 문제가 있었다. 그는 ‘정규표현식을 이용하면 해결할 수 있겠구나’하고 생각했다. 이제 그 프로그래머의 문제는 두 개가 되었다 – 어느 포춘 쿠키에서

Written by tzara

June 8, 2009 at 5:26 pm

Posted in blah blah

‘인간 ***’, ‘정치인 ***’

leave a comment »

차에서 내려서 길에서 반절 딱 하고 ‘어디 가세요’ 이래서 ‘진영 나가네’ 이러니까’어머니 저도 진영 갑니다. 제가 모셔다 드릴게요’라고 하더라.

다큐멘터리 3일에 나온 봉하사는 한 할머니께서 기억하시는 노무현 전 대통령에 대한 기억이다.

‘인간 노무현’과 ‘정치인 노무현’을 구분해야 함의 어려움은 후일 ‘인간 이명박’과 ‘정치인 이명박’ 역시 동일하게 구분해서 평가해야 한다는 주장에 맞딱뜨려졌을 때 느낄 당혹감 때문일 수도 있다.

그럼에도 여전히 ‘정치인 노무현’은 지지하지 않으나 ‘인간 노무현’ 만큼은 존경하고 애틋해하지 않을 수 없다.

문화부장관이 1인 시위를 하는 한예종 학생 그리고 학부모와 대화 나누는(?) 동영상을 보았다.

유인촌, 이번엔 1인시위중인 한예종 학부모에게 말을 걸다

적어도 ‘인간 유인촌’과 ‘정치인 유인촌’은 굳이 구별하지 않아도 됨 확실하게 각인시켜주어서 마음 개운해졌다.

봉하 할머니는 앞의 ‘그 한마디에 만점주고 대통령을 바로 봤어’라 하셨었다. 과연 그 분이 문화부장관님을 보시면 뭐라실까나?

Written by tzara

June 8, 2009 at 5:17 pm

Posted in blah blah

Hillebrand’s magic number

leave a comment »

갑자기 tweeter 는 굳이 140자로 제한할까 궁금해져서 찾아봤다.

요는 Hillebrand 란 통신 관련 연구원이 직접 타자기에서 타이핑친 후 문장 분석해보니 한, 두 문장에 평균 160자, 그 외 연하장, 텔렉스에 사용된 글자수 등도 유사하다는 것 발견했고 주변 동료들과 이야기해본 바 이 정도 길이면 의사 전달에 충분하다고 판단. 결국 이 길이로 현재의 SMS 문자 길이 결정(물론 멀티바이트이므로 한글은 80자) 되었다는 얘기.

이에 기초해서 트위터는 작성자명 20자 제하고 140자로 설계했다는 믿거나 말거나, 알아도 별 도움 안되는 지식이었슴당.

Written by tzara

June 5, 2009 at 2:47 pm

Posted in blah blah

Maus

leave a comment »

“미키 마우스는 지금까지 세상에 나온 것들 중에서 가장 저열한 모델이다. … 독립심 강하며 명예를 아는, 건전한 정서를 지닌 젊은이라면 동물 세계 최대의 보균자인 이 더럽고 오물로 뒤덮인 동물이 동물의 이상형이 될 수 없음을 깨달을 것이다. … 인류에 대한 유태인의 야만 행위를 타도하자! 미키 마우스를 타도하자! 철십자를 가슴에 꽂아라!”
- 1930년대 중반, 독일, <포메라니아>지의 신문기사
번역판 나온지도 10년이 넘은 아트 슈피겔만의 ‘쥐’라는 만화책을 얼마 전에서야 회사 동료 추천으로 읽었다. 감상평이라도 적어야지 해놓곤 차일피일 미루다 기억 한 편으로 거의 넘어가려던 참에 오늘 ‘서울 한복판 쥐와의 전쟁’, ‘OECD 국가 맞나? 서울서 `쥐잡기 운동`’ 등의 기사들이 포탈 메인에 떴다는 얘길 전해 듣고는 책 앞 장 다시 한 번 들춰보았다.
‘쥐’라고 불리우는 한 사내 때문에 책 제목만 보고도 경끼 일으킬 분들 있을지 몰라 조심스럽긴 하지만 이 만화책 심하게 추천드립니다.
p.s : 황금색 순종 포메가 순수 아리아인들의 상징인건가? 아무튼 다행이다 우리 뭉구는 잡종 포메라서.

“미키 마우스는 지금까지 세상에 나온 것들 중에서 가장 저열한 모델이다. … 독립심 강하며 명예를 아는, 건전한 정서를 지닌 젊은이라면 동물 세계 최대의 보균자인 이 더럽고 오물로 뒤덮인 동물이 동물의 이상형이 될 수 없음을 깨달을 것이다. … 인류에 대한 유태인의 야만 행위를 타도하자! 미키 마우스를 타도하자! 철십자를 가슴에 꽂아라!”

- 1930년대 중반, 독일, <포메라니아>지의 신문기사

번역판 나온지도 10년이 넘은 아트 슈피겔만의 ‘쥐’라는 만화책을 얼마 전에서야 회사 동료 추천으로 읽었다. 감상평이라도 적어야지 해놓곤 차일피일 미루다 기억 한 편으로 거의 넘어가려던 참에 오늘 ‘서울 한복판 쥐와의 전쟁’, ‘OECD 국가 맞나? 서울서 `쥐잡기 운동`’ 등의 기사들이 포탈 메인에 떴다는 얘길 전해 듣고는 책 앞 장 다시 한 번 들춰보았다(왜? 아무 이유없어 … 아니 그냥 거시기 ‘쥐’ 때문에 …).

‘쥐’라고 불리우는 한 사내 때문에 책 제목만 보고도 경끼 일으킬 분들 있을지 몰라 조심스럽긴 하지만 이 만화책 심하게 추천한다.

p.s : 황금색 순종 포메가 순수 아리아인들의 상징인건가? 아무튼 다행이다 우리 뭉구는 잡종 포메라서.

Written by tzara

May 26, 2009 at 4:25 pm

Posted in book

스크럼 : 팀의 생산성을 극대화시키는 애자일 방법론

leave a comment »

그간 우리에게 Agile 은 곧 XP 였고 Agile 관련 서적도 XP 일색이었다.

그렇게 접한 XP 의 실천 기법들을 실험적으로 소규모 팀 단위에서 적용해보면서 XP 자체에 대한 고민들이 조금씩 고개를 쳐들었다.

- XP 란 이름에 담긴 ‘Extreme’에 대한 심리적 저항을 어떻게 극복할 것인가?

- XP 적인 실천을 통해 얻어진 가치들을 어떻게 조직적인 차원으로 확대, 고양시킬 것인가?

뒤늦게 Scrum 서적(켄 슈와버, 마이크 비들 저 ‘스크럼 : 팀의 생산성을 극대화시키는 애자일 방법론’)이 번역되어 나왔고, 그 책을 또 조금 늦게 이제사 읽었다.

생경한 용어들이 몇 나오지만 의미상 유사한 개념들도 꽤 되고 XP 를 통해서 이미 접했던 기법들이 많이 있어 내용이 그닥 생소치는 않다. 아니 당신이 개발자라면 오히려 뭔지 먹은것 같긴한데 씹는 느낌은 없었다 싶을지도 모르겠다.

왜일까?

스크럼은 XP 에서처럼 엔지니어링적인 기법들이 구체적으로 정의되어 있지도 않으며 XP 만큼 ‘Extreme’하지도 않아 보인다. 다시말해 XP 란 센 맛부터 본 이들에게 이 책을 통해 본 스크럼은 그것에 비해 조금은 밋밋하고 덜 부담스럽고, 덜 공학적일게다.

느지막이 다가온(번역된) 이 밋밋함의 의미는 과연 무엇일까?

XP 를 현장에 적용하는 과정에서 떠올렸던 질문들을 스크럼을 향해 던져보자.

- 럭비에서 가져온 메타포인 이름 자체가 ‘Extreme’ 에 비해서는 훨씬 평범하며 덜 부담스럽다. 변화에 대한 저항을 극복하기 위해 ‘Extreme’한 충격 요법만이 있는 것은 아닐게다.

- 스크럼은 복잡계 이론에서 차용한 ‘자기 조직화 체계’란 개념을 이용해서 개별적인 가치들을 어떻게 조직적인 차원으로 확대, 고양시킬 수 있을지에 대한 실마리를 제시하고 있다(가령 열린 시스템, 역동성, 밀도있는 국소 상호작용 등의 개념들을 통해 ‘알아서 행동하는 독립적인 개체’로서의 ‘행위자’들 개개의 지식들이 어떻게 교환, 확산되는지 그리고 ‘창발성’이란 것에 의해 어떻게 행위자 자신 및 조직이 고양될 수 있는지 등에 설명하고 있는 장들을 살펴보라)

다시 XP 로 시선 돌려 이런 질문을 해보자. 애초의 질문이 XP 의 단점이나 한계를 드러내는 것인가?

글쎄, 현장에서의 고민, 시행 착오 속에서 우리 스스로가 성장하고 있다는 반증은 아닐까? 이제사 스크럼에 관한 책이 번역되어 나온 것 역시 이것의 현상 아닐까?

(역서 계기로 스크럼의 현재적 가치를 XP 실천 기법 중심으로 사고되고 진행되었던 우리 프로젝트 현실에서 뽑아보려 했었던 듯 한데 지금 다시 읽어보니 미친 X 널뛰기 하듯 그냥 팩 꼬꾸라져버렸다. 애초 생각 다시 풀어볼까 했지만 그러려면 원글 꽤 헤풀어야할 듯 싶어 그 부분은 숙제로 남기고 중간 얘기없이 지 혼자 멀찍이 꼬꾸라진 부분만 지운다)

이제 책 자체로 돌아와보자.

날 추워서 버스로 출근하는 날에 쉬엄쉬엄 읽어보았는데 여러 Agile 방법론 중 MS 에서 가장 많이 사용되는 방법론이란 것 외에 아는 것 없던 상태에서도 그리 오래 걸리지 않아 읽을 수 있을 정도의 부담없는 책이다.

다른 스크럼 관련 책들을 읽어보지 못한 상황에서 아직 이 책의 진가를 제대로 판단하지는 못하겠다.

- 스크럼의 기틀을 다지는데 중요한 역할을 한 책이라지만 나온지 이미 오래 되었다. 팀의 가치에서 언급된 ‘공진(coevolving)’의 개념은 스크럼 자체에도 적용되어질 수 밖에 없는 가치이다. 결국 저자가 스크럼의 과제로 뽑은 스크럼의 조직 패턴과 XP 기술의 견고한 통합 등은 이 후의 다른 책에서 확인할 수 밖에 없다.

- 방법론의 틀 정립해나가는 과정의 고민이 책 구성 자체에 영향을 미치고 있는 듯 느껴지는데 이런 구성을 따라가는 독서가 스크럼 자체의 이해에 얼마나 효과적일지 잘 모르겠다.

당장은 몇 권의 스크럼 책들 더 읽은 후 이 책 가치 다시 언급할 때가 있게 되리라 생각하지만  (XP 에 대한 국내 첫 역서였던 것으로 기억하는데) 론 제프리의 ‘XP Installed’ 를 읽고 뭔가 환해지던 느낌과 동시에 숱한 질문들 이어지던 때의 느낌, 그 충격을 기억하는 이라면 충분히 읽어볼만한 책이리라 싶다 ( 특히나 스탠드 업 미팅이 왠지 관성화되고 있다고 느껴지는 리더라면 꼭 … )

p.s :

1. 밥 아저씨가 추천사에서 “우리는 일을 통해서 자신의 고양을 경험할 수 있고, 또 그래야만 한다”라고 이 책 시작된다고 했는데 시작 장에서 이 문구 아무리 눈 씻고 찾아봐도 못 찾겠더라.

2. ‘왜 스크럼은 통할까?’ 가 아마 가장 이견 많은 장일 것이다. 스크럼 자체를 이해하는 데에는 읽어도 그만 안 읽어도 그만인 내용이다. 하지만 Agile 방법론의 사상적 배경이나 이 후 확장 방향 등에 대해 알고 싶다면 꽤 도움을 줄 수도 있는 내용이다. 이 책에 필요한 내용였을까, 아닐까?

3. 인싸이트 이벤트 도전해볼 량으로 예전 글 다시 트랙백만 추가해 올릴려다 심히 낯 부끄러워 몇몇 이음새 손질하고 글 전개에서 뜬금없이 날아다닌 부분 삭제 또는 스트라이크 처리하고 다시 올린다.

Written by tzara

May 6, 2009 at 1:36 pm

Posted in book