발생일: 2013.02.01 문제: 1월부터 팀원들과 함께 노드 스터디를 진행하려고 'node.js 프로그래밍'이란 책을 샀더랬다.헌데, 갑자기 팀이 나뉘어 모두 헤어지게 된 터라(ㅠ ㅠ),스터디도 자연스럽게 해체됐고 읽다만 책만 덩그러니 남았다. 첫 몇 장의 내용이 꽤 괜찮았던 터라, 어제부터 남은 부분을 쭉- 읽어봤다. 중요한 요소 요소를 예제를 들어가며 이해하기 쉽게 잘 설명하고 있다.예전에 몇몇 모듈을 만들어보다 겪었던 문제들에 대한 내용도 잘 설명되어 있더라.미리 읽어봤더라면 시간을 많이 절약할 수 있었을 텐데...라는 생각이 들었다.^^ 나중에 인덱스 용도로 참고할 목적으로 작성한 메모를 옮겨둔다. 여기선 4장부터의 내용만 메모했다.1장의 내용은 이전 포스트를 참고하면 되고,2장과 3장은 설치..
발생일: 2013.01.29 문제: git을 자주 사용하곤 있지만 주로 개인 프로젝트에만 사용했던 터라,실제로 충돌이 발생해 diff를 자세히 보는 경우는 거의 없었다. 그러다 오늘 문득, 작업 중에 `git diff`를 호출해봤는데,출력된 내용 중에 아래 부분이 눈에 확 들어오더라. @@ -1,13 +1,7 @@ 순간, 이게 무슨 뜻이더라. 싶더라.1,13 라인을 빼고 1,7라인을 더했다는 건가... 그 전에도 분명히 이런 문구가 나오긴 했었겠지만,처음 보는 느낌이니 그리 눈에 띄진 않았던 모양이다. 저 문구를 이제서야(?) 알아보게 된 건,얼마 전 dotfiles을 변경하면서 터미널에 신택스 하이라이팅이 적용되었기 때문인데,글쎄, 저 부분이 정말 "핫핑크" 볼드로 하이라이팅 되어있더라. 여튼, 기초 ..
발생일: 2013.01.29 문제: 프로그래머의 길, 멘토에게 묻다 지난 주말, 오랜만에 교보 문고로 데이트를 하러 갔다가,제목이 눈에 띄어 집어온(물론 돈 주고ㅎㅎ) 책이다. 소프트웨어 개발을 중세 시대의 '장인' 개념에서 접근하고,견습 프로그래머에게 숙련 프로그래머로 넘어갈 수 있는 가이드를 알려주는 책이었다.(읽고 나서, 좀 더 큰 그림을 보게 되고, 반성도 하게 됐다. 한편, 마음도 편해졌고.) 여튼, 책 내용 중에, '핑퐁 프로그래밍'에 대한 이야기가 살짝 나온다.꽤 흥미로운 개념이라 메모해두려고 한다. 해결책: 핑퐁 프로그래밍 (Ping Pong Programming, P3) 짝 프로그래밍(Pair Programming)과 TDD(Test-Driven Development)를 조합한 기법으로,..
발생일: 2013.01.28 문제: 요즘엔 '웹 게임 플랫폼'에 대해 이런 저런 구상을 해보고 있다. 얼마 전 노드의 패키지 매니저인 npm으로 모듈을 배포해보고는,정말 너무 쉽고 편리해서 깜짝 놀랐더랬다.게다가 최근 Yeoman이나 Grunt.js 등의 자동화 툴을 접하면서 특히나 많은 생각이 들었다. 플랫폼에서 개발자가 개발하거나 배포하기 쉽게 이런 도구들을 함께 제공해주면,많은 개발자들의 지지를 받을 수 있을 것 같다. 여튼, npm을 떠올려보면서, 패키지 매니저가 갖춰야 할 요건에 대해 좀 정리해봤다. 해결책: 패키지 매니저의 요건 from Ohgyun Ahn 빨리 넘겨볼 수 있게 슬라이드로 정리했고,패키지 매니저의 요건에 대한 것은 The State of Javascript Package Man..
발생일: 2013.01.24 문제: 얼마 전 만든 커맨드라인 영어사전인 ndic 모듈에 새로운 기능을 붙여보려고 한다. 생각해둔 건 탭 자동완성 기능이다. 커맨드라인에서 단어를 검색하다보니,입력하던 도중에 철자를 틀리거나, 단어의 뒷 부분을 까먹어서 제대로 검색되지 않는 경우가 있더라. `ndic symp` 다른 커맨드라인 명령어에서처럼,ndic 명령 이후에 탭을 입력했을 때 비슷한 단어 목록을 제시해주면 꽤 쓸만할 것 같다. 기존 명령어의 탭 자동완성은 주로 폴더 내 파일 목록을 보여주는데,위와 같이 커스텀 명령에 적용하면서, 목록을 다이나믹하게 생성할 수도 있을까? 해결책: 요즘 많이 사용 하는 BASH Shell과 Z Shell의 방법이 다르긴 하지만, 둘 다 가능하다.여기서는 일단 BASH에 관해..
발생일: 2013.01.23 문제: npm의 인터랙티브 package.json 가이드를 보다보니,패키지의 버전은 Semantic Versioning 을 따른다 한다. 시맨틱 버저닝이라,.. 요고 뭔가? 해결책: 시맨틱 버저닝(Semantic Versioning)은 소프트웨어의 버전 변경 규칙에 대한 제안이다. 상세 스펙은 http://semver.org/ 에서 확인할 수 있다. 아래는 주요 사항을 간단히 정리한 내용이다. - 시맨틱 버저닝을 따르는 소프트웨어는 반드시 공개 API를 가지고 있어야 한다. 이 API는 코드 또는 문서 내에 정의할 수 있으며, 정확하고 포괄적이어야 한다. - 버전은 X.Y.Z (Major.Minor.Patch) 를 따른다. 패치 업데이트: API에 영향이 없는 버그 수정 마이..
발생일: 2013.01.16 문제: 어젯밤부터 간단한 노드 모듈을 만들어보고 있다.얼마 전 배시(BASH)를 익혔던 터라, 자바스크립트 대신 배시 파일로 만들어보기로 했다. 배시 파일을 작성하다보니,에디터에서 수정하고 쉘로 넘어가 실행하는 횟수가 많아지더라. 1. 에디터에서 저장 2. Alt + Tab으로 쉘로 이동 3. 화살표 ↑ 로 최근 명령 실행 4. 다시 Alt + Tab으로 에디터로 이런 식으로 작업하고 있는데, 아무래도 이거 넘 귀찮다. 배시 파일을 모니터링 해서,파일이 변경되면 바로 쉘을 실행하도록 하면 테스트하기 굉장히 편할 것 같은데,좋은 방법이 없을까? 해결책:검색해보니, 이런 용도의 파일 모니터링 도구가 많더라. 가장 대표적인게 inotify tools 인 것 같다. https://g..
발생일: 2012.01.15 문제: 팀에서 노드(Node.js) 스터디를 하고 있다. 노드가 처음은 아니고, 얼마 전 노드로 작은 모듈을 만들어보기도 했지만,책을 읽으니 확실히 좋다. :) 지금은 '노드제이에스 프로그래밍'이란 책으로 스터디를 진행하고 있는데,글도 매끄럽고 쉽게 잘 읽혀져 좋다. http://book.naver.com/bookdb/book_detail.nhn?bid=6818977 책의 1장에 노드의 탄생 배경에 대한 내용이 있는데,꼭 알아두면 좋을 것 같아 메모해둔다. (노드 예찬론자였던 양형이 생각난다. ㅎㅎ) 해결책: var result = db.query('SELECT * FROM table');// result를 사용 일반적인 프로그래밍 언어나 플랫폼에서는 Blocking I/O ..
발생일: 2013.01.11 문제: *nix 기반의 설정 파일을 공유하자는 dotfiles.github.com 가이드를 보고 맥에 적용해봤다. http://dotfiles.github.com/ 난 Paul Irish의 것을 포크해서 쓰고 있는데, (https://github.com/ohgyun/dotfiles)내 입맛에 맞게 바꿔보려고 하니 설정 파일이 많아 좀 헷갈리더라. 이참에 쉘 스크립트를 공부해봐야겠다 싶어서 조금씩 보고 있는 중이다. dotfiles repository를 처음 보고 들었던 생각은 이런 것들이었다. "어디서부터 시작해야 되지..." ".bash_profile 파일은 봤는데, .function 이며, .aliases 라는 것들도 원래 있었던 건가..." 해결책: 환경 설정 파일에는 ..