직접 번역하거나 저술한 책

책에 대한 문의나 의견은 아래 댓글란에 남겨주세요. :)

소프트 스킬

존 손메즈 저 | 길벗 | 2015.11.27
Soft Skills
한 마디로 설명하자면 ‘개발자를 위한 자기계발서’입니다. 미국에 사는 개발자 이야기인데다가 많은 자기계발서적이 그렇듯 저자의 경험에 공감하지 못하는 부분이 있을 수 있습니다. 읽는 이의 성향에 따라 맞을 수도 있고, 그렇지 않을 수도 있지만 목차에 나온 주제는 한 번쯤 생각해볼만하다 생각합니다. 저보다는 공역자님이 더 많이 수고한 책입니다.

네이버 책 | Yes24 | 알라딘

누구나 쉽게 배우는 자바스크립트

닉 모건 저 | 비제이퍼블릭 | 2015.9.16
원서 제목이 JavaScript for Kids인만큼 굉장히 친절합니다. 프로그래밍 문외한인 공역자도 번역하면서 코드 실행해보고 즐거워 할 정도로 쉽습니다. 기술을 깊이 있게 다루지는 않지만, 자바스크립트의 재미를 알려줄만한 입문서로서는 충분하다고 생각합니다.

네이버 책 | Yes24 | 알라딘

거침없이 배우는 자바스크립트 & 제이쿼리

데이비드 소이어 맥파랜드 저 | 지앤선 | 2015.4.30
자바스크립트를 처음 시작하려는 분들이 읽으면 좋은 책입니다. 언어 자체에 대해서는 깊이 다루고 있지 않기 때문에 본격적으로 언어를 공부하려는 사람보다는 자바스크립트나 jQuery를 처음 접하면서 이들이 웹 페이지에서 어떻게 동작하는지 느껴보고 사용해보고 싶은 사람에게 좋습니다.

이 책의 예제는 https://github.com/taggon/missing-manual-kr2에서 볼 수 있으며, 해당 페이지 상단의 “ZIP” 버튼을 클릭하면 실습 파일을 압축 파일로 한꺼번에 내려받을 수 있습니다.

네이버 책 | Yes24 | 알라딘

객체지향 자바스크립트의 원리

니콜라스 C. 자카스 저 | 비제이퍼블릭 | 2015.3.26
자바스크립트에서 객체지향을 어떻게 구현할 것인지 다루는 책입니다. 자바스크립트라는 언어의 객체에 대해 먼저 다룬 다음 상속, 확장, 수정 방지와 같은 기술에 대해 설명합니다. C++, 자바 같은 전통적인 객체지향 프로그래밍 언어에 경험이 있는 개발자나 자바스크립트의 기초 문법은 충분히 숙지하고 있는 개발자가 보면 많은 도움이 될 것 같습니다.

네이버 책 | Yes24 | 알라딘

피들러 완벽 가이드

에릭 로렌스 저 | 지앤선 | 2013.9.24
웹 개발자의 필수 도구 피들러에 대해 처음부터 끝까지 소개하는 말 그대로 완벽 가이드같은 책입니다. 피들러의 개발자가 직접 쓴 책이라 피들러 내부까지 속속들이 빠짐없이 파헤치는 책입니다. 피들러를 몰랐거나 대충 사용해왔던 분들이 보면 좋을 듯 합니다. 방대한 기능에도 불구하고 프리웨어라는 점은 장점이지만 윈도우즈 전용에 .NET 기반이라는 점은 단점이 될 수도 있는 부분입니다.

네이버 책 | Yes24 | 알라딘

자바스크립트를 깨우치다

