반응형
서브버전을 이용한 실용적인 버전 관리Pragmatic Version Control using Subversion의 번역서입니다. 번역서가 2006년 3월에 나왔는데, Pragmatic Version Control using Subversion, 2nd Edition이 2006년 5월에 나왔습니다. 이 책의 번역서는 없는 것 같습니다. 2판에서는 subversion 1.3의 주요한 변화들이 반영되어 있다고 합니다.[각주:1]

번역서는 조금 낯선 용어들이 보입니다. 가지(branck), 꼬리표(tag), 조리법(recipe) 등이 그에 해당합니다. 책의 짜임새는 잘 구성된 편입니다. 명령 요약도 대체로 만족합니다. 설명이 명령어 중심이라, 서브버전을 명령 줄 인터페이스에서 사용할 때 참고하기 편합니다. 기타자료로 제시된 Subversion Book도 볼만 한 것 같습니다. 어제는 접속이 안 되었는데 이 글을 쓸 때에는 접속이 잘 되는군요. 영문이며, 무료로 내려받을 수도 있습니다.

모르는 부분을 찾아 보면서 서브버전[각주:2]을 익혀야겠습니다.
서브버전을 이용한 실용적인 버전 관리 상세보기
Mike Mason 지음 | 정보문화사 펴냄
오픈 소스 버전 관리 시스템인 서브버전(Subversion)의 효과적인 활용을 담고 있는『서브버전을 이용한 실용적인 버전 관리』. 이 책에서는 버전 관리 시스템을 최대한 활용하기 위한 여러 기본적인 조리 법들을 제시하고 있다. 《서브버전을 이용한 실용적인 버전 관리》에서는 왜 서브버전인가와 버전 관리의 기초, 서브버전 체험하기, 활용법, 저장소에 접근하기, 자주 쓰는 서브버전 명령들, 저장소에 프로젝트 만들기 등으로
  1. http://www.pragprog.com/titles/svn2 [본문으로]
  2. subversion은 영어 단어로 전복, 파괴라는 뜻을 가지고 있습니다. sub_version이라고 해석할 수도 있어서 재치있는 작명으로 생각합니다. CVS보다 뛰어나자는 마음에서 그런 의미를 지닌 단어를 택한 게 아닌가 추측합니다. [본문으로]
반응형
반응형
미루어 두었던 SyntaxHighlighter를 설치했다.
다음은 예시 코드.

<?php
class SqliteConnection extends BaseConnection {
  // ...
}
register_driver('sqlite', 'SqliteConnection', 'Sqlite Database');
?>
소스코드를 블로그에 게시할 때 예쁘고, 줄 번호가 붙어서 보기 편하다. 자바스크립트 등을 불러와야 하기 때문에, 접속이 다소 느리게 되는 일을 감수해야한다. 티스토리에서 사용하기 위해, "스킨"-"직접올리기" 메뉴를 통해 스타일시트, 스크립트, 플래시 파일을 업로드 한다.(희한하게도 전부 images 디렉토리에 올라간다.) 그 이후 HTML/CSS 편집을 통해 경로 설정을 해 주었다.

Usage를 따라서 설정을 해 두고, Making it Work 부분에서 처럼 shCore.js가 다른 언어 자바스크립트의 상단에 위치해야 한다. 그 밑에 두 줄에서

<script language="javascript">
  dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf';
  dp.SyntaxHighlighter.HighlightAll('code');
</script>
가 있는데, clein의 comment처럼

<script language="javascript">
  window.onload = function () {
    dp.SyntaxHighlighter.ClipboardSwf = '/flash/clipboard.swf';
    dp.SyntaxHighlighter.HighlightAll('code');
}
</script>
로 바꾸어야 제대로 작동했다. 티스토리 편집기에서 HTML 모드로 편집하다가, WYSIWYG 모드로 바꾸니깐, 소스 코드 부분에서 줄 바꿈을 했던 부분에 <br />이 강제로 붙어서 소스가 한 줄로 표현되어버리는 현상을 겪었다. HTML 등의 소스코드를 쓸 때 <(less than) 부등호는 &lt;으로, >(greater than) 부등호는 &gt;으로 바꾸어서 써 줄 필요가 있다.
반응형
반응형
snowall님의 텍스트큐브 건의사항에서 읽고, 언젠가는 해 봐야지 하고 마음을 먹고 있었는데 이번에 실천을 해 보게 되었다. 사용한 태그를 세어주는 사용할 수 있는 플러그인이 없으니[각주:1] 수동으로라도 세어보는 방법을 생각했다.

일단 자기 블로그에서 태그 페이지를 들어간다. 그 방법은 'http://블로그의 주소/tag'로 The note of Legendre(지금 보고 계신 블로그)의 경우 태그 페이지는 http://legendre.tistory.com/tag이다. 스킨에서 태그 또는 tag list 등의 메뉴가 지원된다면 그 곳을 클릭해서 태그 페이지로 들어가도 좋다.

태그 페이지

태그 페이지로, 블로그에서 사용했던 태그들이 나열되어 있다.


