오픈 웹의 전도사 카일 심슨이 많은 개발자들에게 사랑받은 『You Don’t Know JS』에 이어 『You Don’t Know JS Yet』으로 돌아왔습니다. 카일 심슨은 왜 많은 이들을 대상으로 “당신은 아직 자바스크립트를 모른다!”라고 외친 걸까요?
(1) 나의 깨달음을 자랑하기 위해서
(2) 자바스크립트를 사용하는 많은 개발자의 얕은 지식을 비판하려고
(3) 많은 개발자가 ‘자신이 만든 코드가 어떻게 작동하는 지’ 이해하는 데
시간을 쓰지 않는 점을 이야기 하려고
『You Don’t Know JS Yet』에 담긴 진짜 의미를 카일 심슨에게 직접 들어보도록 하겠습니다.
이 책의 제목 『You Don’t Know JS Yet』에는 여러분이 자바스크립트 관련 지식이나 이해가 부족하다는 점을 비판하거나 모욕하려는 의도가 전혀 없습니다. 자바스크립트는 절대 배울 수 없는 언어라고 주장하는 것도, 저를 포함해 몇몇 사람들만 깨달음을 얻었다고 자랑하려는 의도도 당연히 없습니다.
사실 앞선 생각들은 첫 번째 시리즈 내용을 읽기도 전에 제목만 보고 사람들이 했던 실제 반응이었습니다. 물론 근거 없이 말이죠.
『You Don’t Know JS Yet』이라는 제목은 대부분의 자바스크립트 개발자가 본인이 작성하는 코드가 어떻게 작동하는지 깊게 이해하는 데 시간을 쓰지 않는다는 점을 지적하려고 만들었습니다. 이런 개발자들은 자신이 짠 코드가 잘 돌아가고 원하는 결과가 나오면 생각을 멈춥니다. 코드가 어떻게 돌아가는지는 정확하게 파악하지 않은 채 말이죠. 작동 원리를 알아보려고 시도하지만 부정확한 정보로 학습하는 불상사까지 발생하곤 합니다.
여러분에게 진심 어린 조언을 하나 하자면, 지금부터는 기존에 가지고 있던 추측에 기반한 지식은 모두 잊고, 순수하고 호기심 어린 눈빛으로 자바스크립트를 바라보길 바랍니다. 이렇게 하다 보면 코드 한 줄 한 줄을 볼 때마다 ‘왜’라는 의문이 떠오를 겁니다.
Photo by Valentin Kremeron Unsplash
‘이건 왜 이렇고, 무엇때문에 이렇게 작동하는 거지?’라는 궁금증이나 ‘동작은 같은데 왜 다른 수많은 방법을 제쳐두고 이 방법이 더 낫거나 적합하다고 하는 거지?’라는 질문이 자연스레 떠오를 겁니다. 여기에 더해 X 방법의 훌륭함이 이미 증명되었는데, 왜 유명한 개발자들은 Y 방법으로 코드를 작성하라고 이야기하는지 의구심도 들 겁니다.
제목 끝에 ‘Yet’을 붙인 이유는 이번 책이 You Don’t Know JS 두 번째 시리즈이기 때문만은 아닙니다. 이 시리즈가 여러분의 도전 정신을 불러일으키길 바라는 마음에서 붙여봤습니다.
도전 정신을 갖는 건 좋지만 한 가지는 명확히 하고 싶습니다. 필자는 자바스크립트를 완전히 알 수 없다고 생각합니다. 자바스크립트 완전 정복은 실제로 달성할 수 없지만 꾸준히 추구해야 할 목표여야 합니다. 자바스크립트를 정복한다는 것은 끝나지 않는 도전입니다. 학습 시간이 늘어날수록 점점 지식이 쌓이는 것, 그뿐입니다. 자바스크립트를 알아가다 보면 기존에 알고 있던 내용이 머릿속에 자주 떠오릅니다. 기존의 생각과 실무 경험이 융합되면 시너지 효과가 일어나고, 자바스크립트를 색다른 시각에서 다시 배울 수 있게 됩니다.
완벽히 숙달할 수는 없지만 목표에 다가가기 위해 계속 노력할 수 있고 노력해야만 한다는 사고방식은 자바스크립트를 학습할 때뿐만 아니라 소프트웨어 개발 과정에서 개발자가 가져야 할 사고방식이기도 합니다. 이 사고방식을 엔지니어로서의 경력 관리, 혹은 그 이상으로 확대시켜 적용하면 더 좋습니다.
『You Don’t Know JS Yet』을 읽는다면 과거의 자신보다 한 발짝 더 앞서나갈 수 있을 것입니다.
저는 지금까지 25개국 이상에 걸친 여러 회사와 팀에 종사하는 개발자 5천 명 이상을 가르쳤습니다. 교육을 하는 동안 상당히 많은 개발자가 프로그램이 반환하는 결과만 중시하고 코드를 어떻게 작성했는지, 왜 그렇게 작성했는지 그리고 코드가 어떻게 작동하는지에 대해서는 중요하게 생각하지 않는다는 사실을 목격했습니다.
개발자로서 그리고 많은 개발자를 가르친 교육자로서 내린 결론은 직접 짠 코드의 작동 방식을 잘 이해하고 있는 개발자의 프로세스는 원하는 결과가 나왔다고 생각을 멈추는 개발자의 프로세스보다 당연히 효율적일 수밖에 없다는 점이었습니다. 작동하는 프로그램을 만드는 정도로는 충분하지 않습니다. 거기서 멈춰서는 안 됩니다.
개발자라면 누구나 본인이 작성한 코드 일부가 원하는 대로 작동하지 않는 어려움을 겪습니다. 원인을 쉽게 찾지도 못하죠. 그런데 자바스크립트 개발자들은 언어 이해도가 떨어지는 자신을 돌아보지 않고 언어 탓을 하는 경우가 잦습니다. 모든 자바스크립트 개발자가 이 책을 통해 자신이 작성하는 코드를 온전히 소유하고 이해하며, 의도를 가지고 명확하게 코드를 작성할 수 있게 되었으면 좋겠습니다.
You Don’t Know JS 시리즈에 담긴 ‘코드가 제대로 작동하지 않는 이유’와 ‘원하는 결과가 나오도록 코드를 수정하는 방법’에 대한 질문과 답변을 통해 여러분이 걸어갈 길의 나침반이 되어 드리겠습니다.
여러분의 여정에 여행 동반자로서 함께하게 되어 영광입니다.
자, 이제 자바스크립트 학습을 본격적으로 시작해봅시다.
이 책은 『You Don’t Know JS Yet』내용을 발췌하여 작성하였습니다.
자바스크립트 설계 기반부터 모호하고 어려운 개념까지! 아는 만큼 보이는 자바스크립트를 더 깊이 있게 이해하고 싶으시다면 아래 도서를 확인해보세요.
이전 글 : 자바의 작동 방식과 자바 코드의 구조
최신 콘텐츠