발생일: 2013.02.22 문제:요새 HTML5 Web Audio API를 파보고 있다. 스펙을 살펴보다 보니 deprecated 된 메서드가 있는데,튜토리얼의 대부분은 스펙이 변경되기 이전에 작성된 것들이 많아 이전 메서드를 기반으로 소개하고 있다. 당장 사용하는 데 있어서는 문제가 될 것 같지 않지만, 참고 차 정리해둔다. 해결책: 아래는 각 노드에서 변경된 메서드 목록이다. AudioBufferSourceNode noteOn() ---> start() noteGrainOn() ---> start() noteOff() ---> stop() AudioContext createGainNode() ---> createGain() createDelayNode() ---> createDelay() creat..
발생일: 2013.02.18 문제: 우리 부부는 주말마다 커피숍에 가서 책을 읽는데,어제는 날이 좋아서 남양주에 있는 고당이라는 카페로 나들이를 갔다. 작년에 한 번 다녀왔던 곳인데, 한옥 카페이고 분위기도 괜찮다.좀 비싼 데다 오래 기다려야 하는 게 흠이긴 한데, 딱 드라이브하기 좋을 만큼의 거리라 즐겁게 다녀왔다. 그치만, 거리도 있고 해서 오래 앉아있을 것도 아니어서, 가볍게 후딱 읽을 셈으로 책장에서 가장 얇은 '손에 잡히는 정규 표현식'을 뽑아 들고 갔다. 정규식은 나름 잘 알고 있다고 생각해서 그닥 읽을 계획이 없던 책이었는데,읽어보니 어려운 개념도 아주 쉽게 잘 설명해놓아서 많이 배울 수 있었다. 예전에 먼저 읽었던 아내가,단어의 경계를 나타내는 \b 메타 문자의 예제 부분에 물음표를 쳐둬서..
발생일: 2013.02.12 문제: 연휴에 시골에 다녀오던 길에 Maintainable JavaScript(읽기 좋은 자바스크립트 코딩 기법)을 읽었다.원래는 책읽기 스터디를 하려고 샀던 책이었는데, 가볍게 읽을 수 있을 것 같아 챙겨갔더랬다. 제목만 봐서는 컨벤션 이야기나 코딩 기법에 대한 것만 있을 것 같았는데,의외로 배포 자동화까지 폭넓은 주제를 다루고 있다.무엇보다, 저자의 경험을 기반으로 꼼꼼하게 설명하고 있어 더 유익했던 것 같다. 기억할 만한 내용을 메모해 옮겨둔다. 해결책: p.41: null은 객체(object)를 대신한다고 생각하는 것이 좋으며, 다음과 같이 사용한다.- 나중에 "객체"의 값을 할당할 변수를 초기화할 때- 인자 값으로 객체를 넘기는 함수를 호출할 때- 함수를 호출한 곳에..
발생일: 2013.02.01 문제: 1월부터 팀원들과 함께 노드 스터디를 진행하려고 'node.js 프로그래밍'이란 책을 샀더랬다.헌데, 갑자기 팀이 나뉘어 모두 헤어지게 된 터라(ㅠ ㅠ),스터디도 자연스럽게 해체됐고 읽다만 책만 덩그러니 남았다. 첫 몇 장의 내용이 꽤 괜찮았던 터라, 어제부터 남은 부분을 쭉- 읽어봤다. 중요한 요소 요소를 예제를 들어가며 이해하기 쉽게 잘 설명하고 있다.예전에 몇몇 모듈을 만들어보다 겪었던 문제들에 대한 내용도 잘 설명되어 있더라.미리 읽어봤더라면 시간을 많이 절약할 수 있었을 텐데...라는 생각이 들었다.^^ 나중에 인덱스 용도로 참고할 목적으로 작성한 메모를 옮겨둔다. 여기선 4장부터의 내용만 메모했다.1장의 내용은 이전 포스트를 참고하면 되고,2장과 3장은 설치..
발생일: 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.10 문제: node 에 포함된 npm(Node Package Manager)으로 패키지를 관리할 수 있다.헌데 node 자체의 버전 관리는 어떻게 하나~? 해결책: 노드 버전 관리 매니저가 있다. nave & nvm 대표적으로 nave와 nvm이 있고, 명령어나 사용법은 거의 동일하다. nave - Virtual Environments for Node - https://github.com/isaacs/nave - npm 패키지로 등록되어 있어서 npm을 통해 설치하면 된다. `npm install -g nave` nvm - Node Version Manager - https://github.com/creationix/nvm - curl이나 wget으로 install.sh을 다운로..
발생일: 2012.11.27 문제: IndexedDB에 대한 교육을 듣고 있는데, 크롬 브라우저의 개발자 도구에서 IndexedDB 항목을 열어도 내용이 조회되지 않는다. 왜 그럴꼬~~ 해결책: 1. chrome://flags 목록에서 2. Enable Developer Tools Experiments. 목록을 활성화해주자. https://plus.google.com/u/0/100132233764003563318/posts/7pbJUZCGk8U 참, 로컬 경로의 것은 조회되지 않는다.테스트가 필요하면 서버를 띄워서 테스트하자.
발생일: 2012.11.06 문제: 지난 주말엔 회사에서 주최하는 해커톤(hackathon) 행사에 참석했었다. 이번엔 모바일 브라우저에서 PC 브라우저의 마우스를 컨트롤 할 수 있는 리모트 컨트롤러를 만들었다. 컨트롤러는 트위터 부트스트랩과 Raphael.js로 꾸미고, require.js로 모듈화했고,통신은 웹소켓으로 하고, 소켓 서버는 node.js를 사용했다. 작업한 코드는 github에 넣어뒀다.https://github.com/ohgyun/remote-controller 여기까지 작업하는데 대략 10시간 정도 걸린 것 같다. 비몽사몽이라 기억이.. @_@ 여튼, 작업 중간중간 메모해둔 게 있어 옮겨둔다. 해결책: node.js 웹소켓 서버 https://npmjs.org/package/webs..
발생일: 2012.10.27 문제: 정말 오랜만에 한가한 주말이다.오후부터, 한참을 미뤄뒀던 네이버 영어사전 크롬 익스텐션 리팩토링 작업을 시작했다. 처음 만들었을 때엔 의존성을 해결하기 위해 직접 프레임워크를 만들었었는데,문서도 없고 내멋대로 만든 거라 다른 개발자들이 참여하기도 어려운 것 같았다. 그래서 이번엔 RequireJS를 사용해보려고 한다. 백그라운드 코드부터 작업하기 시작했고, 아무 매끄럽게 잘 적용할 수 있었다.헌데, 컨텐트 스크립트에 적용하려고 하니 좀 문제가 있다. 먼저, 보안 이슈 때문에 파일이 로드되지 않았고,다음엔 스크립트를 로드해와도 제대로 로드되지 않았다. 어떻게 해결하면 될까? 해결책: 컨텐트 스크립트에서 RequireJS를 사용하는 데엔 두 가지 문제가 있었다. 1. 익스..
발생일: 2012.10.17 문제: 조만간 진행할 미니 프로젝트에서 node.js를 사용하기로 했다. node.js는 어깨 너머로 보기만 했지, 실제로 사용해본 적은 없었다. 이참에 연습도 할 겸,얼마 전 만든 라이브러리의 새 버전 배포 알람 메일링 배치 파일을 node.js 로 만들어봤다. 아래는 작업하면서 메모해둔 내용을 정리한 것이다. 해결책: 시작하기, 완전 초보 가이드 http://nodeguide.com/beginner.html 오래된 버전이지만, 기본적인 개념에 대해 명료하게 설명한다. 유용한 라이브러리나 모듈을 가져다 쓰려면? https://npmjs.org/ Node Package Manager에서 가져온다. npm 간단 사용법 http://howtonode.org/introduction..