이제 이 페이지를 쉽게 다루기 위해 로컬에 저장한다.
파이어폭스에서 웹페이지 저장하기

Firefox에서 웹 페이지를 저장하는 모습

메뉴를 누르고 나면, 어디에 저장받을 것인지를 확인하는 창이 뜨는 데 자신이 찾기 편한 곳에 저장해 두면 된다. Microsoft Internet Exploerer를 웹브라우저로 사용하는 경우에도, '파일-다른 이름으로 저장' 메뉴를 통해 자신의 컴퓨터로 페이지를 내려받을 수 있다.
우클릭 메뉴 모습

파일에 마우스로 우클릭해서 메뉴를 띄운 모습


내려받은 파일에서 웹 페이지(확장자가 .html 인 파일)에서 마우스 포인터를 두고, 오른쪽 버튼을 누르고 연결프로그램에서 텍스트 편집기 프로그램(이를테면 메모장, gVim…)을 선택한다. 연결프로그램이 나오지 않을 경우 Shift 키를 누른 채 오른쪽 버튼 클릭을 해 본다. 원하는 텍스트 편집기 프로그램이 보이지 않을 경우, 프로그램 선택을 눌러서 선호하는 편집기 프로그램을 골라 열 수 있다.
사용자 삽입 이미지

편집기 화면


저장된 페이지를 편집기로 연다. 7번째 줄에 <link rel="stylesheet" ... style.css> 라는 부분이 있는 데 이 줄 전체를 지워 준다. 스타일시트가 적용된 채 페이지를 열면 리스트 태그를 바꾸어도 숫자가 표시되지 않기 때문이다.
<ul>

<ul> ul(unordered list)이 시작하는 부분

<ul> 끝

</ul> ul이 끝나는 부분



쭉 내려가서 300번째 줄 이후에 <h3>태그[각주:2]</h3>이라는 부분이 보인다. 그 밑에 <ul> 이라는 부분이 있는데 이를 <ol>로 바꾸어 준다. 그 밑에는 <li>로 시작하는 태그들이 줄줄이 나열되어 있다. 이 태그 리스트의 나열 부분이 끝나는 부분에 </ul>이 있는데 이 태그도 </ol>로 바꾸어 준다.
(태그를 리스트 형식으로 지정하고 있는데, ul은 unordered list의 약어라서 이를 ol(ordered list)로 바꾸어 준 것이다. 이렇게 바꾸고 나면 번호를 웹 브라우저에서 매겨 준다.)

이제 파일을 선호하는 웹 브라우저로 열어준다.

익스플로러의 경우 보안설정에 따라 "사용자의 컴퓨터를 액세스할 수 있는 액티브 컨텐트를 표시하는 것을 차단했습니다"가 노란 막대로 위에 주소창 밑에 나올 수 있는데 이번 일에 크게 관련은 없다. (html 파일 내에서 불러오는 경로에 있는, 자바스크립트의 실행을 차단했다는 의미로 보인다.)

예시 결과는 다음과 같다. 각 태그 리스트에 번호가 붙기 때문에 태그 리스트의 끝 부분에 가서 앞에 매겨진 숫자를 살펴보면 전체 몇 개의 태그를 사용했는지 알 수 있다.
웹 브라우저 화면

수정한 페이지를 연 화면

웹 브라우저 화면 2

연 페이지의 스크롤을 내린 화면

이 글을 공개하기 전에 621개의 태그를 이 블로그에서 사용했음을 알 수 있다.
  1. 티스토리 이용자의 경우 플러그인은 기본으로 탑재되어 있는 것만 사용 가능하다. [본문으로]
  2. 스킨에 따라 이 내용은 Tag Cloud 등으로 다른 이름일 수 있다. [본문으로]
반응형
반응형
PHP in Action(부제: Objects, Design, Agility)을 읽고 있습니다. 정말 좋은 책입니다.
이 책의 resource를 잠시 나열하겠습니다.
...
  1. Beck, Kent. Test-Driven Development by Example. Addison-Wesley. 2003.
    1. 테스트 주도 개발. 인사이트 2004.
  2. Evans, Eric. Domain-Driven Design. Addison-Wesley, 2004.
  3. Feathers, Micheael. Working Effectively with Legacy Code. Prentice Hall, 2005.
  4. Fowler, Martin, et al. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999
    1. Refactoring(한글판). 대청. 2002.
  5. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns. Addison-Wesley, 1995.
    1. GOF의 디자인 패턴(개정판). 피어슨에듀케이션코리아. 2007.
      ...
  6. Bushman, Frank, et al. Pattern-Oriented Software Architecture. John Wiley & Sons, 1996.
  7. Shiflett, Chris. Essential PHP Security. O'Reilly, 2006.
    1. PHP 보안: 몇줄의 코드로 안전하게. 한빛미디어. 2006.
  8. Martin, Robert C. Agile Software Development. Principles, Patterns, and Practice. Prentice Hall, 2003.
