확장메뉴
주요메뉴


닫기
사이즈 비교
소득공제
자바스크립트 개론

자바스크립트 개론

: 체계적인 프로그래밍 수련법

에이콘- 웹 프로페셔널 시리즈-55이동
첫번째 리뷰어가 되어주세요
정가
24,000
판매가
21,600 (10% 할인)
구매 시 참고사항
eBook이 출간되면 알려드립니다. eBook 출간 알림 신청
분철서비스 시작 시 알려드립니다. 분철서비스 알림신청

품목정보

품목정보
발행일 2013년 01월 23일
쪽수, 무게, 크기 300쪽 | 734g | 188*235*20mm
ISBN13 9788960773868
ISBN10 8960773867

책소개 책소개 보이기/감추기

목차 목차 보이기/감추기

저자 소개 관련자료 보이기/감추기

저자 : 마레인 하버비케(Marijn Haverbeke)
프로그래밍 언어의 열성적인 팬이자, 여러 언어에 능통하다. 코모도어(Commodore)에서 BASIC 게임을 한 뒤로 C++ 시절을 거쳐 주로 동적 언어로 데이터베이스 시스템과 웹 API를 탐구하는 현재에 이르렀다. 아울러 각종 인기 있는 오픈소스 프로젝트를 만들고 유지 보수하고 있다.
역자 : 이대엽
책 만드는 일을 하고 있으며 이따금 IT 관련 서적을 번역하기도 한다. 좋은 책을 펴내거나 직접 우리말로 옮겨 독자에게 전하는 데 큰 즐거움을 느끼며, 옮긴 책으로는 『개념을 잡아주는 프로그래밍 정석』, 『Modular Java 모듈라 자바』, 『시작하세요! 맥 OS X 라이언』, 『도메인 주도 설계』, 『이거 불법 아냐?』, 『자율학습! 안드로이드 프로그래밍』, 『하이버네이트 완벽 가이드』 등이 있다.

책 속으로 책속으로 보이기/감추기

1970년대에 최초로 소개된 개인용 컴퓨터에는 대부분 간단한 프로그래밍 언어(베이직의 변종)가 탑재돼 있었으며, 컴파일러와 상호작용하려면 이러한 언어를 사용해야 했다. 이는 기술적으로 서툰 사람들이 단순한 컴퓨터 활용만으로도 수월하게 프로그래밍을 해볼 수 있었음을 의미했다.

오늘날, 1970년대에 비해 몇 배는 강력해지고 저렴해진 컴퓨터에서는 소프트웨어 인터페이스로 언어 대신 마우스를 조작하는 번듯한 그래픽 인터페이스가 제공되는 추세다. 이로써 컴퓨터는 훨씬 더 이용하기 편해졌고 전체적으로 대단히 향상됐다. 하지만 동시에 컴퓨터 사용자와 프로그래밍 세계 사이에는 장벽이 생기기도 했다. 즉, 컴퓨터가 취미인 사람들은 컴퓨터를 켜자마자 쓸 수 있는 프로그래밍 환경이 준비돼 있는 게 아니라 스스로 프로그래밍 환경을 적극적으로 구축해야 한다.

내부적으로 컴퓨터 시스템에는 여전히 다양한 프로그래밍 언어가 들어 있다. 이러한 언어는 대부분 초기 개인용 컴퓨터에서 제공되던 베이직 계열의 언어보다 훨씬 개선된 것이다. 이를테면 이 책에서 다루는 자바스크립트 언어는 모든 주류 웹 브라우저에서 지원한다.

프로그래밍에 대해

이 책에서는 자바스크립트를 설명하는 것뿐만 아니라 프로그래밍의 기본 원칙도 소개한다. 곧 드러나겠지만 프로그래밍은 어렵다. 근본적인 규칙은 대개 간단하고 명확하지만, 이러한 기초적인 규칙을 토대로 만들어진 프로그램은 자체적인 규칙과 복잡성이 생길 정도로 복잡해지곤 한다. 이런 이유로 프로그래밍은 간단한 경우가 드물고 예측하기도 불가능하다. 프로그래밍 분야의 창시자로 통하는 도날드 커누스(Donald Knuth)가 말했듯이 프로그래밍은 과학이라기보다는 예술에 가깝다.

