반응형
미루어 두었던 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;으로 바꾸어서 써 줄 필요가 있다.
반응형
반응형
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회 세미나를 기대해 봅니다.
반응형
반응형
DOM 스크립트라는 책을 읽게 되었습니다. 이 책을 번역해 주신 분은 Channy's Blog를 운영하는 분이기도 합니다. 막상 책을 직접 잡을 때까지는 몰랐는데, 만박님, 현석님, 주일님이 추천의 글을 써 주셨더라고요. DOM이라는 이름도 저에게는 되게 생소했는데, 1장에서 브라우저 전쟁에 대한 이야기와 함께 어떻게 지금의 사태까지 흘러왔는지 설명되어 있었습니다. 저는 DOM[각주:1]도 무슨 언어이겠거니 하고 오해를 하고 있었는데, 책에서는 API[각주:2]처럼 라고 생각해보라고 이야기 해주더군요.

자바스크립트[각주:3]의 문법은 이전에 보았던 C와 대체로 비슷했습니다. 주석 형식도, 문장 뒤에는 세미콜론을 붙이는 것도. "결합형 배열"같은 개념은 루비의 해시나 파이썬의 딕셔너리와 유사하다고 느꼈지요. 연산자, 조건문, 반복문, for문 C와 유사했습니다. for 문 안에 변수 선언이 된다는 점은 제외하고요.
"객체"라는 것에 대해 많이 이야기를 듣기는 합니다. "객체지향"이라는 형태로 쓰이기도 하지요. 하지만 막상 다른 사람에게 "객체"를 설명해보라고 하면 자꾸 막히곤 합니다. 자바스크립트에서도 객체가 있더군요.

각 장의 끝 부분에는 "이러이러한 내용을 배웠고, 저러저러한 내용을 배울 것이다"라고 정리가 되어 있어서 장마다 독자가 읽은 내용을 확인하도록 도와줍니다. 작은 부분이지만, 전 마음에 들었습니다.

책에서 중심이 되는 예제는 사진첩 예제인데요. 처음에는 사진첩을 간단하게 만들어 보고, 중간에 표준에 관한 내용이 설명된 후, 그에 맞게 개선하는 작업이 나와 있습니다. 그중 "단계적 기능 축소"라는 부분이 공감이 되었습니다. 파이어폭스[각주:4] 브라우저를 사용할 때, 내비게이션에 나쁜 방법으로 자바스크립트를 써서 작동되지 않을 때 불편했던 기억이 떠올랐기 때문입니다. 가능하면 스크립트코드를 바깥쪽으로 빼내고, 브라우저 지원을 위해 방어적으로 코드를 작성할 것을 여기선 추천합니다.

온전히 기술적인 내용만 다루고 있는게 아니라, "조엘 온 소프트웨어" 느낌이 드는 글이 포함되어 있어서 왜 이렇게 해야하는가에 대해 설득력있게 다루고 있습니다.

부록에는 메소드/프로퍼티 참조자료, DOM 식으로 개발되어 바로 가져다 쓸 수 있는 예제[각주:5], 협업 방법론[각주:6]에 대한 글이 실려 있습니다.
DOM 스크립트(에이콘 웹 프로페셔널 시리즈8) 상세보기
제레미 키스 지음 | 에이콘출판 펴냄
웹 표준 기반을 위한 자바 스트립트 활용서. 이 책은 자바스크립트와 DOM(문서 객체 모델)을 통한 표준 기반 웹 디자인을 만들기 위한 내용을 설명한 것으로 자바스크립트를 마크업에 넣지 않고도 역동적인 효과와 핵심 기능이 유지되는 스크립트 코드 짜는 방법 등을 설명한다. 또한 다양한 예제를 통해 Ajax에 올바르게 접근하는 법과 웹 표준을 살리는 멋진 DOM 스크립트 살펴보기, YUI, Prototype 웹 표준에 맞게 쓰기, 착한

  1. 번역어로는 문서객체모델, Document Object Model[Wikipedia], W3C Doucment Object Model, DOM [본문으로]
  2. Application Programming Interface[Wikipedia] [본문으로]
  3. JavaScript[Wikipedia] [본문으로]
  4. 웹 표준을 꽤 잘 준수하는 웹 브라우저의 하나이다. 모질라 재단의 후원아래에 개발되고 있으며 무료로 쓸 수 있다. 종종 불여우라는 애칭으로 불린다. 한글 모질라 프로젝트 [본문으로]
  5. 이런 부분도 막상 찾기가 쉽지 않다고 생각되는데 소개가 잘 되어 있어서 좋았습니다. [본문으로]
  6. 오픈마루에서 Agile Gardener로 계신 Jania님이 쓰셨다고 합니다. [본문으로]
반응형

+ Recent posts