책에서는 Part 1에서 "도구와 개념"을 논하고, Part 2에서는 "테스팅과 리팩터링"에 대해 논합니다.  Part 3에서는 "웹 인터페이스 빌드하기", Part 4에서는 "데이터베이스와 인프라스트럭처"를 논하고 있습니다.
부록에서는 "테스팅을 위한 도구와 팁"(Simple Test, PHPUnit와 같은 단위 테스팅 프레임워크에 대해), "보안" (SQL injection, XSS 등에 대해)등 간과하기 어려운 주제를 간략히 서술하고 있습니다.

이렇게 파격적인 구조로 이루어진 한글로 된 PHP 책은 아직까지 발견하지 못했습니다. 국내에 들어와 있는 "무작정 따라하는" 책에서는 PHP 문법은 무엇인지 암기하도록 독려하고, 예제를 들어 독자로 하여금 따라할 것을 요구하여 왔습니다. MySQL이나 Apache와 통틀어서 한 권의 책으로 다루어지는 일도 빈번했습니다.

건강한 웹 애플리케이션을 위한 설계와 개발 원리(단위 테스팅, 리팩터링, 디자인 패턴)에 대해 특정 언어에 적용하여 설명하고 있다는 점에서, 이 책은 정말 가치 있다고 생각합니다. PHP에 대해 기초적인 지식이나, 다른 프로그래밍 언어를 다루어 본 적이 있고, PHP를 당장 실무에 적용해야 할 일이라면 이 책이 적임이라고 봅니다.
p.s.
  1. 책의 저자 중 한 명인 Dagfinn Reiersøl의 블로그 PHP in Action이 있다. 드물게 포스팅이 이루어지나, 경험에서 우러나온 유익한 글이 많아 보인다.
  2. Manning에서 제공하는 Forum: PHP in Action이 있다.

PHP IN ACTION : Objects, Design, Agility 상세보기
Reiersol, DagfINn/ Baker, Marcus/ Shiflett, Chris 지음 | Oreilly & Associates 펴냄
반응형
반응형
티스토리 공지사항에 보면, 티스토리 초대장을 받으시고 난 뒤 블로그를 생성하여
스팸블로그(혹은 스플로그)로 사용을 하실 경우,
신고되어서 스팸센터에 제한조치가 걸리는 일이 일어날 수 있다는 등의 주의사항이 들어있습니다.


초대장이 모두 소진되었습니다. 97번째 부터 댓글을 다신 분께는, 초대장을 드리기 어렵게 되었습니다.
이 점 양해하시고, 다른 블로그에서 초대장을 구하시길 바랍니다.
12월도 다 가고 있습니다. 티스토리 초대장 24장 있습니다.
초대장이 2장밖에 없어서, 이런 포스팅을 올리기가 9월에는 부담스러웠는데
10월에 30장이 추가로 충전되어서 이런 포스팅을 올리기에 적당한 시기라고 생각합니다.
(티스토리 초대신청 페이지에서는 열심히 활동하면 충전이 된다고 써 있네요.)

티스토리 초대장을 받으시려면 이 포스트의 댓글에 전자우편 주소를 반드시 남겨 주셔야 합니다.
이메일 주소가 외부에 공개되는 게 꺼려지시면 비밀글로 남겨주시는 것도 좋은 방법입니다.
블로그의 운영목적도 같이 써 주시면 더 좋습니다만,
불편하게 느끼실 분도 있을지 몰라서 원하신다면 같이 기재해주세요.
(초대장을 보내는 순서에 참고가 된답니다. ^^)

주의: 탈퇴를 하신 티스토리 회원이셨던 분께서는,
한달 동안 초대가 제한되는 경우가 있으니 참고하시기 바랍니다.

티스토리에 오셔서 즐거운 블로깅하시길 기원하겠습니다.
감사합니다.
반응형
반응형
Professional 소프트웨어 개발을 읽었습니다. 스티브 맥코넬 씨가 지은 책인데요, 번역서가 2003년에 초판이 발행되었네요. 책의 용어를 사용하자면 이 책은 SWEBOK(Software Engineering Body of Knowledge)에서 변하지 않는 범주에 속하는 책이라고 여겨집니다.

책을 읽고 나서 곰곰이 생각하게 된 것은, 컴퓨터과학과 소프트웨어공학 사이의 격차인데요. 일단 컴퓨터과학은 현업에서 그 가치가 크게 인정받지 못하더라고, 다른 과학자와 주로 관련을 맺는 점에 반해, 소프트웨어공학은 현업에서 실제로 소비자와 부딪치기 때문에 여러가지 제약 조건들을 숙지하고 있어야 한다는 점이 인상적이었습니다.

마지막 파트인 업계의 프로정신에서 다루어진, "혁신의 확산"에 대한 그래프가 있었는데요. 선각수용자와 전기 다수의 캐즘(chasm)을 다루고 있는 부분이 있었습니다. 혁신자보다는 적은 위험을 안는 선각수용자들은 XP나 스크럼 등 애자일 방법론을 적용하는 쪽이고, 전기 다수인 사람들은 역량 성숙도 모델(CMM) 종류를 적용하는 것이라고 생각했습니다. 책에서는 Code&Fixing(일단 코드를 작성하고, 나중에 고치는)을 가장 피해야 한다고 했는데, 이 부분에서 가책을 느꼈습니다.