이 책에서 뭔가를 얻으려면 수동적으로 책을 읽는 것만으로는 부족하다. 예리함을 견지하려 하고, 예제 코드를 이해하려고 노력하며, 본문의 내용을 충분히 이해하고 난 후에만 진도를 나가야 한다.

프로그램의 정의는 다양하다. 프로그램은 프로그래머가 입력하는 텍스트 조각이자 컴퓨터가 어떤 일을 하게끔 지시하는 것이며, 컴퓨터 메모리에 존재하는 데이터이자 동일한 메모리상에서 수행되는 동작을 제어하기도 한다. 프로그램을 우리에게 친근한 사물과 비교하는 것만으론 충분하지 않으며, 겉모습을 기준으로 보면 프로그램은 기계다. 기계식 손목시계를 구성하는 장치는 서로 기가 막히게 맞아떨어지며, 시계공의 솜씨가 좋다면 몇 년 동안 정확하게 시간을 보여줄 것이다. 프로그램을 구성하는 요소는 이와 비슷한 방식으로 서로 맞아떨어지며, 프로그래머가 자신이 하는 일을 잘 이해하고 있다면 그가 짠 프로그램도 문제없이 실행될 것이다.

컴퓨터는 이처럼 실체가 없는 기계의 주인 역할을 하도록 만들어진 기구다. 컴퓨터 자체는 우직하게 간단한 일만을 수행할 수 있다. 컴퓨터가 아주 유용한 이유는 이런 일들을 믿을 수 없을 만큼 빠른 속도로 해내기 때문이다. 프로그램에서는 아주 복잡한 일을 수행하기 위해 어마어마한 양의 간단한 동작을 기발한 방식으로 구성할 수 있다.

컴퓨터 프로그램을 작성하는 일을 마치 흥미진진한 게임처럼 느끼는 이들도 있다. 프로그램은 생각을 토대로 만들어진다. 프로그램은 만드는 데 비용이 들지 않으며, 무게도 없고, 손으로 입력하는 것만으로도 손쉽게 규모를 늘릴 수 있다. 하지만 조심하지 않으면 프로그램의 크기와 복잡성은 감당할 수 없을 정도로 커져서 그것을 만든 사람조차도 혼란스럽게 만든다. 이처럼 프로그램을 제어할 수 있는 상태로 유지하는 것은 프로그래밍에서 가장 중요한 문제다. 동작하는 프로그램은 아름답다. 프로그래밍이라는 예술은 복잡성을 제어하는 솜씨와도 같다. 훌륭한 프로그램은 차분하며, 복잡성 안에 단순함이 깃들어 있다.

오늘날 대다수 프로그래머들은 프로그램 내에서 이해하기 쉬운 자그마한 기법을 쓰는 것만이 이러한 복잡성을 관리하는 가장 좋은 방법이라고 믿는다. 프로그래머들은 프로그램이 지녀야 할 형태에 관한 엄격한 규칙들(모범 사례)을 만들었고, 특히 매우 열성적인 프로그래머들은 이러한 규칙을 어기는 자들을 형편없는 프로그래머라고 비난하기도 한다.

이는 프로그래밍의 풍요로움에 대한 매우 적대적인 태도다. 즉, 뭔가 쉽게 이해할 수 있고 예측 가능한 것으로 제한하려 하고, 모든 요상하고 아름다운 프로그램에 금기를 두려는 것과 다를 바 없다. 프로그래밍 기법은 매우 거대하고, 다양성이라는 측면에서 대단히 흥미로우며, 개척되지 않은 미답의 분야다. 여기엔 미숙한 프로그래머가 온갖 종류의 끔찍한 실수를 저지르게 하는 함정과 덫이 깔려 있는 게 분명하지만, 이는 조심스럽게 나아가고 침착하게 대응할 준비를 해야 한다는 의미에 불과하다. 배움을 더할수록 항상 새로운 도전과 개척해야 할 영역이 기다리고 있다. 탐험을 계속하길 거부하는 프로그래머라면 분명 정체 상태에서 벗어날 수 없고, 즐거움을 잊어버리며, 프로그래밍하려는 의지를 잃을 것이다(그리고 관리자가 될 것이다).

