메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

You Don’t Know JS Yet

자바스크립트 개념, 스코프와 클로저

한빛미디어

번역서

판매중

5점 (20명)
좋아요 : 33

당신은 아직 자바스크립트를 모른다! 

더욱 깊이, 제대로 이해하는 자바스크립트 핵심 개념

 

세계적으로 베스트셀러가 된 『You Don't Know JS』 시리즈가 2판으로 돌아왔습니다. 2판은 자바스크립트의 모든 측면을 다루고 유용한 정보를 제공하기 위해 완전히 새롭게 작성되었습니다. 이 책은 자바스크립트 핵심 개념을 깊이 다루며, 유용한 코드 패턴도 소개합니다. 또한 자바스크립트를 학습하면서 생기는 다양한 의문을 저자 특유의 독특한 시각과 재치 있는 설명으로 탐구합니다. 

 

이 책은 『You Don't Know JS Yet』 시리즈의 첫 번째 책인 ‘시작하기’와 두 번째 책인 ‘스코프와 클로저’를 한 권으로 엮었습니다. 자바스크립트의 핵심 개념을 이해하고자 하는 분들에게 완벽한 가이드가 될 것이며, 더 깊이 파고들고 싶은 개발자에게 매우 유용할 것입니다. 여러분의 개발 실력을 한 단계 높여줄 완벽한 가이드를 손에 들고 흥미로운 자바스크립트 여정을 떠날 차례입니다.

 

상세이미지700_You Don't Know JS Yet.jpg

카일 심슨 저자

카일 심슨

텍사스 오스틴 출신의 오픈 웹 전도사. 자바스크립트, HTML5, 실시간 P2P 통신과 웹 성능에 열정적인 관심이 있다. 열정이 없었다면, 이런 작업에 이미 진력이 났을 것이다. 저술가이자 워크숍 강사, 기술 연사이며, 오픈 소스 커뮤니티에서도 열심히 활동한다.

 

이보라 역자

이보라