책의 역자서문에서는 Rapid Development나 Code Complete를 스터디하기 전에, 다소 추상적인 에세이들이 모인 이 책을 먼저 읽을 것이 추천되고 있습니다. 소프트웨어공학 분야를 아우르면서, 동시에 "프로페셔널"하다는 것에 논한다는 점에서 신선한 자극을 주는 책이락 생각합니다.
반응형
반응형
Xper[각주:1] 2007년 송년회(기記년회[각주:2])를 다녀왔습니다. 난생 처음 그리스 음식도 먹어봤네요. 잊지 못할 경험이 될 듯합니다.  중간에 나온 가지에 담긴 음식이 있었는데, 정말 맛있더라고요.
 
발표자료 준비하면서, 워낙 슬라이드 준비하는 것도 그렇고 발표하는 것도 되게 어설퍼서 어떤 내용을 넣을까 고민을 해왔어요. 그런데 막상 모임 장소에 딱 도착하자마자 PyO님 앞에 앉게 되었는데, 경수님이 환한 미소로 반갑게 맞아주셔서 긴장도 좀 풀리고 저에겐 도움이 되었습니다. 경수님은 "창의성은 어디에서 오는가?"라는 주제로 발표해 주셨는데 "의식의 흐름"이라는 기법이 인상적이더라고요. 저는 이상처럼 문학가 분들만 사용하는 방식인 줄 알았는데, 슬라이드를 준비하는 데에도 충분히 적용될 수 있구나 하는 감명을 받았어요. 늴리리야 노래를 못들은게 아쉽습니다. ^^;;

따로 적어두었으면 더 선명하게 기록을 했을텐데, 두서없이 발표 내용을 나열해 보자면...

지적재산권에 관심있다고 해주신 은경님의 "목표와 목적"에 대한 발표가 공감이 많이 되더라고요. 목적을 따라가야 하는데, 어느 사이에 목표가 목적으로 바뀌어 있는 경우가 종종 있었거든요. 심정적으로 목표에만 지나치게 생각하다가 그런게 아닌가 생각했었는데, 잘 뚜렷하게 구분해야겠다는 생각했습니다. 예전에 라이센스 관련해서 궁금해가지고, CC 비영리 라이센스와 구글 애드센스는 충돌할까?라는 글을 올려본 적이 있는데 나중에 또 뵙게되면 여쭤보고 싶네요.

TRIZ 발표해주신 승백님의 발표도 인상깊었던 게 도식을 이용해서 설명하신 부분이었는데요. 사실 이전에 TRIZ라는 걸 얼핏 신문기사에서 본 느낌은 있었느데 구체적으로 그림을 보니깐 더 관심이 가더라고요. ^^

아발론 연대기 소개해 주신분 정말 감사했어요. 마침 학교 도서관에도 책이 있고 해서, 겨울 방학을 심심하지 않게 보낼 수 있을 것 같아요. 아더왕에 대한 오해나 편견도 깰 수 있는 계기가 될 것 같고요. 그리고 좋은 소설을 찾고 있던 중이었는데, 마음을 굳혔습니다. ^^

이나무님의 발표도 들었는데요. 발표에서 아내를 사랑하시는 마음이 느껴져서 감동적이었어요. 인류를 위한 사랑으로 끝맺음을 하셨는데, 정말 따뜻한 발표였습니다.

애자일 방법론으로 결혼 준비를 하셨다는 발표도 있었는데요. 아마 가장 유쾌했던 발표가 아니었나 생각하게 되었어요. 압권이었던 대목은 "요구사항이 자꾸 바뀌기 때문에..사용자 스토리도 써 가면서"(이런 내용이었던 듯)였습니다. 앞으로도 계속 행복하시길 기원합니다.

입사하셨는데 사수 분이 설명도 잘 해주지 않고 짝 프로그래밍부터 시작했다는 에피소드의 발표도 있었는데요. 발표를 듣고 나서, 다른 분이 자세히 설명해 주시는 것도 좋지만 스스로 학습한 것만큼 더 기억에 남는 건 없다는 교훈을 얻게 되었어요.

파인만은 "파인만씨 농담도 잘하시네!"도 읽고, "Lecture of Physics" 때문에 재미있고 훌륭하신 물리학자임은 알고 있었는데 "파인만 학습법"을 소개해주신 분도 정말 감사했습니다. 한번 저도 적용해보고 싶네요. "오픈 시큐리티"가 잘 되셨으면 좋겠습니다.

준석님은 P-Camp에서 이전에 한 번 뵌적 있었는데, 우연히 여기서 뵙게 되어서 반가웠어요. 슬라이드 그림이 정말 멋있었습니다. 말씀도 잘하시고, 나중에 전체적으로 발표가 끝난후 WoC 이야기도 해주시고 이모저모 감사했습니다.