자바스크립트란 무엇인가?

자바스크립트는 현재 월드와이드웹(World Wide Web) 페이지에서 일어나는 온갖 종류의 멋진(그리고 때로는 짜증나는) 일들을 하는 데 주로 사용되는 언어다. 최근 몇 년간 자바스크립트는 다양한 환경에서 사용되기 시작했다. 예를 들면 자바스크립트로 빠른 서버 측 프로그램을 작성하는 수단인 node.js 프레임워크는 최근에 상당한 주목을 끌고 있다. 프로그래밍에 관심이 있다면 자바스크립트는 확실히 배우기에 유용한 언어다. 웹 프로그래밍을 그다지 많이 해본 적이 없더라도 이 책에서 보여줄 일부 프로그램은 여러분 곁에 계속 남아 다른 언어로 작성하는 프로그램에 영향을 줄 것이다.

자바스크립트 언어에 관해 안 좋은 소리를 하는 사람도 있다. 그들의 말 중에는 맞는 이야기도 많다. 처음으로 자바스크립트를 시작하고 나서 나는 금세 자바스크립트를 경멸하기에 이르렀다. 자바스크립트는 내가 입력하는 것은 거의 무엇이든 받아들였는데, 내가 의미하는 바와는 전혀 다른 식으로 해석했던 것이다. 인정하건대 이는 내가 뭘 하고 있는지 전혀 몰랐다는 사실과 관계가 깊었지만, 실제 문제는 자바스크립트가 (허용하는 범위 내에서는) 터무니없을 정도로 자유롭다는 점이었다. 이러한 설계에 깔린 사상은 초심자가 자바스크립트로 프로그래밍하는 것을 용이하게 하려는 의도였다. 실제로 이러한 의도는 주로 프로그램 내에서 발생한 문제를 더 찾기 어렵게 만들었는데, 시스템에서 그러한 문제를 지적하지 않기 때문이었다.

하지만 이와 같은 자바스크립트 언어의 유연함은 장점이기도 하다. 자바스크립트는 좀 더 엄격한 언어에서는 불가능한 갖가지 기법들을 활용할 여지를 주고, 이런 기법들을 자바스크립트의 일부 단점을 극복하는 데 활용할 수 있다. 그런 기법을 적절히 배워서 잠시 다뤄보고 나니 정말 이 언어를 좋아하게 됐다.

이름과는 달리, 자바스크립트(JavaScript)는 자바(Java)라는 프로그래밍 언어와는 거의 관련이 없다. 이름이 비슷한 것은 적절한 판단이라기보다는 마케팅 차원에서 영감을 받은 것이다. 1995년에 자바스크립트가 넷스케이프에 도입됐을 때 자바는 마케팅에 심혈을 기울여 대중적인 인기를 끌고 있었다. 분명 누군가가 자바의 성공에 편승하는 것이 좋겠다고 생각했을 것이다. 하지만 지금은 이름 때문에 혼란만 과중될 뿐이다.

자바스크립트와 관계된 것으로 ECMAScript라는 것이 있다. 넷스케이프 외의 브라우저가 자바스크립트 또는 비슷한 뭔가를 지원하기 시작했을 때 자바스크립트 시스템이 동작하는 방식을 정확하게 설명하는 문서가 작성됐다. 이 문서에 기술된 언어를 ECMAScript라고 하며, ECMAScript는 이것을 표준화하는 조직의 이름을 딴 것이다. ECMAScript는 일반 목적용 프로그래밍 언어를 기술하며, 이 언어를 웹 브라우저에 통합하는 데 관해서는 아무것도 언급하지 않는다.