연구 기관, 스타트업, 솔루션 회사, 유니콘 커머스 기업, 글로벌 블록체인 기업을 두루 거치며 프런트엔드 개발자로서 자바스크립트를 사용해왔다. 서강대학교 게임&평생교육원에서 교수로 근무하며 블록체인, 오픈 소스, 메타버스 관련 강의를 하고 있다. 모던 JavaScript 튜토리얼 한국어 프로젝트(https://ko.javascript.info)의 오너, 글로벌 프로젝트의 모더레이터로 활동 중이며, 마이크로소프트 Developer Technologies 분야의 MVP, 글로벌 비영리 기구 위민후코드(Women Who Code) 서울 지부의 지부장으로 활동 중이다.

[PART I 시작하기]

 

CHAPTER 1 자바스크립트

_1.1 책에 대하여

_1.2 자바스크립트 이름의 유래

_1.3 명세서

_1.4 JS의 다양한 얼굴

_1.5 하위 호환성과 상위 호환성

_1.6 인터프리터 이해하기

_1.7 엄격 모드

_1.8 정리

 

CHAPTER 2 자바스크립트 조망하기

_2.1 파일은 프로그램입니다

_2.2 값

_2.3 변수 선언과 사용

_2.4 함수

_2.5 비교

_2.6 코드 구조화 패턴

_2.7 더 깊은 토끼 굴로

 

CHAPTER 3 자바스크립트 뿌리 파헤치기

_3.1 이터레이션

_3.2 클로저

_3.3 this 키워드

_3.4 프로토타입

_3.5 ‘왜?’라고 질문하기

 

CHAPTER 4 더 큰 그림

_4.1 첫 번째 기둥: 스코프와 클로저

_4.2 두 번째 기둥: 프로토타입

_4.3 세 번째 기둥: 타입과 타입 강제 변환

_4.4 JS의 본질 따르기

_4.5 학습 순서

 

APPENDIX A 더 멀리 나가기

_A.1 값 vs. 참조

_A.2 다양한 형태의 함수

_A.3 강제 조건부 비교

_A.4 프로토타입 클래스

 

APPENDIX B 연습만이 살길입니다!

_B.1 비교 연습하기

_B.2 클로저 연습하기

_B.3 프로토타입 연습하기

_B.4 모범 답안

 

[PART II 스코프와 클로저]


CHAPTER 1 스코프

_1.1 책에 대하여

_1.2 컴파일 vs. 인터프리트

_1.3 코드 컴파일

_1.4 컴파일러체

_1.5 런타임에 스코프 변경하기

_1.6 렉시컬 스코프

 

CHAPTER 2 렉시컬 스코프

_2.1 구슬과 양동이

_2.2 JS 엔진 구성원 간의 대화

_2.3 중첩 스코프

_2.4 정리

 

CHAPTER 3 스코프 체인

_3.1 탐색의 진실

_3.2 변수 섀도잉

_3.3 함수 이름 스코프

_3.4 화살표 함수

_3.5 정리

 

CHAPTER 4 전역 스코프

_4.1 전역 스코프를 배워야 하는 이유

_4.2 전역 스코프의 위치

_4.3 globalThis

_4.4 정리

 

CHAPTER 5 변수의 비밀 생명주기

_5.1 변수 사용 가능 시점

_5.2 호이스팅: 비유일 뿐입니다

_5.3 중복 선언 처리하기

_5.4 초기화되지 않은 변수와 TDZ

_5.5 정리

 

CHAPTER 6 스코프 노출 제한

_6.1 최소 노출의 원칙(POLE)

_6.2 일반(함수) 스코프에 숨기기

_6.3 블록으로 스코프 지정

_6.4 블록 내 함수 선언

_6.5 정리

 

CHAPTER 7 클로저 사용법

_7.1 클로저 관찰하기

_7.2 클로저 생명주기와 가비지 컬렉션

_7.3 다른 관점

_7.4 클로저를 사용하는 이유

_7.5 정리

 

CHAPTER 8 모듈 패턴

_8.1 캡슐화와 최소 노출의 원칙(POLE)

_8.2 모듈이란

_8.3 Node.js의 CommonJS 모듈

_8.4 최신 ES 모듈

_8.5 정리

 

APPENDIX A 한 걸음 더

_A.1 암시적 스코프

_A.2 익명 함수 vs. 기명 함수

_A.3 호이스팅: 함수와 변수

_A.4 var에 대한 변론

_A.5 TDZ

_A.6 동기 콜백도 여전히 클로저일까?

_A.7 클래식 모듈 변형

 

APPENDIX B 연습 문제

_B.1 구슬과 양동이

_B.2 클로저 1

_B.3 클로저 2

_B.4 클로저 3

_B.5 모듈

_B.6 모범 답안

아는 만큼 보이는 자바스크립트, 더 깊이 있게 이해하기

 

자바스크립트를 배워 본 사람은 많지만, 완전히 숙달한 사람은 훨씬 적습니다. 다 안다고 생각하지만, 사실상 습관처럼 사용해온 개념이 있지 않나요? 과연 자바스크립트를 다 알고 있는 게 맞을까요? 저자 카일 심슨은 『You Don’t Know JS Yet』 시리즈를 통해 모호했던 자바스크립트 개념과 착각하기 쉽고 이해하기 어려웠던 부분을 철저하게 파고듭니다. 헷갈리거나 무심코 지나갈 법한 부분까지 한 번 더 짚어주며 훨씬 깊이 자바스크립트를 이해할 수 있게 도와줍니다. 이 책이 설명하는 자바스크립트 세계를 차근차근 따라가다 보면 여러분은 자연스럽게 자바스크립트 작동 원리와 설계 원칙을 터득하게 될 것이며, 개발자로서 가져야 할 사고방식과 관점도 정립할 수 있을 것입니다. 

 

* 이 책은 『You Don’t Know JS Yet』 시리즈의 1권 ‘시작하기’와 2권 ‘스코프와 클로저’를 한 권의 종이책으로 엮은 것으로, 1부에서는 1권을, 2부에서는 2권의 내용을 다룹니다.


주요 내용

1부 시작하기

자바스크립트의 진화 과정

프로그램이 실제로 작동하는 방식

일반적인 오해 바로잡기

기본 구성 요소, 타입, 클로저, 프로토타입 소개

2부 스코프와 클로저

렉시컬 스코프 중첩으로 변수의 스코프 노출 제한하기

클로저를 통해 변수를 기억하는 함수 살펴보기

프로그래밍에서 가장 중요한 코드 구성 패턴인 모듈 소개
대상 독자

초급에서 중/고급으로 레벨 업하고 싶은 자바스크립트 개발자

자바스크립트 개발 경험이 있지만 때때로 개념이 헷갈리는 개발자

원인 모를 자바스크립트 오류로 힘겨워하는 개발자

추천사

 『You Don’t Know JS Yet』 시리즈는 도구에 숙달하고, 업무를 세심하게 처리하고, 문제 해결을 위한 적절한 방법을 선택하고자 하는 모든 소프트웨어 전문가를 위한 책입니다. (중략) 탄탄한 자바스크립트 기초는 그 어떤 프레임워크보다 여러분에게 도움을 줄 겁니다. 프레임워크는 왔다가 사라지지만 우리는 앞으로 수십 년 동안 자바스크립트로 코딩할 것이기 때문이죠. 열린 마음으로 여러분이 가진 자바스크립트에 대한 선입견에 도전하세요. 제가 그랬던 것처럼 여러분도 자바스크립트를 (아직) 모를 수 있으니까요.

브라이언 홀트, Snowflake 수석 제품 관리자

 

이 책을 집어 들기도 전에 저는 이미 클로저에 매료되어 있었습니다. 하지만 코드를 성공적으로 실행하는 것과 개념을 깊이 있게 탐구하는 것 사이에는 차이가 있습니다. 이 책은 제가 가지고 있던 기본적인 이해를 끌어내어 기술을 숙달할 수 있게 해줬습니다. 짧지만 유용한 지식이 촘촘하게 담겨 있는 책이라 한 페이지씩 천천히 읽어보길 추천합니다. 책이 닳아 없어지도록요.

사라 드라스너, 구글 엔지니어링 디렉터이자 핵심 웹 개발자

 

자바스크립트 세계로 들어갈 수 있는 훌륭한 책입니다. 자바스크립트와 관련된 모든 개념을 설명하고, 거기에 더불어 자바스크립트의 비밀과 여러분이 걸려 넘어지기 쉬운 꼼수까지 설명합니다. 자바스크립트 세계를 확실히 알고 싶은 개발자에게 이 책을 추천합니다!

릴리 로호, 아마존 독자

 

『You Don’t Know JS Yet』 시리즈는 자바스크립트 학습의 즐거움을 선사합니다. 자바스크립트의 큰 그림을 보여주면서도 핵심 내용은 빼먹지 않습니다. 간결하면서 포괄적인, 그리고 핵심을 관통하는 저자의 표현 방식과 철학은 여러분의 사고를 확장시킬 겁니다. 다른 시리즈도 빨리 나오면 좋겠네요.

라비 아브라함, 아마존 독자

 

이 책 덕분에 드디어 자바스크립트를 이해하게 되었습니다. 유능한 개발자에게도 도움이 되는 자세하고 이해하기 쉬운 내용으로 가득 차 있습니다. 자바스크립트 개발의 필독서가 되어야 합니다!

나일, 아마존 독자

JS는 언어의 확장성과 활용성 때문에 쉬운 언어라고 생각했습니다.
이 책을 읽고 어려워졌다는건 아니지만, 쉽게 쓸 수 있는 만큼 고려해야 하는 사항이 많다는 걸 간과했다는 사실을 깨달았습니다.

책의 저자도 얘기하는 부분이지만, 이 책이 JS의 바이블은 아닙니다.

다만 이 책에서는 자신의 개발에 대한 철학을 한 번 생각해 볼 수 있는 기회를 가질 수 있습니다.
 

우리는 아직 JS를 모르고 있습니다. 개발에 관한 것도요.

2024년 1월에 출간된 한빛미디어의 <You Don't Know JS Yet>에 대해 알아보겠습니다. 이 책은 <You Don't Know JS: 타입과 문법, 스코프와 클로저>의 개정판입니다. 이 책의 저자인 카일 심슨은 자바스크립트 세계에서 유명인이고, 아마존 평가 점수는 5점 만점에 4.7점으로 높은 평가를 받은 유명한 책입니다. 국내 서점에서의 평가 점수는 교보문고, YES24 그리고 한빛미디어에서 4점대 후반으로 높은 점수를 받고 있습니다.

 

<You Don't Know JS Yet>은 약 350여 페이지로 구성되어 있으며, 휴대하면서 보기에도 적합한 두께입니다. 태블릿이 있으신 분은 전자책으로 보는 것을 추천합니다. 참고로 필자는 전자책으로 봤습니다. 


 


한빛미디어의 도서 지원을 받아 작성한 리뷰입니다. 

한빛미디어에서 제공해 준 책을 읽고 작성했음을 밝힙니다.


 

 

이 책의 매력 포인트

이 책은 원서 2권을 한 권의 책으로 엮어 출간했습니다. 1부 시작하기, 2부 스코프와 클로저로 구성되어 있으며, 입문서가 아니며 자바스크립트를 어느 정도 이해하고 있는 분께 도움이 되는 책입니다. 

 

이 책의 전신인 <You Don't Know JS: 타입과 문법, 스코프와 클로저>을 읽었었는데, 이 책을 다시 만나게 되어 반가웠습니다. 이 책을 읽다 보면, 새로운 문법에 대한 저자의 의견이 반영되어 있는데, 개인적으로 저자의 모든 의견에 공감하지는 않지만 새로운 시각을 볼 수 있는 계기가 되어 좋았습니다. 

 

기존에 읽었던 책의 내용이 마음에 들어, 세미나를 하려고 했으나 절판이 되어 아쉬웠는데, 이 책이 출간되어 기뻤습니다. 이제 연구실 멤버들과 세미나를 진행할 수 있을 것 같습니다. 

 

이 책은 여러 권으로 구성되어 있는데, 아직 모든 책이 출간되지 않았습니다. 생각보다 느린 속도로 업데이트되고 있지만 곧 결과물이 나올 것으로 기대합니다. 하지만 원서도 아직 출간 전이니 꽤 오래 기다려야 할 수도 있습니다. 개인적으로 빨리 출간되었으면 좋겠습니다. 

 

 

마치면서

<You Don't Know JS Yet>를 읽고, 예전에 읽었었던 내용을 다시 상기하기도 했고, 잊어버렸던 내용을 다시 배우기도 했습니다. 필자는 조만간 다시 한번 읽어보고 세미나를 준비하려 합니다. 그만한 가치가 있는 책이라고 생각합니다. 

 

초보자가 보기에는 조금 어려운 내용을 기술하고 있지만, 차분히 읽고 정리하면 충분히 이해할 수 있을 것으로 생각합니다. <You Don't Know JS Yet> 시리즈는 자바스크립트 개발자라면 꼭 읽어야 할 책이라고 생각합니다. 다음 시리즈를 기대하며 글을 마칩니다. 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

<서론>
개인적으로 웹 프런트 개발을 공부하고 싶어서 리액트를 공부하던 중 자바스크립트에 대한 이해도가 많이 떨어진다는 생각에 관련 도서를 찾던 중 "당신은 아직 자바스크립트를 모른다"는 자극적인 제목을 가진 이 책이 한빛 미디어의 리뷰 이벤트 목록에서 눈에 띄었다.
이 책의 겉표지에 적혀 있는 것처럼 모호하고 애매한 자바스크립트의 개념에 대해 좀 더 깊이 있는 이해를 할 수 있다면 이 언어를 잘  사용할 수 있지 않을까 하는 희망을 품고 이 책을 읽기 시작하였다.

 

<대상 독자>
자바스크립트를 한 번도 다루어보지 않은 개발자라면 먼저 기본적인 문법은 먼저 학습하기를 추천한다. 저자도 “이 책에 대하여” 장에서 언급했듯이 이 책은 단순 문법에 대한 설명이 아닌 언어의 작동 원리를 중심으로 언어의 핵심 개념을 배울 수 있게 되어 있다. 그래서 평상시 자바스크립트를 사용하면서 가졌던 의문들이 있다면 좀 더 능동적으로 읽을 수 있고 그 만큼 학습 효과도 높일 수 있다고 생각된다.

 

 

<내용>
이 책은 크게 2부분으로 구성되어 있으며 일부 중요한 내용을 정리하면 다음과 같다.

* 자바스크립트라는 이름은 자바와는 관계가 없으며 마케팅 목적으로 고안된 이름이다. 표준 기구의 공식 명칭은 ECMAScript 이다.
* JS는 다중 패러다임 언어다. (절차적, 객체 지향, 함수형)
* JS의 중요 기본 원칙: 하위 호환성 (과거에 작성한 코드가 시간이 흘러도 정상적으로 동작함을 보장한다.)
* polyfill: 새로운 API의 추가로 인해 상위 호환성 문제가 발생할 경우 이를 추가하여 과거에도 존재했던 것처럼 만들어 정상 동작시키는 방법 (shim이라고도 불림)
* JS는 인터프리터 언어보다 컴파일 언어에 가깝다. (진짜?)
* coercion: 타입 강제 변환
* scope: 변수가 어떤 것을 참조하는지를 결정하는 규칙 모음
* this: 동적 실행 컨텍스트
* 프로토타입: 두 객체를 연결하는 연결 장치
* 컴파일 3단계: tokenizing/lexing, parsing, 코드 생성
* hoisting: 선언이 스코프 아래에 존재하더라도 스코프 시작 부분에서 변수의 가시성이 확보됨 (영어 뜻: 끌어올리다)
* principle of least exposure (최소 노출의 법칙): 변수의 노출 범위를 최소화하자.
* 클로저: 함수가 정의된 스코프가 아닌 다른 스코프에서 함수가 실행되어도 스코프 밖에 있는 변수를 기억하고 이 외부 변수에 계속 접근할 수 있는 경우
* 클로저: 내부 함수가 외부 스코프에 있는 변수를 참고하는 것
* 클로저를 통해서 변수를 더 제한된 스코프로 캡슐화가 가능하다.
* 모듈: 관련된 데이터와 함수의 모음

JS를 구성하는 3개 주요 기둥
* 스코프와 클로져
* 프로토타입
* 타입과 타입 강제 변환

 

현재 이 책에서는 "스코프와 클로져"의 내용만 포함되어 있으며 다른 두 기둥에 대한 내용은 현재 시점에서 집필 중이다.
저자의 github 주소: https://github.com/getify

 

<총평>

* JS를 사용하면서 애매모호 했던 개념들을 확실히 이해할 수 있다.

* 적절한 코드와 그림을 통해 복잡한 개념의 이해를 돕는다.

* 번역이 잘되어 있어 내용이 잘 읽힌다.

* 비판적인 시각을 가지고 능동적으로 책을 읽자.

* 연습 문제를 직접 풀어보면서 설명된 개념들을 체득할 수 있다.

 

만약 Javascript를 다룰 줄은 알지만, 깊이 있게 알지 못한다면 한번 쯤 읽어봐야 하는 책이라고 생각한다. 고로, 추천한다.

만약 "음... 아직 감이 안오는데..." 싶을 수 있으니... 구미가 당길만한 몇가지 문장을 소개하면…
- 클래스 만이 객체를 사용하는 유일한 방법은 아니다.
- `===`만 사용한다고 모든 문제는 해결되지 않는다.
- `var`를 사용하지말라는 건 지나치게 한정을 짓는 제안이고 도움이 되지 않는 제안입니다.

 

'You Don't Know JS Yet'이라는 다소 도발적인(?) 제목의 자바스크립트 책이 나왔습니다.
출판사는 한빛미디어, 지은이는 카일 심슨이고요.

 

책 제목은 한글 번역본과 원서가 똑같고,
다른 점은 책 표지에도 적혀 있지만,
번역본에서는 1권 '시작하기' & 2권 '스코프와 클로저'가 합본으로 발간되었습니다.

 

원서는 각각 따로 되어 있어요.
You Don't Know JS Yet: Get Started,
You Don't Know JS: Scope & Closures,
이렇게 2권으로요.

 

아무튼 번역본은 합본으로 나와서 읽기 편하군요!!

 

이 책은 초보자를 위한 프로그래밍 문법 책이 아니라,
지은이가 사람들에게 자바스크립트 언어의 본질을 이해시키기 위해 쓴 책이예요.
내용에 깊이가 있는 만큼 독자 리뷰가 좋을 수밖에 없고,
본질 탐구를 좋아하는 사람들 입장에서는 이런 류의 책이 출간되면 그저 고맙고 감사할 뿐입니다.

 

자바스크립트는 재밌는 언어라고 생각해요.
며칠 만에 만들어진 주제에 세계에서 가장 힘있는 언어가 되었고요.
대충 공부하고 개떡같이 코딩해도 서비스가 얼렁뚱땅 돌아갑니다.
프레임워크만 알아도 취업이 가능하기도 하죠?! ^^;

 

하지만 위와 같이 생각하고 웹 개발에 뛰어 들면
그 수명이 길지 못할 수도 있습니다.
지루한 본질은 외면하고 화려한 겉모습만 쫓아다니는 꼴이 될 수 있거든요.

 

JSON 창시자인 더글러스 크록퍼드는 자바스크립트를,
"세상에서 가장 잘못 이해하고 있는 언어"라고 말했습니다.
자바스크립트가 가징 강력한 기능을 사람들이 올바로 이해하지 못해
제대로 사용하지 못하고 있다는 의미입니다.

 

'You Don't Know JS Yet'는 자바스크립트 완전 입문자가 보고 이해하기는 조금 어렵습니다.
 최소(!!) 3개월 이상은 학습하면서 1개 이상의 개인 프로젝트를 한 후에 보시기를 추천합니다.

 

프로그래밍 실력을 높이는 방법으로 사람들이 대게 추천하는 것이,
현업에서 돈 벌면서 배우거나 그럴 여건이 안되면 프로젝트를 하는건데요.
이런 방법은 단기간에 경험을 쌓으면서 실력을 쭉쭉 상승시켜주는 건 맞습니다.

하지만 깊이있는 본질 탐구(?)의 시간없이 앞만 보며 코딩에만 매달리는 건 한계가 올 수 있어요.

 

내가 어느정도 다 안다고 생각한 자바스크립트를
다시 책 보고 공부하라고 하면 귀차니즘이 발동될 수 있지만
진정한 중급 웹 개발자로의 승급을 꿈꾼다면
'You Don't Know JS Yet' 같은 책을 꼭 한 번 보면 좋습니다.

 

그렇다고 며칠 각 잡고 완독을 할 필요는 없습니다..
이 책은 개발하면서 눈에 보이는 곳에 비치해두고 수시로 보는 것이 좋습니다.
지은이인 카일 심슨도 그렇게 하라고 권장하고요.

 

개발자라고 다 같은 개발자가 아닙니다.
감히 단언컨대, 적어도 웹 개발 분야에서는
이 책을 읽은 사람과 읽지 않은 사람의 차이가
시간이 지날수록 확실하게 벌어질 것이라고 생각합니다.
(물론 다른 좋은 책도 많습니다^^)

 

"백문이 불여일타"
코딩은 책을 보는 것보다 직접 쳐보는 게 실력 향상의 지름길이 맞지만
진짜 괜찮은 책이라면 시간을 들여서 꼭 읽어보기를 추천합니다.
유튜브에 자기계발, 동기부여 영상이 수없이 많은데요.
여러분이 개발자라면 'You Don't Know JS Yet'을 읽는 게 진짜 자기계발입니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 전부터 읽어보고 싶던 책이었다. 시중에 자바스크립트 딥다이브를 위한 책은 여러 종류가 있지만 그중에 여러 경로로 추천을 받았던 책이기도 하다. 앞서 <코어 자바스크립트>나 최근에 <모던 리액트 DeepDive>를 읽으면서 좀 더 자바스크립트 자체에 집중한 책에 대한 니즈가 있기도 했고, 때마침 개정판이 나오면서 읽기에 적절한 시기였다. 전반적으로 앞서 다른 자바스크립트 교재를 통해 학습한 내용 중 좀 더 심화적으로 접근하고 싶다면 이 책은 좋은 선택이다.

 

 저자가 앞서 언급하기도 하지만 이 책은 초급자를 위한 책이라고 보기는 어렵다. 다만 전반적인 자바스크립트 문법을 어느 정도 익힌 상태라면, 혹은 본인이 자바스크립트 심화 학습을 위한 시간을 확보할 수 있는 사람이라면 천천히 학습하는 것이 불가능한 책은 아니다. 이 책은 온전히 받아들이기에는 시간이 확보되어야 한다. 처음부터 끝까지 한번에 다 학습하려는 방식보다는 프로젝트 도중, 혹은 다른 책이나 강의를 통해서 학습하다가 특정 파트에 대해서 좀 더 깊게 공부하고자 할 때 그 파트를 세심하게 들여다보는 방식을 취하기에 좋은 책이다. 단시간에 훑어 내려가는 것보다 장시간에 걸쳐 한 챕터, 혹은 관심이 생긴 부분의 한 단락씩 깊게 읽어 내려가는 것이 이 책을 온전히 받아들이기에 더 나은 방식이 아닐까 싶다.

 

 파트 1 전반부에는 자바스크립트의 다른 개념들을 훑고, 그 이후에는 클로저에 사용되는 필수 개념인 스코프를 다루고 클로저로 이어지게 된다. 챕터 1에는 평소 자바스크립트 학습 자체에 집중할 때는 접하기 어려운 TC39의 의사 결정을 다루는 부분이 흥미롭기도 했고, 자바스크립트를 학습하다 보면 접하게 되는 Web API나 프로그래밍 패러다임, 폴리필, 웹어셈블리 등 개발자 선배가 말해주듯 구어체로 적혀 있어서 전반적으로 쉽게 읽혀 내려가는 파트였다. 챕터 2에는 우리가 그간 학습해 왔던 자바스크립트 문법에 관련된 이야기를 풀어내고 있는데, var를 사용하는 순간이나 const 객체 재할당, === 연산자의 거짓말이라는 표현과 설명이 인상적이었다. 문법을 사용하는 것 자체가 중요한 것이 아니라 이 문법을 사용해야 하는 이유에 대해 집중하라는 의미처럼 느껴졌다. 챕터3 이후부터는 이터레이션, this, 프로토타입 등 자바스크립트를 초기에 학습하면 다소 추상적으로 들리는 부분들에 대한 설명으로 이어진다.

 

 앞서 파트 1의 설명이 끝나면 파트 2에는 스코프와 클로저를 다루고 있는데, 전반적으로 시각화가 잘 되어 있는 부분이 인상적이었다. 작년에 처음 클로저와 스코프를 학습할 때 시각화 자료를 통해 도움을 받았던 기억이 있는데, 초기에 이해하는 데에 시각화 자료만 한 게 없다는 생각이 든다. 특히나 파트 2는 천천히 읽어보면서 하나씩 짚어가기를 권하고 싶다. 파트 1도 마찬가지긴 하지만 APPENDIX에 저자의 조언 같은 것들이 실려 있는데, 사수가 없는 주니어 개발자라면 이 파트에서 적지 않은 도움을 받을 수 있다. 예컨대 초기에 자바스크립트를 학습하다 보면 var를 쓰지 말라고 하는 많은 글들을 접하게 되는데, 우리가 왜 var를 버리지 말아야 하는지에 대한 설명과 var에 대해 어떻게 접근해야 하는지 친절하지만 때론 단호하게 조언을 이어간다.

 

 우린 기술적인 접근을 할 때 초기엔 학습 자체에 매진하고 그 이후엔 소위 말하는 딥다이브 학습을 하게 되는데, 개인적으로 딥다이브 학습이라는 건 단순히 문법이나 그 기술을 사용하는 방법 이상으로 왜 사용하는지 그 본질에 접근하는 학습이라는 생각이 든다. 자바스크립트 기반의 Vue나 React 같은 라이브러리, 프레임워크를 사용하면서 익명함수나 화살표 함수 등을 자연스레 사용하게 된다. 좀 더 심화적으로 접근하게 되면 대체 왜 사용하고 왜 이곳에 필요하고, 단순히 사용하는 것이 목적이 아니라 어떤 단점이 있는지 학습하게 되는 것처럼, 그런 본질적인 이유에 대해 학습하고자 할 때 누군가에게 마땅히 목적에 부합하는 책이라고 생각한다. 2월 중에 짧게 한번 훑어봤지만 아마도 챕터별로 꽤 오랜 시간 들여다보게 될 것이라는 예감이 든다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

자바스크립트는 현대 프로그래밍 언어 중 가장 유명하고 폭넓게 사용되는 언어 중 하나인데요브라우저에서의 클라이언트 측 스크립팅뿐만 아니라 서버 측 개발모바일 앱 및 PC 어플리케이션 개발에도 사용되어 다양한 환경에서 활용되고 있습니다그러나 자바스크립트의 문법은 비교적 쉽지만언어의 동작 방식을 정확히 이해하는 것은 어려운 점이 많습니다.

 

이번에 소개할 You Don't Know JS Yet은 자바스크립트의 핵심 개념을 깊이 있게 다루며코드 한줄 한줄을 볼 때 마다 라는 의문을 떠오를 게 만들어주는 책입니다이 책은 1부 시작하기와 2부 스코프와 클로저로 구성되어 있습니다

 

저자는 대부분의 자바스크립트 개발자가 본인이 작성하는 코드가 어떻게 작동하는지 깊게 이해하는 데 시간을 쓰지 않는다는 점을 지적하기 위해 책을 집필했다고 의중을 말하는데요이러한 원인을 개발자들은 자신이 짠 코드가 잘 돌아가고 원하는 결과가 나오면 생각을 멈추기 때문이라고 설명합니다이후 작동 원리를 알아보려고 시도하지만부정확한 정보로 학습에 어려움을 느낀 독자들을 위해 자바스크립트의 작동 원리에 대해 자세한 개념을 담고 있습니다.

 

또한 책의 강점 중 하나는 자바스크립트의 핵심 개념을 이해하고자 하는 독자들에게 심층적이고 체계적인 가이드를 제공한다는 점인데요이는 초보자보다는 1년 이상 자바스크립트를 다룬 중급 수준의 개발자에게 적합하다는 설명합니다각 주제를 천천히 읽어가면서 이해도를 높일 수 있도록 구성되어 있으며한 개념을 이해하는데 1~2주도 걸릴 수 있다는 말이 충분히 이해가 되었습니다이러한 특징들은 자바스크립트를 이미 다뤄본 경험이 있는 독자들이 더 깊은 수준의 이해를 얻을 수 있게끔 도와주는 것으로 보입니다.

 

이뿐만 아니라 각 챕터에서는 자바스크립트의 핵심 개념을 어떤 식으로 다루는지 코드 예시를 통해 접하고 왜 이렇게무엇 때문에 이렇게 작동하는 건지 궁금증을 유발하는 내용으로 가득 차 있습니다

 

코드 예시를 활용해 개념을 명확하게 전달하며 이렇게 학습하다 보면 

문법과 패턴작동 방식을 고차원적인 측면에서 바라볼 수 있는 시각이 길러질 것입니다

 

변수가 어떤 것을 참조하는지를 결정하는 규칙 모음인 스코프의 작동 방식과 쓰임새스코프를 다룰 때 주의할 점 등 모든 측면에 대한 내용을 담겨 있습니다하지만 스코프에 대해 배우기 전에 컴파일에 대한 개념부터 익히고 시작합니다. You Don't Know JS Yet의 핵심인 작동 원리에 대해 정확하게 학습한 후 개념을 배울 수 있습니다

 

개념서처럼 진도를 쭉쭉 빼는 것보단 단 한 장씩 심도 깊이 개념의 원리와 그 이유에 대해 항상 의문을 가지고 학습하길 권유해 드립니다그리고 한 개념을 배우는 데 생각보다 개념 설명이 쉽게 되어 있어서 공부하는 과정이 정말 재미있습니다공부해야 한다는 의무감 없이 편하게 학습할 수 있습니다마지막으로 보충 자료와 연습문제가 제공되어 있습니다.


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

프론트엔드 개발의 세계에서 React와 Next.js의 강세가 계속되면서, 자바스크립트(JS)의 기본 원리에 대한 이해가 어느 때보다 중요해졌습니다. 이러한 시점에 "You Don’t Know JS Yet"를 접하게 되었는데, 이 책은 단순한 개념서를 넘어 자바스크립트를 깊이 있게 이해할 수 있는 필독서라고 생각합니다. 이미 "코어 자바스크립트"나 "인사이드 자바스크립트"와 같은 기초 서적을 통해 공부를 해왔지만, 이 책은 그 이상의 가치를 제공합니다.

특히, 면접에서 자주 등장하는 스코프, 클로저, TDZ와 같은 핵심 개념들에 대한 명확한 설명은 취업 준비생뿐만 아니라 경력 개발자들에게도 큰 도움이 될 것입니다. 책을 읽으면서, 자바스크립트에 대한 나의 이해가 아직 부족하다는 것을 깨닫게 되었고, 경력이 쌓일수록 더욱 겸손하게 재학습의 중요성을 인식하게 되었습니다.

이 책은 단순히 기술적인 내용을 넘어서, 자바스크립트를 공부해야 하는 이유와 개발자로서의 사고방식을 성찰하게 만듭니다. 코드의 작동 원리에 대해 깊이 생각하고, 멈추지 않는 개발자가 되어야 한다는 목표를 제시합니다.

자바스크립트의 깊은 원리를 이해하는 데 있어 이 책은 가치 있는 개념 가이드입니다. 집에 두고 필요할 때마다 읽으며 지식을 쌓고 정리하는 시간을 갖는 것이 중요하다고 느꼈습니다. 또한, 이 책을 통해 단순히 개념을 넘어서 엔지니어로서의 마인드셋도 성장하는 계기가 되었습니다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

이 책은 javascript 의 심화 전공서적이라고 봐도 무방할 만한 깊이를 가지고 있습니다.

나름 javascript 밥을 몇 년 먹었다고 자신만만하게 봤지만 읽으면 읽을수록 마치 교수님의 수업을 듣는 것 같은 느낌을 받았습니다.
심연으로 들어갈 수록 자신을 잃지 말아야 할 것 같습니다.
곁에 오래 두고 봐야 할 좋은 전공서적인 것 같습니다.

이 책은 “한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

현대 프로그래밍 언어 중에 제일 유명한 언어는 무엇일까? 여러가지 답이 나오겠지만, 걔 중 자바스크립트는 꼭 끼어 나올것이다. 지금 시니어가 된 웹 개발자들은 깜짝 놀라며 반문할지도 모르겠다. “그 언어가 그렇게나 유명하다고?” 하면서 말이다.

브라우저에 기생하며 살아가던 자바스크립트는 표준을 넘어, 브라우저에 독립적인 언어가 되었다. 자바스크립트로 서버를 구현하는 것은 물론, 모바일 앱과 심지어 PC 어플리케이션까지 자바스크릡트로 만드는 세상이다. 이제 개발자들은 웹의 세계에서 살아가는 이상 자바스크립트는 필수적으로 알아야 할 시대가 되었다.

그러나 자바스크립트의 문법은 쉽지만, 언어가 동작하는 환경을 이해하기엔 다소 힘들 수 있다. 싱글 스레드, 실행 컨텍스트, 스코프 등 다양한 개념을 학습해야 한다. 이런 깊이 있는 지식을 학습하기 위해 이 책은 좋은 가이드가 될 수 있다.

이 책의 주요 내용

이 책은 자바스크립트의 주요 개념을 설명한다. 단순히 사전적 의미를 나열하거나, 딱딱한 정의만을 적어 둔 책과는 다르다. 각 챕터의 개념을 이해하기 위한 세부 개념을 소개하여, 주요 맥락을 놓치지 않도록 돕는다.

  • 시작하기
  • 스코프와 클로저

이 책을 읽으면 좋을 사람

이 책은 입문자용 책이 아니다. 내 생각엔 최소 1~2권 이상의 자바스크립트 기본서를 읽고 자바스크립트를 능숙하게 사용할 수 있는 수준의 개발자가 읽으면 좋겠다. 그리고 이 책에는 저자의 개인적인 생각이 많이 담겨있다. 그러므로 어느 정도 본인이 이 책에 나열된 내용을 적절히 필터링해서 읽을 수 있어야 한다.

  • 2~3년 차 자바스크립트 개발자
  • 미들 레벨 이상의 자바스크립트 개발자
  • 자바스크립트로 면접을 치뤄야 하는 개발자/면접관

나가며

이 책은 사실 몇 년 전, 주니어 시절 한참 읽었던 책이다. 그때는 내용이 너무 어려워 몇 번을 반복해서 읽었던 기억이 있다. 이번에 다시 책이 개정되어 나왔다고 해서 기쁜 마음에 사보려고 했는데, 마침 한빛미디어에서 책을 읽어볼 수 있는 좋은 기회를 주셨다. 읽어본 결과, 여전히 좋은 내용을 많이 담고 있고 좀 더 내용이 알차진 느낌이 든다. 다만 이전에는 중간에 작가의 블랙 유머가 담겨있었던 것 같은데, 이번에는 뭔가 담담해진 듯한 느낌이다. 2편까지 개정판이 나오면 구매해서 읽어보려고 한다. 자바스크립트 개념을 복기해서 다시 기본기를 튼튼하게 세워보는 기회로 만들어 봐야겠다.

책의 부제는 : "자바스크립트 개념, 스코프와 클로저" 입니다.

책의 제목이 영어로 되어 있어서 번역서인데, 보통 접근성이나 검색등에 잘 노출이 안될거 같은데

이렇게 영어로 책제목을 정했다는 것이 읽기 전에 신선하게 다가왔습니다.

 

저는 잘 몰랐는데 기존에 "You don't Know JS" 시리즈가 있었고, 이번에 나온것이 2판이라는 내용을 알게 되었습니다.

 

 

 

이 책은 두개의 Part로 구성되어 있습니다.

Part1. 시작하기

Part2. 스코프와 클로저

 

 

 

 

시중에는 정말 많은 javascript 책이 출간되어 있습니다. 초급자용 쉬운책부터, 어려운 책들도 다양하게 나와있습니다.

이책은 기존에 출간된 책과 무엇을 다를지 궁금합니다. 대상독자는 어느 대상으로 하는지도 살펴보려고 합니다.

책의 내용을 빨리 보려고 하지 말고, 하나하나 오래 걸려도 필요한 내용을 살펴보는것을 저자분은 강조하십니다.

 

■ 대상독자

· 책에 나와있는 내용은 아래와 같습니다.

javascript 입문서가 아니므로 프로그래밍을 처음 접하는 분들에게는 적합하지 않습니다. 초심자라면 조금 어려울수 있습니다.

분야를 막론하고, 자바스크립트를 최소 6~9개월 동안 다루어보거나, javascript코드를 읽는 데 불편함이 없는 분들은 이책을 읽어도 좋습니다.

· 개인적으로 javascript는 웹개발을 하는 직군이면 피해갈수 없는 분야인거 같습니다. 이책은 조금 더 나은 개발자로 나아가기 위한 js책이 출간된거 같아서, 기쁩니다.

 

■ 자바스크립트란.
현재 사용하고 있는 js에 대해서 규정을 정하는 부분, 기존코드와 호환성, 바벨등 전반적으로 현재의 spec의 사용과 기술스팩에 대해서 어떻게 진행되고 있는지 설명합니다.

 

· TC39는 JS의 공식명세를 관리합니다.

https://github.com/tc39/proposals

GitHub - tc39/proposals: Tracking ECMAScript Proposals

Tracking ECMAScript Proposals. Contribute to tc39/proposals development by creating an account on GitHub.

github.com

https://262.ecma-international.org/10.0/

ECMAScript® 2019 Language Specification

 

262.ecma-international.org

· 사례로 많이 사용하고 있는 alert, console.log는 정식JS에 정의된 문법이 아닌 부분도 새롭게 느껴졌습니다.

 

 

■ 들어가며 1,2장

· js 파일 각각이 별도의 프로그램이다,

js에서는 값은 크게 원시타입(promitive type)과 객체타입(object type)으로 분류됩니다.

· 인터프리터의 개념을 상세히 알려주어서, 실제적으로 컴파일이 어떻게 되어가는지 이해하게 됩니다.

· ES2019 최신 문법에 대해서도 설명하고 있어서, 앞으로 점차적으로 많이 사용하게될 문법에 익숙하게 됩니다.

· 변수, 배열, 객체, 함수에 대해서 단순한 설명이 아닌 평소에 고려하지 않았던 부분들 까지 포함해서 설명이 되어 집니다.

 

■ 자바스크립트 뿌리 파헤치기 3장

이장에서 부터는 조금더 깊이 있는 내용들로 구성이 되어 집니다.

· 이터레이션를 통해서 data를 잘 처리하기 위해서 이터레이터 , 이터러블에 대해서 정리합니다.

· 클로저를 통해서 실용적인 관점에서 최대한 구체적으로 구현을 진행합니다.

· this 키워드를 통해서 가장 오래를 많이 받은 부분부터 정의해 나가면서, this의 동작방식을 이해합니다.

· prototype을 통해서 접근할때 일어나는 동작에 관련된 특징을 알아봅니다.

평소 기본적인 js의 문법을 활용해서 사용을 해왔던 부분에서 조금 더 깊게 관련 키워드 및 동작방식에 대해서 이해를 할수 있는 예시와 설명으로 구성되어 있습니다. 

 

Part1의 부분에 두개의 부록 A,B가 있는데, 이러한 내용은 실제 미리 경험해보고, 코드를 작성할때도 고민이 되는 부분인데

적절하게 잘 언급이 되어 있습니다. 여기서 언급되는 내용들이 저는 좋게 느껴졌습니다. 해당 부분의 내용들은 검색을 통해서도 잘 볼수없는 내용들이 있어서 좋았습니다.

 

 

 

■ Part2. 스코프와 클로저

 

 

· 내용의 키워드들을 보면서, 문법위주의 항목이 아닌 javascript의 동작에 대한 부분인 것을 알수 있습니다.

 

· 스코프를 이해하기 전에 코드 컴파일 되는 원리를 먼저 설명하고 접근하는 방식이 인상깊었습니다.

내용을 급하게 살펴보기 보다는 천천히 이해도를 높이면서 다음장으로 넘어가는 방식이 좋은 방식이라는 말이 느껴졌습니다.

 

 

 

· frontend개발 면접시 많이 나오는 호이스팅에 대해서도 "변수의 비밀 생명주기"에서 설명되어 집니다. 어떠한 부분은 그것을 지징하는

용어를 잘 알지 못하였는데, 이론을 설명하는 과정에서 그러한 동작을 설명하는 용어를 알게 되는 부분도 있습니다.

· 조금 어려운 주제인 클로저에 대해서 다양한 예시를 통해서 설명하는 부분도 다른책과 차별점이 있었습니다.

 

 

 

 

 

■ 리뷰

평소에 이러한 조금 깊게 javascript를 학습하시거나, 동작방식에 대해서 궁금증이 있는 분들이면 아주 좋은 책입니다.

현업에서 개발 진행시, 오류는 발생을 하는데 문법적으로 문제가 없는데 원인을 찾기 어려운 부분들은 이제 조금더 깊게 동작원리를 알아야 하는 시점이 오신거라고 생각이 들고 이책을 통해서 조금더 깊게 javascript의 동작원리 및 잘못 사용하고 있는 패턴 및 방식을 학습할수 있을것 같습니다. 

이책의 목차 및 키워드들이 평소에 관심있는 부분이 한번 정독해보시는것을 추천드립니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

안녕하세요. 현재 프론트엔드 개발자로 일하고 있어요. 개발 관련 정보를 얻기 위해 SNS를 자주 활용하다가, 최근에 한빛미디어에서 2024년 나는 리뷰어다 서평단을 모집하고 있다는 소식을 접하게 되었고 지원하였습니다.

 

항상 공부를 해야 하는 개발자로서의 책임을 느끼는 동시에, 이번 리뷰어로 선정된 것은 제가 평소에 개발 서적을 찾아 공부하는 것을 즐겨하는 사람으로서 자기 계발에 더 많은 시간과 노력을 기울일 수 있는 훌륭한 기회라고 생각합니다.

 

 

이번에 리뷰할 책은 'You Don't Know JS Yet'입니다. 프론트엔드 개발자로서 자바스크립트 언어는 뗄레야 뗄 수 없는 언어입니다. 그러나 평소 회사에서 코드를 작성하거나 개인 프로젝트를 할 때 언어에 대한 깊은 이해보다는 일단 작동되는지를 확인하고 결과에 집중했던 적이 많습니다. 코드를 작성한 방식이나 작동 원리에 대해서는 크게 신경쓰지 않았죠.

 

하지만 개발자로서 만족하지 않고, 코드가 어떻게 돌아가는지를 정확히 이해하고자 합니다. 이를 위해 자바스크립트 언어에 대한 더 깊은 이해가 필요하다고 느껴서 이번 리뷰에서 해당 책을 읽고 리뷰를 작성하게 되었습니다.

 

저는 책의 여러 파트 중 '자바스크립트 조망하기'를 읽고 리뷰를 작성해 보았습니다.

책을 읽으면서 제가 이미 알고 있던 자바스크립트에 대한 내용들을 다시 한번 되짚어 볼 수 있었습니다. 세세하게 읽어가며 책에서 제공하는 도움을 받으면서, 더 잘 이해할 수 있는 부분들도 있었습니다. 이제 이 부분들에 대해 간단히 소개해 보겠습니다.

 

null 과 undefined 에 대해

책에는 다음과 같이 설명하고 있습니다

'많은 개발자가 값의 결함이나 부재를 나타낼 때, null과 undefined를 구분 없이 사용하는 경향이 있습니다. 글자가 짧아서 null을 사용하는 것이 더 매력적으로 보일 수 있지만, 비어 있는 단일 값을 나타낼 때는 undefined를 사용하는 것이 가장 안전한 최선의 방법입니다.'

 

이 내용을 읽으면서 살짝 의문이 들었고, 아래에 있는 주석을 보니 책의 옮긴이가 의견이 다를 수 있다고 언급하고 GitHub 링크를 남겨 놓았습니다.

 

책의 주석 덕분에 스스로 디테일하고 능동적으로 null과 undefined를 비교적 학습해 볼 수 있었습니다. 변수가 비어 있거나 알 수 없는 상태를 나타내려면 null을 사용하고, undefined는 값이 할당되지 않은 변수의 초기값을 위해 예약어로 남겨두는 것이라는 것을 잘 이해할 수 있었습니다.

 

일치 비교, 동등 비교에서 === 가 만능이 아닌 이유

 

등호 세 개가 붙은 일치 연산자 ===는 이름만 봤을 때는 정확히 일치할 때에만 참을 반환하는 연산자인 것으로 추측됩니다. 그러나 여기에는 예외적인 상황이 있습니다. === 연산자가 특정한 값인 NaN이나 -0과 함께 사용될 경우에는 예상과 다르게 작동하는 것을 확인할 수 있습니다.

NaN을 비교할 때는 Number.isNaN()을 사용하고, -0을 비교할 때는 Object.is()를 사용하는 것이 좋다는 점을 알게 되었습니다. 어쨌든 결론은 === 연산자만으로는 모든 경우에 정확하게 비교할 수 없다는 것을 깨달았습니다.

 

강제 변환

 

강제 변환은 한 타입의 값이 다른 타입의 값으로 변환되는 것을 의미합니다. == 연산자는 === 연산자와 마찬가지로 피연산자의 타입을 비교하며, 피연산자가 같은 타입이면 ==와 ===는 완전히 동일하게 작동합니다.

 

하지만 피연산자의 타입이 다른 경우, == 연산자는 비교 이전에 강제로 타입을 맞추는 작업을 수행합니다. 책에서는 == 연산자를 '느슨한 동등 비교 연산자'가 아닌 '강제 변환 동등 비교 연산자'로 표현하는 것이 적절하다고 설명합니다.

 

따라서 == 대신 === 연산자만 사용하여 타입 강제 변환이 일어나지 않게 할 수 있지만, <, >, <=, >=와 같은 연산자도 있으며, 이들 연산자들도 피연산자의 타입이 다른 경우에는 타입 강제 변환이 먼저 이루어진다는 점을 알게 되었습니다.

 

리뷰를 마치며

 

책 전체를 읽고 이해하는 데에는 시간이 조금 더 필요할 것 같습니다. 그러나 자바스크립트를 사용하는 개발자로서 자바스크립트의 작동 원리를 파악하기 위해 이 책은 훌륭한 참고서라고 생각합니다. 새로운 라이브러리나 기술을 익히는 것도 중요하지만, 모든 것의 기초는 자바스크립트라는 본질에 충실한 학습이라고 생각합니다.

 

이러한 기초를 튼튼히 다지면 현재 유망한 프레임워크나 라이브러리가 사라져도 쉽게 이해하고 적용할 수 있을 것이라고 믿습니다. 책을 읽으면서 항상 이러한 기본에 대한 공부를 소홀히 하지 않고 꾸준히 학습해야 한다는 생각을 하게 되었습니다. 감사합니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

오랫동안 다뤄왔지만 JavaScript 내부 동작에 대해 고민해보거나 개발 언어 특성에 맞게 코드를 작성하려는 노력을 굳이 하지 않았다. 누군가 좋은 패턴이라고 하면 수용적인 태도로 고개를 끄덕거리며 비슷하게 코드를 작성하기 위해 시간을 들였던 기억만 남는다. 쉬우면서도 어려운 언어 그리고 오래동안 사용했지만 자신있게 잘 사용할줄 안다고 하기 어려운 개발 언어가 JavaScript이다. 

You Dont' Know JS는 JavaScript을 알지만/잘 알지 못하는 개발자들을 위한 필독서라고 할 수 있다. 이 책의 강점이라고 할수 있는데, 내부 동작방식에 대해 정말 짧은 예시 코드들을 가지고 설명을 풀어나간다는 점이다.

짧은 예시 코드들은 복잡하지 않기 때문에 독자의 이해를 돕기도 하지만, 한번에 이해되지 않는 상황에도 부담을 줄여주어 여러번 반복해서 읽어볼 수 있게 해준다.

 

 

사실 YDKJSY(You Don't Know JS Yet)시리즈는 6개의 챕터로 이루어져 있는데, 이번 책은 첫번째 자바스크립트 개념과 두번째 스코프와 클로저를 엮어서 만든 것이다.

 

  1. 시작하기 (자바스크립트 개념)
  2. 스코프와 클로저
  3. 객체와 클래스
  4. 타입과 문법
  5. 동기와 비동기
  6. ES.Next와 그 너머 

 

기억나는 몇몇 내용들을 요약하자면

 

  • JavaScript는 ECMAScript의 스펙을 지원하는 개발언어이며, 하위호환을 존중하는 언어이다.
  • 렉시컬 스코프 스펙을 지원하기 위해 구문 분석과 같은 컴파일이 필요하고 실제 동작은 인터프린터 방식을 취한다. 
  • function에 대한 일급 객체를 지원한다.
  • class 문법없이도(추후 지원했지만) 클로저, 프로토타입을 활용하여 function을 객체로 서술하였고 또는 상속 개념처럼 활용할 수 있도록 발전해왔다.
  • 간략한 코드 예시를 통한 스코프와 클로저의 수많은 개념 설명들

 

 

저자는 초반에 중급자를 위한 책이라고 밝히는데 사실 JavaScript를 막 시작한 개발자가 아니라면 크게 무리가 없다고 생각한다. 중요한 점은 다른 개발 언어를 다뤄봄으로써 JavaScript의 철학을 이해하고 비교할 수 있는지가 중요한데 Java, Python, C/C++, Golang등 어떤 것이든 상관이 없다고 생각한다.

 

 

여러 사람들과 같이 읽으면 더 좋은 책이라고 생각한다. 각자 갖고 있는 지식이나 경험을 기반으로 비교하며 장단점에 대해서 토론할수 있기 때문이다. 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

자바스크립트를 1년 이상 써본 사람에게 적당한 책인 것 같습니다. 본인은 현업에서 자바스크립트를 숨 쉬듯 사용하고 있는데, 자바스크립트를 사용하며 당연하다고 생각했던 개념들에 대해서 고민할 수 있도록 이끌어준 책입니다. 이 책을 읽은 후 자바스크립트의 동작 방식에 대해 더욱 깊은 이해를 얻을 수 있었고, 코드를 짤 때 더욱 확신을 가지고 짤 수 있도록 도와주었다고 생각합니다. 이 책은 한번 읽고 끝인 책이 아니라 개념이 흐릿해질 때마다 두고두고 펼쳐보면서 되뇌어야 더 가치 있는 책인 것 같습니다.

 

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

이 책은 자바스크립트 입문서가 아니에요. 저자의 말에 따르면 자바스크립트를 최소 6~9개월동안 다뤄보거나, 자바스크립트로 작성한 코드를 읽는 데 불편함이 없는 분들이 대상이에요.

 

자바스크립트가 어떻게 동작하는지, 자바스크립트의 핵심인 스코프와 클로저 등에 대해 더 깊게 알고 싶다면 이 책을 읽는게 정말 큰 도움이 될 거예요.

 

이 책을 읽으면서 가장 좋았던 건 생각하는 힘을 길러준다는 느낌을 받았다는 점이에요. 책의 각 챕터의 구성이 정말 짜임새 있고, 부족하지도 과하지도 않게 각 단계에 맞는 지식들을 전달해 줘요.

 

읽으면 읽을수록 앞에서 알게 된 지식들이 더 깊게 이해되면서 마치 머릿속에 떠다니던 지식의 퍼즐 조각들이 맞춰지는 것 같은 경험을 했어요. 단순 지식 전달이 아닌 코드의 결과를 유추해보록 하고, 연습 문제를 통해 새롭게 알게 된 지식을 내 것으로 소화할 수 있게 도와주죠.

 

만약 아래 문장 중에 하나라도 맞다고 생각하는 문장이 있다면 이 책을 꼭 읽어보세요!

  • 자바스크립트는 인터프리터 언어다
  • var를 지양하고 let, const를 사용해야 한다
  • ==와 ===의 차이, ===를 써야 한다

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

서문에 나와 있듯 자바스크립트 입문서 보다는 자바스크립트를 최소 6-9개월 다뤄봤거나, 자바스크립트로 짠 코드를 읽는데 불편함이 없는 사람을 대상으로 한다. 그럼에도 불구하고 '자바스크립트 핵심에 근접한 내용이라는데...읽어보는 게 좋지 않을까?' 하고 도전하는 분들이 있을거다. 개인적으로는 작가의 말에 따르는 걸 추천 한다. 자바스크립트의 핵심을 콕콕 집어 주기는 해도 처음 읽는 사람들에게는 잘 와닿지 않을 수 있다. 작가가 최대한 이해할 수 있게 설명을 해주기는 하지만 기본적으로 '어느 정도는 알지? 다시 한 번 복기해주고 들어갈게?'라는 느낌이라 필자도 헷갈리는 부분은 인터넷에 서치해가며 공부 하듯이 책을 읽어나갔다. 때문에, 자바스크립트가 아예 초면인 분은 직접 자바스크립트를 어느 정도 겪어본 뒤 책을 펴보시는 걸 추천한다.

책은 1부와 2부로 나뉘는데 1부에서는 자바스크립트를 이해하기 위한 핵심 기초 지식이 주 내용이고, 1부 중 언급되는 스코프와 클로저는 아예 2부에서 더 자세하게 다루고 있다. 초급에서 중/고급으로 넘어가고 싶은 사람들을 위한 책 답게 읽으면서 덮고 싶은 몇 번의 위기가 있었지만(클로저에서 정말 머리가 터지는 줄 알았다.), 그 때마다 작가는 학생들이 흥미를 잃어버리지 않게 중간중간 위로도 놓치지 않는다. 개인적으로 "머릿속이 정돈되지 않을 수도 있습니다. 하지만 걱정하지 마세요. 정보가 한꺼번에 들어오는 상황에서는 아주 자연스운 현상입니다" 라는 문장을 읽고 힘입어 다음 페이지를 넘길 수 있었다.

 

학습 자세에 대해서도 많은 조언을 얻을 수 있었다. 자바스크립트 지식 뿐만 아니라 이렇게 배운 내용을 어떻게 학습해야하는지 방향성을 제시한다. 이 방향성은 '무조건 독파하라!'가 아닌, 개발자로서 필요한 소양을 강조한다. "사실이 아닌 필자의 주장을 그대로 차용해서 쓰려면 왜 그렇게 생각하는지 답변할 준비가 되어 있어야 합니다. 필자의 주장과 근거를 앵무새처럼 따라해서는 안 됩니다.", " 작업 중인 프로젝트 개발 방식과 동료들이 일하는 방식을 따르세요." 무엇보다 "가독성 향상에 도움을 주는 방식이 있는지 항상 탐구하세요." 라는 조언까지.

오랜만에 필요한 경험을 한 듯해 책을 읽고 나서 기분이 좋아졌다. 작가가 추천한대로 한 번이 아니라 여러 번 읽으며 이 책을 쉽게 읽을 수 있을 때까지 정진해보려고 한다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


 

제목이 너무 와 닫지 않는가. 말 그대로 아직 모르고 있는 나에게 딱인 책이 아닐까 싶다. 분명 어디선가 읽었던 내용, 일을 하면서 그냥 사용하던 것. 주류라 여기며 기존 것을 터부시 하던 습관등 모든 것에 대해 맞다 틀리다가 아닌 이러한 방법으로 사용할 수 있다는 개념을 설명해 주는 책이다.


# You Don't Know JS Yet

책을 읽으면 자바스크립트에 대한 다양한 정보를 접할 수 있게 된다. 자바스크립트를 공부해야 하지만, 프로그램을 배운다는 생각보다는 자바스크립트라는 언어를 이해하기 위해 처음부터 다시 시작한다는 마음가짐으로 책을 접한다면 좋을 것 같다. 일을 하면서 그때그때 필요한 것들을 주먹구구 식으로 사용하거나 구글선생을 통하면 어지간한 해결책들은 구할 수 있다 보니 실전에서도 자잘한 문제들은 해결되기도 한다. 그런 식으로 일을 하다 보면 그것이 내 실력인 줄 착각하게 되는 것을 경험하게 된다. 그리고 그 위의 난해한 문제에 봉착했을 때 멘털이 나가게 되는 경험도 하게 된다.

평소부터 난 자바스크립트를 모른다고 자각하고 있었다. 그런데 책을 읽으면서 더 확실해졌다. 정말 아무것도 모르고 자바스크립트를 만지고 있었구나. 일을 하다 보면 기존 프로젝트의 코드를 사용하기도 하고 어디선가 가져온 코드를 사용하기도 한다. 결국 짜깁기에 대한 이해와 기술이 자연스럽게 올라간다. 좋게 설명하면 이것도 능력이지만, 결국 온전한 나의 기술력은 아닌데 말이다.

책을 읽으며 그동안 얼마나 피상적으로 자바스크립트를 사용해 왔는지 알 수 있다. 수박 겉핥기식으로만 사용해 왔으니 당연한 결과일지도 모르겠다. 아는 만큼 보인다고 했다. 많이 사용해 본 만큼 익숙해진다. 실수한 만큼 이해도가 깊어진다. 자바스크립트를 어느 정도 이해하고 있다고 생각했던 것들이 창피해지기도 한다. 책장에 진열되어 있는 책을 다시 읽어봐야 할 것 같다. 내가 뭘 모르고 있고 뭘 알고 있는 걸까.

일단, 자바스크립트를 익히기 시작한 사람부터 현재 사용하고 있는 개발자까지 자바스크립트로 프로젝트를 하는 모든 사람이 읽어봐야 할 책이라 여겨진다.

다시 한번 읽어보길 제안합니다.
아주 진중하게, 여러 번 읽어야 할 수도 있습니다.
 


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


You Don’t Know JS (YDKJS) 책은 익히 들어봤습니다. JS 개발자라면 누구나 한 권쯤 가지고 있을 모던 자바스크립트 Deep Dive 책이 기초적인 JS의 개념을 다룬다면, YDKJS책은 닌자 비급이라 불리는 JS Ninja 라는 책과 더불어 자바스크립트의 조금 더 깊은 이해를 도와주는 필독서로 알고 있었습니다. 하지만 이 두 책은 출판 된지 꽤 시간이 흘렀고, 급격히 변하는 웹 프론트 생태계를 공부하는 와중에 7년이 지난 책을 챙겨 읽을 겨를은 없었습니다.

이번에 그 YDKJS의 두 번째 버전의 책이 나왔다는 소식을 들었을 때 명성 있는 책인 만큼 꼭 읽어보겠노라 다짐했고, 정말 감사하게도 ‘한빛 미디어’에서 책을 제공받아 읽어보게 되었습니다. 

 

❗잘 안다고 생각한 JS를 더 깊게 탐구해보는 시간

기본적으로 JS를 잘 알고 있어야 이 책을 읽을 수 있습니다. 이 책에선 JS의 모든 문법을 다루지 않습니다. 제가 느꼈던 점은 JS의 엔진이 어떻게 작동하는지에 대해 이해하고, 그 원리를 통해 동작 방식을 유추하기 때문에, 기초를 공부할 때 처럼 암기식으로 공부하는 것이 아닌, 탐구하는 시간을 가질 수 있다는 것입니다. 책을 통해 체득할 수 있었던 시간이었습니다.

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다."

이 책은 JavaScript의 문법 설명서가 아니다. 조금 더 고차원적인 책이다.

시작하기 부분에서는 JavaScript언어에 대한 설명… 그러니까, Javascript의 발전, ECMAScript그리고 Javascript를 둘러싸고 있는 web과 Javascript엔진에 대한 이야기 등 JavaScript에 대해 시야가 넓어질 이야기를 해준다. 그리고 우리가 당연하게 여기고 있던 것들에 대해 한번 더 생각해 볼 수 있는 주제들을 던져준다.

이 책은 문법서가 아니기 때문에 하나하나 설명하지는 않지만, 그 기본 동작 위에 조금 심화된 내용, 큰 그림을 설명해준다. 그래서 자바스크립트를 더 넓고 깊게 이해할 수 있었던 것 같다!!!. 한번에 읽기보다 두고두고 볼 책

책 서두에 있는 바와 같이 초보자를 위한 입문서는 아닙니다. 저자는 자바스크립트 코드를 최소한 읽을 수 있는 있는 사람이 보는게 좋겠다고 했습니다. 

 

자바스크립트 주요 개념들에 대해 핵심만 딱딱 짚어줘서 좋습니다. 언제가 듣고 잊었거나, 다시 한번 개념정리하고 싶을 때 적당하겠습니다. 

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
You Don’t Know JS Yet
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
You Don’t Know JS Yet
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
You Don’t Know JS Yet
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1