선아님은 어디서 얼굴은 뵌 적이 있는 것 같은데.. 하는 느낌이 들었는데 P-Camp 2회 때 OST 마무리하면서 그 때 멀리서 뵈었다는 걸 깨닫게 되었어요. 발표를 유쾌하게 진행해 주셨는데요, 열정적인 모습이 기억에 남았어요. (저도 열정을 수혈받은 느낌이 드네요. ^^)

웹개발 2.0 루비온레일스의 저자이신 대산님도 뵈었습니다. 발표를 듣는데 공부가 즐겁다고 하셔서, "혹시 엄마친구아들이신가?" 하는 생각도 했어요. 대학 때 수학이랑 물리를 좋아하셨다고 했는데, 저도 전공이 물리라서 호감을 느꼈어요. (실력은 부족하지만 저도 수학을 좋아해요.)

정훈님은 정말 따뜻한 느낌이 나는 사람이었어요. 발표가 끝난후 단위테스트를 도입해서 쓰고 있으시다는 이야기 들었는데요, 기회가 닿는다면 좀 더 이야기를 듣고 싶네요.

창준님의 발표는 파격적인 느낌이 강했어요. 발표 시작할 때 돈키호테가 부른 노래도 들려주시고, 추천해주신 돈키호테 뮤지컬에 관심이 갑니다. "이너 골프"에 대한 이야기도 듣고, 여분의 슬라이드가 궁금하네요. 아, 그리고 아기 정말 이쁘던데요. 세상을 연결하라는 의미에서, 세연이라고 이름을 지으셨다는데 정말 좋은 의미인 것 같아요.

펭도님의 발표에서는 누구나 디자인 할 수 있다라는 것과, Brass Band를 창업하신 회사에 적용하고 있다는 이야기가 마음에 다가왔어요. 주당 16시간 근무를 목표로 근무시간을 줄여나가고 있다고 하셨는데, 긍정적인 결과로 나타나길 기원할게요. 이번 행사의 스태프로 힘써주셨는데 감사합니다. :)

박일님의 발표는 리니지 2의 Credit 화면을 보여주셨어요. 확실히 프로그램에 개발하신 분들의 이름을 적는 것은, 개발하시는 분들의 입장에서는 만들고 계신 프로그램에 대해, 더 사랑할 수 있도록 하게 되는 계기를 마련해 줄 것이라고 생각해요.

미디어아트를 하시는 승준님의 발표는, "포토 모자이크"가 여러 스케일에서 이루어지는 영상을 보여주셨는데요. 각 사진으로 큰 사진을 구성한다는 게 멋있다는 느낌이 들었습니다.

스페인어를 잘 하신다는 우경님의 발표는, 재미있게 들었어요. 온라인 학습 생태계에서 이나무님과 같이 일하시고 있다고 들었는데요. "몸을 움직이지 않으면, 살아있다는 느낌이 들지 않는다."라는 말을 인상깊게 들었습니다. 언제 한번 실력 발휘 해주셨으면 좋겠어요. ^^

세계여행을 가고 싶다고 발표해주신 분도 있었고요(정말 부러워요), 그 분의 아내 분이 커피에 대한 이야기를 해 주셨는데요. "안암동 보헤미안"이라는 곳을, 꼭 가보고 싶다는 마음을 먹게 되었습니다. 미처 그런 장소가 있는지 몰랐어요.

제일 마지막으로 발표해주셨던 미진님. XP를 먼저 경험했다가 지금은 그런 쪽과 거리가 먼 회사에서 근무를 하시니깐 주변에서 "타락한 천사"라고 부른다고 하셨다는 점이 기억에 남네요. 기년회의 스태프로 임해주셨는데 감사합니다. ^^

모든 참여자가 발표를 해서, 저도 발표를 하게 되었어요. 슬라이드 안에 포함된 이미지들은 저작권이 있는 이미지가 있고요, 발표를 할 때 슬라이드 내에서 인용의 목적으로 사용했는데 공정한 관행에 합치되지 않는 인용이라고 생각하시면 댓글이나 방명록을 통해 알려주시면 좋겠습니다. 그리고 이 이미지들은 CCL 적용을 받지 않으며, 각 저작자에게 저작권이 속합니다. 슬라이드 내에 출처 표시는 되어 있습니다.
All Images in slide are copyrighted works. I used them only for quotation (or fair use), but if you think this violates their copyright, please let me know the fact by comment or guestbook. These are not applided in CCL, and each copyrighter have their copyright on each image. I expressed source of each image in a slide by URL.


좋은 분들의 이야기도 많이 듣고 했는데, 전부 기억하지 못해서 혹시라도 포함되지 않으셨다면 양해를 부탁드려요. (--)(__)  서로의 열정과 에너지가 기년회를 통해 전파되고, 모임에 참여한 사람들이 전체 발표 세션이 끝난 이후에 편안한 분위기에서 이야기를 나눌 수 있다는 점이 좋았습니다. 발표자료를 준비하면서 한 해 전체를 회고하는 계기도 되고, 다른 분들의 회고하는 스타일과, 그 회고에서의 핵심적인 교훈들을 배웠습니다. 저는 집이 멀어서, 11시 15분 쯤에 나왔는데, 집에 도착하니 새벽 1시더라고요. 앞으로도 기회가 닿는다면 참석해서 계속 좋은 경험을 나누고 싶습니다. 감사합니다.

