learning 87

CoffeeScript, CoffeeScript 가 바로 생각나지 않는 JavaScript 코드들.

"setTimeout" on JavaScript. setTimeout 은 자바스크립트에서 자주 쓰이는 평범한 함수의 형태입니다. setTimeout(function(){ eat('food'); }, 6000); CoffeeScript 코드로 바꾸려면 어떻게 해야 할까요? "setTimeout" on CoffeeScript. 저는 이렇게 작성했습니다. 바로 생각이 나지 않더군요. setTimeout ()-> eat 'food' , 6000 "assert.response" on JavaScript JavaScript TDD 프레임웍인 expresso에서 assert.response 는 이렇게 생겼습니다. assert.response(server, { url: '/foo', method: 'POST', dat..

learning 2011.12.10

Ruby, accessors 란?

Ruby, accessorsThe Day of Code attr_reader, attr_accessor 는 뭘까요? 흥미만 잔뜩 있던, Ruby에 대해서 알고 싶기도 하고, 리팩터링 책도 읽지 못해본 상태라, 두마리 토끼를 잡아보려, "리팩토링:루비 에디션" 을 읽고 있습니다. 그런데 첫 코드에서 막혀 버렸습니다. 나머지는 대충 알겠는데, attr_reader, attr_accessor 요녀석들은 뭘까요? class Movie REGULAR = 0 NEW_RELEASE =1 CHILDRENS =2 attr_reader :title attr_accessor :price_code def initialize(title, price_code) @title, @price_code = title, price_cod..

learning 2011.12.01

CommonJS 두번째 살펴보기.

CommonJS 는 JavaScript API를 정의하는 단체(=Group)이다. 자바스크립트는 빠르고 강력한 언어가 되었지만, 현재의 표준 JavaScript 스팩은 브라우져 환경을 벗어날 수 있는 API를 제공해 주지 못하고 있다. CommonJS 는 JavaScript가 갖지 못한 API, 즉, Java 나 Ruby, Python이 갖고 있는 Standard Library API와 같은 API를 추가로 정의해서, JavaScript를 범용 언어와 같이 만들고자 하는 것이다. CommonJS 에서 가장 먼저 완성한 스팩은 Modules/1.0 이다. (대부분이 말하는 CommonJS 를 따른다. 혹은 CommonJS 이다 라는 표현은, 이 CommonJS 모듈 스팩을 준수하고 있다 라는 뜻이다.) K..

learning 2011.11.10

vim, pathogen 플러그인

빔 플러그인 관리를 더 쉽게 해주는, pathogen.vim 빔(Vim) 을 보다 막강하게 쓰기 위해선 적절한 플러그인이 필요하다. 그런데 빔에서 플러그인을 관리하는 일은 생각만큼 쉽지 않다. 특히, 가장 불편한 점은 여러 플러그인을 ~/.vim 폴더(윈도우즈 사용자의 경우, ~/vimfiles 폴더)에 덮어 씌워놓는 점. 그래서 플러그인을 업데이트하는 것은 언제나 어려웠다. 이런 나에게 단비 같은 플러그인이 바로 pathogen.vim이다. 설치 pathogen.vim 의 설치는 매우 간단하다. ~/.vim/autoload 안에 pathogen.vim 파일은 복사한 뒤, ~/.vimrc(윈도우즈의 경우 ~/_vimrc) 에 다음과 같은 코드를 한 줄 추가하면 된다. call pathogen#infect..

learning 2011.11.02

JavaScript, split과 join으로 구현한, replaceAll 함수

Daum 에 사용되고 있는 Jigu 라는 JavaScript 라이브러리 에는 문자를 치환하는 replaceAll 이라는 함수가 존재한다. 해당 함수는 정규 표현 식을 통한 치환 역시 지원하지만, 난 단순히 텍스트를 치환하는 코드를 통해 느낀 바가 커서 이곳에 기록해 두기로 마음 먹었다. Code function replaceAll(s, findstr, newstr) { // .. 생략, 이곳에서 정규 표현식 처리 .. return s.split(findstr).join(newstr); } 코드의 내용은 어렵지 않다, 단순히 찾고자 하는 단어를 기준으로 자른 배열을 만들고(split), 새로운 단어를 구분자로 사용하는 문자열을 만들라(join)는 코드이다 이 코드가 훌륭하다고 느끼는 이유는 split, j..

learning 2011.10.25

MySQL, 매달 방문하는 사용자를 확인하는 쿼리문.

코드 SELECT YEAR(`date`), MONTH(`date`), COUNT(DISTINCT `username`) FROM `table` WHERE `date` > '2011-01-01' GROUP BY MONTH(`date`) date에 설정된 날짜를 기준으로, 2011년 1월 1일 부터 매달 기록된 데이터의 개수를, username 필드를 기준으로 중복없이 표시. 결과 2010,1,89 2010,2,50 2010,3,62 2010,4,17 2010,5,23 2010,6,68 2010,7,69 2010,8,29 2010,9,71 2010,10,38 용어 COUNT 필드의 수를 표시. DISTINCT 중복되는 필드는 제거.

learning 2011.10.24

Change the current directory on Vim

빔(VIM)에서 현재 폴더의 위치를 변경하고 싶을 때! Vim 에서 현재 디렉토리를 변경할 때는 :cd 라고 입력한 뒤, 가고 싶은 폴더 경로를 입력하면 된다. 이렇게 쉬운 명령어였을 줄이야. 만약 {홈디렉토리}/workspace로 이동하고 싶을 땐, 아래와 같이 입력하면 된다. :cd ~/workspace Change the current directory to {path}. If {path} is relative, it is searched for in thedirectories listed in 'cdpath'. Does not change the meaning of an already opened file, because its full path name is remembered. Files fr..

learning 2011.06.20

About JavaScript String

The backspash character (\) has a special purpose in JavaScript string ... Is the \' escape, which represents the single quote character. 예전에 읽었던 내용이였는데, 까먹었던 내용이다 겹따옴표(") 사이에 겹따옴표나 홑따옴표(') 사이에 홑따옴표는 백슬래시(\)와 함께 쓰면 된다는 것을. "\"I\'m ok!?\"" 근데, 더 충격적인 사실은, JavaScript 문자열과 JSON 문자열이 다르다는 사실이다.(자세한 내용은 여기서 보자.)

learning 2011.06.14