코디 린들리 저 | BJ퍼블릭 | 2013.7.22
자바스크립트라는 언어 자체에 대해 살펴보는 책입니다. 언어의 개념을 알려주기 보다는 객체, 함수에 대해 깊이 있게 다루는 내용이 주를 이루기 때문에 초보자가 보기에는 살짝 어렵게 느껴질 수 있습니다. 하지만, 자바스크립트의 기초적인 문법을 떼었다고 생각한다면 읽어보아도 좋습니다. 전체 200페이지 정도로 다른 프로그래밍 서적에 비하면 몹시 얇아서 부담없이 볼 수 있으며, 책에 있는 모든 코드는 온라인 상에서 바로 실행해 볼 수 있는 라이브코드(예. http://jsfiddle.net/jsenlighten/tNj7d/) 형태로 제공되기 때문에 타이핑의 번거로움도 줄였습니다.

네이버 책 | Yes24 | 알라딘

고성능 자바스크립트 그래픽스

라파엘레 체코 저 | BJ퍼블릭 | 2012.8.16
모바일과 HTML5 시대가 되면서 중요해진 그래픽 분야를 중점적으로 다루는 책입니다. 그래픽을 다루는 것에 집중한 책이라서 초보자가 보기에는 다소 무리가 있습니다. 최소한 자바스크립트 문법이나 기본 성격 정도는 익숙해진 상태에서 보는 것이 좋습니다. 게임이나 모바일 앱을 만들어 보는 부분에서는 실제로 동작시킬 수 있는 프로젝트를 진행하며 설명하는 방식을 취하고 있습니다.

네이버 책 | Yes24

자바스크립트 쿡북 JavaScript Cookbook

셸리 파워즈 저 | 한빛미디어 | 2011.12.26
첫 번역서인 거침없이 배우는 자바스크립트가 초보용 입문서라면, 이 책은 정말 실무에 집중한 책입니다.실무를 하면서 접할 수 있는 여러 문제와 물음에 대해 짧지만 명확하게 답을 주는 책입니다. 사실, 셸리 파워즈라는 저자 이름만으로도 어느 정도의 품질이 보장되는 책이기도 하고요. 초급자부터 중급까지, 그리고 때로는 고수들에게도 필요한 책이라 생각합니다.

네이버 책 | Yes24

거침없이 배우는 자바스크립트

데이비드 소이어 맥파랜드 저 | 지앤선 | 2010.10.04
처음 번역했던 책입니다. 번역이 만만하지 않음을 깨닫게 해준 책이고, 그래서 더 기억에 남는 책이기도 합니다.제목에서 느껴지는 것과는 조금 달리 자바스크립트보다는 jQuery를 많이 다루고 있고, 초보자들에게 어려울 수 있는 자바스크립트의 문법이나 기본기에 대해서는 간단히 짚고 있어 자바스크립트에 막 입문한 사람들이 보기에 적합합니다.

이 책의 예제는 https://github.com/taggon/missing-manual-kr에서 볼 수 있으며, 해당 페이지 상단의 “ZIP” 버튼을 클릭하면 압축파일로 한꺼번에 내려받을 수도 있습니다.

네이버 책 | Yes24

  1. 자바스크립트 쿡북

    독자로부터 받은 질문입니다.
    ——————————————-
    안녕하세요
    답변 감사드립니다.

    말씀하신대로 전역 플래그를 빼고 실행시켜보니 무한루프에 빠지는 걸 확인했습니다.
    감사합니다.

    정규 표현식의 결과에 대해서는 아직도 의문이 많아 추가 질문드리고자 합니다.

    1. 정규 표현식 결과의 input이나 index같은 property는 어디서 나오는지 의문입니다. 그 속성들은 배열과는 상관없는 속성 아닌지요?

    2. 해당 예제를 테스트해보면 length가 늘 1입니다. length가 1인 배열을 반환할거라면 배열을 반환하는 이유를 이해하기 어렵습니다.

    3. exec 메소드의 결과물이 aaa라면 aaa[0], aaa[1] 이런 식으로 접근해야 배열의 값을 가져올수 있다고 저는 생각하는데 그냥 aaa를 찍어도 aaa[0]의 값과 동일한 결과를 보여줍니다.

    제가 자바스크립트의 배열을 잘못 알고 있어서 그런 건지는 모르지만 참 이해하기 어렵습니다. 그래서 정규표현식의 결과물은 배열이 아니라 특정한 객체가 아닌가 하는 의문이 드는 겁니다.

    자꾸 번거롭게 해서 죄송합니다.

    제가 테스트한 소스입니다.

    function aaa() {
    var searchString = “Now is the time and this is the time and that is the time”;
    var pattern = /t\w*e/g;
    var matchArray;

    var str = “”;
    while( (matchArray = pattern.exec(searchString)) != null)
    {
    alert(typeof matchArray);
    alert(matchArray.input);
    alert(matchArray.length);
    alert(matchArray[0]);
    alert(matchArray[1]); // undefined
    alert(matchArray);

    str += “at ” + matchArray.index + ” we found ” + matchArray + “.”;
    }

    alert(str);
    }

    window.onload = aaa();

    1. 1. 기본 배열 속성은 아니지만, 아마도 exec 메소드 안에서 배열 객체에 추가한 속성인 듯 합니다. 언어와 상관없이 대부분의 정규표현식 사용법에는 index와 length 등을 구하는 방법이 있는데, 자바스크립트에서는 이런 방법을 사용했을 뿐입니다.

      자바스크립트는 자료형 대부분이 객체입니다. 심지어 원시 타입인 숫자와 부울값, 문자열 등도 이에 해당하는 객체가 있습니다. 그리고 이 객체는 상당히 유연해서 객체에 새로운 메소드나 속성을 추가하거나 혹은 기존의 메소드와 속성을 제거하거나 수정하는 것도 대부분 가능합니다.

      var newArray = new Array();
      newArray[‘myProperty’] = “myValue”;

      위와 같은 코드를 실행한 후에는 newArray.myProperty에 접근하여 이 값을 수정하거나 가져올 수 있다는 뜻입니다.

      2. length가 1일 때는 배열이 아니라 값을 직접 반환하는게 좋지 않냐는 뜻으로 이해했습니다. 하지만 함수의 정의는 가능하다면 통일성 있는 편이 좋습니다. exec 함수에서 반환하는 값이 “배열 또는 문자열 또는 null”인 것 보다는 “배열 또는 null”인 편이 훨씬 단순하고 일관성있는 규칙일 것입니다. 특히 C, C++ 등의 전통적인 언어에서는 배열 대신 null pointer을 반환할 수 있으므로 많은 개발자들에게 후자의 선언은 사실상 한 종류의 자료형으로 인식되곤 합니다.

      3. 이 부분은 배열의 특성을 오해하신 듯 합니다. 대부분의 내장 자바스크립트 객체는 문자열로 자동 변환할 때 호출하는 toString() 메소드가 있습니다. 그래서 문자열이 필요한 상황에서는 이 메소드를 자동으로 호출해 문자열로 변환을 시도합니다.

      alert() 함수에는 ‘문자열만’ 인수로 사용할 수 있습니다. 따라서 인수가 문자열이 아니면 toString() 메소드가 있는지 찾아보고 문자열로 변환을 시도합니다. alert(matchArray)를 통해 화면에 출력한 메시지는 toString() 메소드를 통해 변환된 문자열인 것입니다.

      그런데, 배열의 toString() 메소드는 “내용을 모두 출력하되 내용 사이는 쉼표(,)로 구분하도록” 동작합니다. 배열의 값이 2개였다면 “첫번째,두번째” 이렇게 출력이 되겠지만 값이 1개라면 “첫번째”라고만 출력됩니다. 그렇다고 해서 matchArray의 값이 갑자기 문자열이 되지는 않습니다.

      값이 몇 개이든 matchArray의 자료형은 배열입니다.
      matchArary.toString() === matchArray[0] 인 것을 보고 혼동하시면 안됩니다.

      크롬이나 파이어폭스 브라우저를 사용하시고 alert 대신 console.log를 사용해보는 것도 이런 혼동을 막는데 도움이 될 수 있습니다.

      1. 김경수님//
        도움이 되셨으면 좋겠습니다. 다른 문의사항이 있으면 언제라도 남겨주세요!

Leave a Reply

Your email address will not be published. Required fields are marked *