0123
  1. 한국 eXtreme Programming 사용자 모임으로, 익스트림 프로그래밍과 같은 책이나, What is Xp와 같은 글이 XP를 아시는 데 도움되실 듯합니다. [본문으로]
  2. 디벨로퍼 웍스의 망년회 대신 기년회라는 글을 참조하세요. [본문으로]
반응형
반응형
"Release it! 성공적인 출시를 위한 소프트웨어 설계와 배치"를 읽었습니다. Hani님 블로그인 Talk about Software with hani를 틈틈이 구독하다가 베타리딩 공지를 보고, 참여할 수 있게되어 더욱 기억에 남는데요. 12월 7일 있었던 베타리더 모임 때 Hani 님이 쓰신 메시지가 담긴 책을 받게 되어 기뻤습니다.

이 책은 프로젝트를 완성하고 나서 그 이후라는 시점에 대해 집중하고 있습니다. 2장에서 소개되는 사례연구 중 하나인 "항공사를 정지시킨 예외(Exception) 사건"이 있는데요. 실제로 모든 버그에 대해 릴리스하기 전에 대처하기는 어렵습니다. 이런 버그가 미칠 수 있는 영향을 최대한 축소시키는, 설계를 채택하는 방법이 논의되고 있습니다.

깊은 인상을 받았던 곳은 4장 안정성 안티패턴에서 언급된 "느린 응답"입니다. 저도 어떤 웹 페이지에 들어갔는데, 불러오는 과정이 더디면 무의식적으로 페이지 새로 고침을 누르곤 했습니다. 이런 사용자의 행동은 웹 서비스의 트래픽을 더 무겁게 할거라고 예상되는데요, 이런 부분에서 저자의 통찰력을 느꼈습니다.

프로젝트 출시 이후의 삶을 다룬다는 점에서, 실용적인 도움이 될 수 있는 책이라고 생각합니다. 이 책은 지난 번에 소개해드렸던 "Ship it!"을 읽었습니다와 같은 시리즈입니다.
RELEASE IT: 성공적인 출시를 위한 소프트웨어 설계와 배치 상세보기
마이클 나이가드 지음 | 위키북스 펴냄
성공적인 출시 이후를 위한 소프트웨어의 설계와 배치를 다루는 전문서. '엔터프라이즈급'의 소프트웨어 시스템 개발자를 대상으로, 소프트웨어가 출시 이후, 혹독한 현실에 맞설 수 있도록 설계하고 배치하는 방법을 안내한다. 작동시간을 지속시키는 방법을 가르쳐주면서, 용량을 최적화하는 방법에 대해 중점적으로 다루고 있다. 또한 데이터 센터에서 사용하는 소프트웨어를 만들 때 아키텍트가 고려해야 하는 일반적인 디자
반응형
반응형
2007년 12월 1일 금년 마지막이 될, 다섯 번째 루비세미나에 다녀왔습니다. 장소는 4회[각주:1]와 동일했습니다.

사용자 삽입 이미지

5회 루비 세미나 사진


첫 번째 발표는 Daum 캘린더 개발이야기. 관심이 갔던 부분은 SeeSaw인데요. 서버를 재시작하지 않고 중단하는 서버를 부분으로 나누어서 각각 갱신하는 점에 매력을 느꼈습니다. RoR로 운영되는 서비스라고 하셨는데, 좋은 선례가 되었으면 좋겠습니다.

두 번째 발표는 ETRI에서 YouFree. 휴대 가능한 작업 공간을 목표로 개발되었다고 합니다. 오픈소스이고 InstantRails 기반입니다. 집에서 USB로 꽂고 사용해 봤는데, 말씀하신 대로 하드디스크나 외장디스크에 복사해서 쓰시는 편이 더 좋을 듯합니다.

세 번째 발표는 Ruby와 Rails를 이용한 진짜 개발. 첫 부분인 Getting Real에서 다루어진 주제는, 애자일 흐름과 상응하는 부분이 많아서 공감했습니다. 배포 부분도 잘 모르고 있었는데 여러 경우로 나누어 설명해 주셔서 큰 도움이 되었습니다. 중간에 사진들도 재미있었어요. ^^ 발표 내용은 ikspres님의 블로그에서 5회 루비세미나를 참조하세요.

네 번째 발표는 2007년 크리스마스 선물이 될 예정인 Ruby 1.9에 대한 소개였는데요. 이번에 새로 지원되는 해시 표기법을 보니, 더 간단하다는 느낌이 드네요. String에서도 Enumerable을 버리고 문자 자체를 출력하도록 하는 것도 좋아 보여요. ASCII 코드값보다 더 자주 쓰여서 기존의 불편한 점이 해소될 거라고 봐요. GEM이 기본 배포에 포함되고, YARV(VM)도 포함된다고 하는데 기대가 됩니다. 발표하셨던 분이 참조하셨다고 이야기 해주신 Changes in Ruby 1.9의 링크를 겁니다.

