본문 바로가기

[책] Java Script 자바스크립트 성능 최적화 - 한빛미디어 자바스크립트에 관한 책을 세 권을 샀는데 그중에 두 번째 읽고 있는 책이다.1권은 자바스크립트 코딩 가이드였는데 외형적으로 어떻게 만들면 좋을 지라면이 책은 성능에 관한 책이다. 보통 웹 개발자는 기능에 중점을 두다 보니 성능은 등한시 하는 경향이 있는데, 나중에 고객에 납품하고 나서 화면이 느리게 보인다는 피드백을 받고서야 성능에 관심을 가지기 시작한다. 어찌보면 성능에 대한 기본 지식을 코딩 스타일에도 반영을 한다면 좋을 것 같다는 생각이 들었다. (예. 스크립트문의 위치 등) [정오표]p.204 커스텀 포맷의 테이터중 Nicholas; Ethan;William;Antho 의 Nicholas과 Ethan 사이의 공백은 없는 것이 맞을 듯p.227 Math.Enum -> num의 지수또 하나더 있는데 ..
[책] xUnit 테스트 패턴 - 에이콘 원서: http://xunitpatterns.com/역자: http://parkpd.egloos.com/3102821 테스트에 대한 바이블이라고 할 정도로 1062쪽이나 되는 두껍고 무거운 책이다.바이블 책들은 보통 소장용으로 (예. 비야네스트룹이 쓴 The C++ programming) 가지고 있지 끝까지 읽어 본 책은 김상형씨의 윈도우API정복 정도이다. 왜냐하면 보통 레퍼런스 식으로 사전식으로 필요할 때에 찾아보거나 관심있는 주제를 읽는 식으로 구성이 되어 있기에 처음부터 정독한 다는 것은 국어사전이나 영어사전, 혹은 백과사전을 읽는 다는 것과 비슷하기 때문이다. 하지만 이 책은 처음에 과소평과 했던 것과는 달리 나름 짜임새 있고 정독을 할만한 책인 것 같다. 번역하신 박일 님 역시 나름 번역에 신..
C매크로의 오동작의 예 DSL 15장에 매크로를 설명한 게 있어 나중에 예로 들 때 이용하도록 정리해 놓는다. 옳은 예)예를 들어 두 숫자의 최댓값을 구해야 하는 경우가 많다고 해보자. 그래서 a > b ? a : b와 같은 형식을 C 언어를 사용해 중복작성해야 한다고 해보자.#define max(x, y) x > y ? x : y int a=5, b=7, c=0;c = max(a,b); 나쁜 예1 - 잘못된 확장하지만 매크로를 사용하면 미묘한 문제가 수없이 생겨서 곤경에 빠지기도 한다. 매크로에 파라미터를 사용하면 특히 그렇다. 숫자를 제곱하는 매크로를 생각해보자.#define sqr(x) x * x int a=5, b=1, c=0;c = sqr(a + b); 6의 2승인 36이 나올 것이라고 기대했지만, c의 값은 11이 ..
[책] 읽기 좋은 자바스크립트 코딩 기법 Maintainable JavaScript - 한빛미디어 동물 표지로 패턴을 가지고 있는 오라일리의 책이다.책 표지는 그리스 거북이다. 사게 된 이유는 최근 Node.js 개발을 하면서 자바스크립트 코드를 다룰 일이 많아 졌기 때문이다.서점에서 훝어보고 괜찮은 자바스크립트 책이라는 생각이 들어 구입하게 되었다.(자바스크립트 분야 책만 3권을 동시에 주문을 하였다.) 회사 내에서 코딩 스타일 가이드를 수립해서 팀원 들에게 교육을 하라고 얼마전에 팀장이 이야기를 해서 마침 유용하게 읽었다. 자바스크립트는 C/C++ 뿐만 아니라 자바, C#과 비슷한 문법 및 키워드를 가지고 있어서 공통적인 부분에는 적용할 수 있지 않을까 생각이 된다. 비교 연산자에 대해 평소에 헷갈렸는데 이 참에 확실히 이해를 해서 좋았다. [읽기기록]9/14 ~p.209/15 ~p.549/16 ..
[JavaScript] null 값과 비교할 때는 반드시 비교 연산자로 === 또는 !==를 사용 Maintainable JavaScriptp.129 null 비교 금지null 값과 비교할 때는 반드시 비교 연산자로 === 또는 !==를 사용해야 한다. 실제 잘못 사용 예) 문자열이 IP 패턴을 하고 있는지 확인하는 함수function isIPAddress(ip) { var ipFormat = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; return (ip.match(ipFormat)!=null);} 수정 예function isIPAddress(ip) { ..
spring.io DNS 문제? http://www.springsource.org/ 가 접속이 안되어서 도메인 주소가 완전히 바뀌었나 생각 했다. 바뀐 주소인 http://spring.io/ 에 접속을 했더니 에러가 떴다. 에러 코드는 1001이고 DNS를 찾을 수 없다는 것이다.Error 1001 DNS resolution error What happened?You've requested a page on a website (spring.io) that is on the CloudFlare network. CloudFlare is currently unable to resolve your requested domain (spring.io). There are two potential causes of this:Most likely: ..
[책] DSL : 고객과 함께 하는 도메인 특화 언어 - 인사이트 사실 원래 '에릭 에반스'의 '도메인 주도 설계'라는 책을 읽으려고 하다가 DSL이라는 책이 있어서 선택을 하게 되었다.저자는 '리팩토링'이라는 책으로 유명한(공저) '마틴 파울러'이다. 세상의 책을 일기 쉬운 책과 어려운 책으로 나눈다면 이 책은 후자에 속한다. 코드가 나오기는 하지만 어디에 적용할 지는 개인의 내공이 뒷받침 되어야 한다. 하지만 이 책은 그리 만만하지 않다. 왜냐하면 DSL이라는 것은 '객체지향프로그래밍'같은 하나의 패러다임이다. 처음 프롤로그에서 OOP라는 개념이 나왔지만 실제 이런 개념을 다양한 사람이 사용하기에는 10년 이상이 걸렸던 것 같다. (실제 객체라는 말은 1960년대 MIT에서 나왔고, 프로그래밍적으로 구현은 1960대의 Simula 67에서 이루어졌다.) 따라서 DS..
[책] 프로그래밍 루아(Programming Lua) - 인사이트 http://www.lua.org/pil/ 국내 유일의 루아관련 서적이다... 라고 생각했는데 '예제로 배우는 프로그래밍 루아'라는 e-book도 있고, '루아를 이용한 민첩하고 효과적인 게임 개발'라는 게임응용서적도 있었다. 사실 내가 처음 루아라는 스크립트 언어를 본 것은 와우(월드오브워크래프트)에서 였다. (게임을 하는 사람이 아니라서 잘 모르지만...) Roberto Ierusalimschy라는 이름을 보았을 때, '로베르또'라고 읽을지 모르겠지만 브라질은 에스파냐가 아닌 포루투겔을 사용하므로 앞의 R은 /h/로 난다는 사실. 그래서 '호베르토 이에루자림스키'가 이 책의 저자이다.사실 이 사람은 Lua 스크립트 언어의 창시자 중 한 명이라고 한다. 이 책을 읽게 된 이유는 다른 언어로 바인드(bi..