Javascript

  • Published on
    어떤 템플릿 엔진을 써야할까? 평소에는 레식 사마가 만들었던 micro-template 을 변형해 만든 JSTools의 pre-compile 기능을 주로 써왔었는데,.. 아무래도 일반적이지 않다보니 (물론 난 pre-compile이 좀더 익숙하지만) 대중적으로 어떤 템플릿 엔진들이 있는지 좀 알아봤다. 역시나 나와 같은 고민을 하는 사람이 이미 전세계에 수없이 많고, 그중에서 LinkedIn에서 공유한 자료가 꾀나 괜찮았다. 정리해보자. 템플릿 엔진은 크게 두 가지로 분류할수있다. 1. 자바스크립트 로직을 품는 레식 사마의 micro-template 계열 존레식이 처음 제안했던 마이크로 템플릿은 jQuery-Template 에 포함되면서 발전해봤고, 이제는 다른 엔진에 밀려 deprecated 된다는 얘기가 있어서 최종적으로는 underscore.js 로 귀결되는 듯싶다. 마이크로템플릿의 장점은 learning-curve가 거의 없다. Syntax가 간단하고 직관적이어서 딱
  • Published on
    평소에는 jQuery를 잘 쓰지 않는다. 이미 jindo를 이용해 원하는 형태로 얼마든지 개발할수있기 때문이다. 하나의 라이브러리를 딥하게 쓰다보면, 그 라이브러리에 매우 익숙하게 되고 무엇이 문제인지 무엇이 좋은지 잘 모를때가 있다. 그래서 종종 개인 프로젝트에는 jQuery를 일부러라도 찾아서 쓴다. 몇일전 부터 jQuery를 조금 딥하게 보고 있다가 특이한 점을 발견했다. 바로 jQuery() 객체로 인스턴스를 만들면 다음과 같이 배열로 반환한다는 점이다. > jQuery() [] > jQuery(&#039;#test&#039;) [<div id=​"test" class=​"this is a class">​OK​</div>​] 하지만 겉모습만 배열이지 실제로는 jQuery의 인스턴스다. jQuery() instanceof Array // false jQuery() instanceof jQuery // true 오~! 신기한데 어떻게 저럴수 있지? 겉모습은 배열이지만 배열 아닌
  • Published on
    몇달전 자바스크립트 가든이라는 문서의 한글 번역본을 읽다가 포기하고 다시 원문을 보면서 재번역을 했다. 처음엔 그냥 오역이 몇가지 보여서 오역만 바로 잡아볼까하고 원번역자에게 메일을 보냈는데.. 결국엔 전체를 모두 다시 번역했다. 현재는 원저자에게 Pull Request를 보낸상태고 머지는 언제 될찌 모르겠다. 현재 상황에서 기억 남는 몇가지를 남겨보면, 1&#46; 호이스팅(Hoisting) 이게 말이지 참 재밌다. JSLint에서 이렇게 해라~ 라고 추천했던 가이드들이 몇가지 있었는데.. 예를 들면, "var문은 맨위로 올려라" 하는 가이드가 있다. 왜 위로 올리라는 거지? 성능 문젠가? 스코핑 때문에 그런가? 그래.. 올리라면 올리지모.. 라고 하면서 var로 선언한 코드를 전부 위로 올렸던 기억이 있는데.. 여기엔 이유가 있었다. 바로 호이스팅!!! 호이스팅은 자바스크립트가 실행되기 전에 선언문을 스코프 위로 올리는 걸 얘기한다. 따라서 다음과 같이 for 문안에 선언한 i
  • Published on
    라파엘이 좀 손에 익으니, 금방 맹글게 되네..오랜만에 삼각함수 검색했다. ㅇㅎㅎ코드 좀 정리해서 모듈로 배포해야지. 샘플 페이지는 >>> 여기에몇가지 코드 정리할 필요가 있다. 1) 옵션을 뺄수있는 설정들 정리2) 주석 정리3) 모듈 테스트 주석빼면 100줄도 안되네.. ㅇㅎㅎ
  • Published on
    오늘 미투머니 테스트 코드를 작성하다가 그동안 안개속에 쌓였던, 정규식의 맘을 헤아리게 되어 몇가지 공유합니다. 제가 말하고자 하는 내용은 사실 이 포스트에 다 있어요. 정규식 RegExp Vs String정규식은 기본적으로 문자열 패턴을 응용한 놈입니다. 그러니 당연히 String 객체와는 뗄레야 뗄수가 없는 놈입니다. 생각해보면 너무나 당연한 사실을 그동안 크게 신경 안쓰고 있다가 이제야 깨달았네요. 정리하면, 정규식은 2가지 형태로 사용할수있습니다.1. 정규표현식 객체(RegExp)를 사용하는 방법2. 문자열 객체(String)의 정규식 메소드를 이용하는 방법 메소드만 정리하면 대강 이렇습니다. RegExp.test() - Boolean 값을 리턴 RegExp.exec() - 매칭된 값을 Array로 리턴 String.split() - String.match() - String.replace() - String.search() - RegExp.test() Vs RegExp.ex