다섯 번째 발표는 RESTful 웹 서비스 소개였는데요. RESTful Webservices라는 책을 도서관에 신청만 해두고 아직 읽어보지 못한 상태였는데, 핵심단어를 슬라이드에 띄우고 잘 설명해 주셔서 좋았습니다. REST에 대해 REpresentational State Transfer라는 표면적 의미보다는, 더 자세한 의미를 듣게 되어서 기뻤습니다.

여섯 번째 발표는 JavaScript on Rails였는데요. RJH, Lowpro(with RJS), JQuery 세 방식으로 구현된 잘 짜여진 예제가 매우 인상깊었습니다. 웹에서 행동을 분리하는 움직임은 DOM 스크립트라는 책을 읽을 때도 들었던 이야기인데요, 자바스크립트를 사용할 수 없는 설정이라도 작동이 온전히 이루어질 필요가 있다는 데 동감합니다.

일곱 번째 발표는 meet the Nginx였는데요. Nginx를 왜 채택했는지 경험에 기초해 이유를 설명해 주시고, 도입하고 나서 겪으셨던 어려웠던 경험들을 공유해 주셔서 좋았습니다. timeout default와 ignore_invalid_headers 두 가지였습니다. lockdown이 팁으로 나왔는데, 공부가 많이 부족해서 잘 이해를 못했습니다.

여덟 번째 발표는 봇을 위한 페이지 캐싱이었는데요. 운영하시는 서비스의 로그 분석 결과를 보고(특정 검색엔진의 봇이 한 서버에 그렇게 많은 부하를 준다는 사실에 대해 놀랐습니다.), 그 문제를 해결하기 위해 어떤 방법을 사용하셨는지 이야기해 주셨습니다. 하지만 생각했던 것보다 효과가 잘 나타나지 않았던게, 봇이 똑똑해서 같은 페이지에 대한 Hit Ratio가 낮기 때문이라고 합니다.

번외로, deepblue님이 slugger에 대한 유인물을 2장 정도로 정리해서 나누어 주셨습니다. slugger는 me2day와 springnote의 open API로 DB없는 blog를 구성할 수 있게 한다고 이해했는데요, 정말 신선하고 재미있는 프로젝트라고 생각해요. 문서에서 slugger에 대한 deepblue님의 사랑이 느껴집니다. 발표가 모두 끝난 후, 인사이트에서 후원해주신 루비 관련 도서 5권을 rand 함수를 돌려서 추천했는데요, 당첨되신 분들 축하드립니다. ^^
(저는 ㅠㅠ)

루비 사용자 커뮤니티가 점점 커지는 모습이 보인다고 많은 분들이 말씀하셨습니다. 루비 세미나 참석해서 정말 즐거웠고, 많이 배워갑니다. 내년 6회 세미나를 기대해 봅니다.
반응형
반응형
2008 매시업[각주:1] 경진대회의 부대행사로 열린, 매시업 엑스포에 다녀왔습니다. 9개월 전에 매시업 세미나를 다녀오고 나서[각주:2]라는 글을 올린게 엊그제 같은데, 어느새 2회를 맞이하는 경진대회를 보니 감회가 새롭네요.

수업이 1시에 끝나고 난 후 시간을 맞추기 위해 점심도 먹지 못하고 지하철 전동차에 탔습니다. 다행히 낮 시간대라 앉아서 갈 수 있었죠. 제가 신청했던 시간은 15시~16시 였고 20분정도 여유있게 삼성역에 도착하고 나서 조금 안심했는데, 그게 아니었습니다.

태평양홀 부근에는 무슨 개회식 같은 걸 하는 중인지 분주하고 복잡한 양상이었고, 등록대는 5개인데 사전등록과 현장등록을 담당하는 분이 각각 한 분씩이라 줄이 꽤 길어진 상태였습니다. 늦게나마 줄을 서서 꾸준히 기다린 다음에야 통행권을 얻을 수 있었죠. 패스에는 이름이 써 있는게 아니라, RFID 종류의 칩이 붙어있는 것 같았습니다. (자세한 정체는 모르겠네요.)

사용자 삽입 이미지

통행권


매시업 엑스포의 위치도 헤매서 엉뚱한 쪽으로 끝까지 갔다가 다시 반대편으로 방향을 돌려 올 수 있었습니다. 일단 등록대에서 등록 확인을 하고, 9개의 튜토리얼을 들은 후 pass를 받는 명찰을 등록대에서 주시더군요.

먼저 me2day 부스에 찾아갔습니다. 기억도 해 둘겸 me2API 사용설명서도 링크를 겁니다. get_latests, get_friends, create_post를 kkung님의 큰 도움으로 실습해볼 수 있었습니다. me2API 클라이언트 라이브러리를 java로 구현해주신 rath님도 뵐 수 있었습니다. 미투데이 만드시는 codian님, 멘토로 오신 dahlia님도 뵈었고요. (전부 소개해드리지 못한 점을 양해해 주세요. ㅠㅠ) create_post를 실습하니깐 미투데이 API로 입력하는 글로 실제로 제 페이지에 포스팅된 걸 확인하는 일은 인상깊은 경험이었습니다.