자바스크립트에는 7가지 ‘버전’이 있다. 이 책에서는 ECMAScript 버전 3을 설명하며, 이 버전은 다양한 브라우저에서 폭넓게 지원된(그리고 지금도 폭넓게 지원되는) 첫 번째 버전이다. 지난 몇 년간 ECMAScript를 대폭 개선하려는 여러 움직임이 있었지만, (적어도 웹 프로그래밍의 경우에는) 여러 브라우저에서 폭넓게 지원될 때만 이러한 개선의 결과가 유용하며, 브라우저에서 온전히 지원하기까지는 다소 시간이 걸릴 것이다. 다행히도 새로운 버전의 자바스크립트는 주로 ECMAScript 3의 확장판이 될 것이므로, 이 책에 적힌 거의 대부분의 내용은 계속 유효할 것이다.
---「저자 서문」 중에서

그야말로 자바스크립트의 전성시대다. 그동안 갖은 오해를 받아온 자바스크립트는 이제 업계에서 가장 관심받는 프로그래밍 언어로 자리 잡았고, 그 기세를 꺾을 만한 언어는 당분간 보기 힘들 것 같다. Ajax로 시작해서 Node.js까지, 웹을 보조하는 도구에 불과한 것으로 여겨졌던 자바스크립트 언어는 이제 서버 측 프로그래밍까지 활동 영역을 넓혀가고 있다.

이처럼 자바스크립트의 인기가 날로 높아지고는 있지만 일각에서는 자바스크립트 프로그래밍을 여전히 어렵게 받아들이는 사람이 많다. 이런 사람들은 대개 자바스크립트 언어를 폼 유효성 검증을 위한 스크립트로만 사용해 왔을 것이다. 아울러 강력한 프로토타입 기반 객체지향과 유연한 타입 시스템 같은 자바스크립트의 특징을 오히려 번거롭고 성가신 요소로 여기는 사람도 많을 것이다. 하지만 본문에도 나오지만 ‘큰 힘에는 큰 책임이 따르는 법’이다. 자바스크립트의 특장점을 십분 활용하려면 그에 걸맞은 노력이 필요하다. 그러자면 자바스크립트라는 프로그래밍 언어를 제대로 익히는 데 도움이 될 만한 실질적인 가이드가 필요하다.

이 책은 바로 이러한 ‘실질적인 가이드’에 해당하는 책이다. 먼저 프로그래밍 자체, 그리고 프로그래밍을 둘러싼 배경 지식을 소개하면서 초보자의 관점에서 프로그래밍이란 무엇인가를 알려준다. 이어서 자바스크립트를 통해 프로그래밍 전반에 관해 배운다. 초보자는 이 책을 통해 프로그래밍에 입문할 수 있고, 프로그래밍 경험이 있는 경우에는 자바스크립트 프로그래밍을 제대로 익힐 수 있다. 더불어 핵심을 관통하는 명쾌한 설명과 간결한 예제는 다른 두껍고 지루한 자바스크립트 입문서에 지친 사람에게 자바스크립트를 다시 한 번 제대로 배울 수 있는 기회를 만들어줄 것이다. 그리고 아직 프로그래밍이나 자바스크립트에 입문하지 않았다면 두말할 나위 없이 이 책이 안성맞춤일 것이다.

참고로 이 책의 내용은 상당 부분 인터넷에 공개돼 있다. http://eloquentjavascript.net에서는 이 책의 원문을 읽어보거나 예제 코드를 직접 실행해볼 수 있다. 적은 분량으로 프로그래밍과 자바스크립트라는 주제를 한 번에 잘 다룰 수 없으리라는 의구심이 든다면 위 사이트에서 직접 확인하길 바란다. 게다가 이 책의 내용을 토대로 쓴 커피스크립트 책도 있으니 내용상의 검증은 이미 돼 있다고 생각한다.