오픈마루 부스에서는 지난번에 오픈랩 때 뵈어서 그런지 월반(?)을 해서 시험만 치고 pass를 했습니다. 오픈마루 매시업 센터::API 센터 링크를 걸어 둡니다.

마이크로소프트 부스에서는 실버라이트로 플리커와 연동되는 매시업들을 볼 수 있었습니다. PopFly로 쉽게 매시업 서비스를 만들 수 있다고 하시더군요. 저는 이 부분을 보면서 Pipes가 연상이 되었습니다.

다음(Daum) 부스에서는 Channy 님께 인사도 드리고(자주 뵈서 그런지 저를 알아보시는 것 같습니다. =ㅅ=;;), 매시업 수업을 들었습니다. 세 언어로 다음 부스에서 진행되고 있었는데, 맨 오른쪽에 Python이라고 모니터에 붙어 있길래 그곳에서 들었습니다. 이미 파이썬 쪽에서 듣고 계신 분은 벌써 매시업을 만들어 본 경험이 있으시더라고요. 튜토리얼이 시작하기 전에 저에게 파이썬으로 듣겠다는 두번째 사람이라고 하셔서 조금 놀랐습니다. 파이썬마을도 꽤 오래된 곳인데 의외였습니다. 도서검색 API로 설명을 해 주셨는데요 친절하신 설명 덕분인지 이해가 잘 되었습니다.
Daum OpenAPI

네이버 부스는 지도API 쪽에서 사람들의 시선을 끌고 있더군요. 저도 중간에 껴서 마커에 대한 설명도 듣고  질문도 하고 했습니다. 이 이야기는 좀 가외지만, 의외로 AcroEdit 쓰시는 분들이 많더군요.
네이버 Open API

야후 부스에서는 플리커에 가입하는 법(!)과[각주:3] 야후 거기에서 제공되는 지도 서비스 API 설명을 들었습니다. 범위과 세계지도로 광할하며, [위성지도, 일반지도, 하이브리드지도] 모드를 지원하는 게 이점으로 생각했습니다. 이번 엑스포를 계기로 만드셨던 위자드도 마음에 들었습니다. ^^
야후 개발자 네트워크(영문)

옥션에서는 API를 오픈한지 얼마 안되었다고 합니다. 기억에 남는 점은 SOAP를 사용한다는 것인데요 회사 방침이라니 어쩔 수 없죠. 설명을 듣는 도중에
옥션이 ebay의 지사인 건 아시죠?
라고 하셨는데, 고백하자면 몰랐습니다. 나중에 ebay처럼 매시업 서비스를 통해 구매행위가 유발될 경우에 수익 분담구조를 넣을 가능성도 있다고 합니다. 아직 한국에는 이런 수익형 모델이 없었고, 없다고 하시더군요.옥션 내부에 "펌블"[각주:4]이 이와 비슷한 역할로 적용되고 있다고는 합니다.
옥션-API

카멜레온(Chameleon) 서비스는 다소 생소했습니다. 국내에서 잘 언급되지 않은 동영상솔루션을 주제로 Open API를 개방하셨는데요. 꼼꼼하고 친절하게 OpenAPI를 설명해 주셔서 감사했습니다. 어떻게 사용자의 욕구를 충족시킬 건지, 창의적인 고민이 필요하다고 생각했습니다.
카멜레온::OpenAPI

위자드닷컴은 시간이 늦는 바람에 간단한 튜토리얼과 개발 관련 사이트의 소개를 받았습니다. 블로그로 위젯을 빼서 출력하는 기능이 구현되었는데, 트래픽을 상당히 소모해서 전체적인 서비스가 다소 느려졌다는 이야기를 들었습니다. 개인화페이지보다는 RSS 리더로 주로 사용하는데, 직관적이고 한번에 제목들이 보이는 느낌이 있어서 종종 쓰고 있습니다. P-Camp 2회 때 같이 토론했던 분과 우연히 만난 것도 반가운 일이었습니다.
WZDAPI

이렇게 해서 완성된 9개 패스 스티커 사진.

사용자 삽입 이미지

pass stickered paper


사진 모음입니다.
0123

매시업 엑스포 준비하셨던 분들 수고 많이하셨고요, 정말 감사드립니다!
  1. 대회 공식 명칭은 mashup을 매쉬업으로 표현하지만, mashup을 외래어표기법에 따라 표기하면 flash를 플래쉬가 아니라 플래시로 부르는 것처럼, 매시업이 된다. [본문으로]
  2. 다른 분들의 후기를 매시업 경진대회 공식 블로그 서울 매시업 세미나가 잘 끝났습니다!에서 보실 수 있습니다. [본문으로]
  3. 주민등록번호 때문에 가입이 되지 않는다면, yahoo.com에서 직접 가입하면 플리커를 사용할 수 있다고 하더군요. [본문으로]
  4. 관심가거나, 추천하고자 하는 상품을 회원이, (옥션 내부) 자신의 블로그에 등록하는 서비스. [본문으로]
반응형

+ Recent posts