그동안 자바스크립트에 관한 책은 많았지만 상당수 자바스크립트를 너무 피상적으로 소개하거나, 특정 주제만 다루거나 세세한 사항 하나하나까지 다루는 책들이 많았다. 초보자가 자바스크립트에 입문하기에 딱 적합한 책을 찾기가 힘들었는데, 이 책이 바로 그러한 책이고, 내가 직접 우리말로 번역하는 기회까지 누릴 수 있게 됐다. 자바스크립트에 입문하고자 하는 사람들에게 자신 있게 추천할 수 있는 책이 하나 생긴 것 같아 감회가 새롭다.
---「옮긴이의 말」 중에서

출판사 리뷰 출판사 리뷰 보이기/감추기

회원리뷰 (0건) 회원리뷰 이동

  등록된 리뷰가 없습니다!

첫번째 리뷰어가 되어주세요.

한줄평 (0건) 한줄평 이동

  등록된 한줄평이 없습니다!

첫번째 한줄평을 남겨주세요.

배송/반품/교환 안내

배송 안내
반품/교환 안내에 대한 내용입니다.
배송 구분 예스24 배송
  •  배송비 : 무료배송
포장 안내

안전하고 정확한 포장을 위해 CCTV를 설치하여 운영하고 있습니다.

고객님께 배송되는 모든 상품을 CCTV로 녹화하고 있으며, 철저한 모니터링을 통해 작업 과정에 문제가 없도록 최선을 다 하겠습니다.

목적 : 안전한 포장 관리
촬영범위 : 박스 포장 작업

  • 포장안내1
  • 포장안내2
  • 포장안내3
  • 포장안내4
반품/교환 안내

상품 설명에 반품/교환과 관련한 안내가 있는경우 아래 내용보다 우선합니다. (업체 사정에 따라 달라질 수 있습니다)

반품/교환 안내에 대한 내용입니다.
반품/교환 방법
  •  고객만족센터(1544-3800), 중고샵(1566-4295)
  •  판매자 배송 상품은 판매자와 반품/교환이 협의된 상품에 한해 가능합니다.
반품/교환 가능기간
  •  출고 완료 후 10일 이내의 주문 상품
  •  디지털 콘텐츠인 eBook의 경우 구매 후 7일 이내의 상품
  •  중고상품의 경우 출고 완료일로부터 6일 이내의 상품 (구매확정 전 상태)
  •  모바일 쿠폰의 경우 유효기간(발행 후 1년) 내 등록하지 않은 상품
반품/교환 비용
  •  고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담임
  •  직수입양서/직수입일서중 일부는 변심 또는 착오로 취소시 해외주문취소수수료 20%를 부과할수 있음

    단, 아래의 주문/취소 조건인 경우, 취소 수수료 면제

    •  오늘 00시 ~ 06시 30분 주문을 오늘 오전 06시 30분 이전에 취소
    •  오늘 06시 30분 이후 주문을 익일 오전 06시 30분 이전에 취소
  •  직수입 음반/영상물/기프트 중 일부는 변심 또는 착오로 취소 시 해외주문취소수수료 30%를 부과할 수 있음

    단, 당일 00시~13시 사이의 주문은 취소 수수료 면제

  •  박스 포장은 택배 배송이 가능한 규격과 무게를 준수하며, 고객의 단순변심 및 착오구매일 경우 상품의 반송비용은 박스 당 부과됩니다.
반품/교환 불가사유
  •  소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  •  소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 : 예) 화장품, 식품, 가전제품, 전자책 단말기 등
  •  복제가 가능한 상품 등의 포장을 훼손한 경우 : 예) CD/LP, DVD/Blu-ray, 소프트웨어, 만화책, 잡지, 영상 화보집
  •  소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  •  디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  •  eBook 대여 상품은 대여 기간이 종료 되거나, 2회 이상 대여 했을 경우 취소 불가
  •  모바일 쿠폰 등록 후 취소/환불 불가
  •  중고상품이 구매확정(자동 구매확정은 출고완료일로부터 7일)된 경우
  •  LP상품의 재생 불량 원인이 기기의 사양 및 문제인 경우 (All-in-One 일체형 일부 보급형 오디오 모델 사용 등)
  •  시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  •  전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
소비자 피해보상
  •  상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리됨
환불 지연에
따른 배상
  •  대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리
뒤로 앞으로 맨위로 공유하기