당신은 정말 자바스크립트를 알고 있는가
기술적인 이야기는 안 하려고 한다.나는 이 책을 읽으며 마음속에 일어난 변화들에 대해 이야기해보려 한다.
프로그래밍을 시작할 때, 나는 단 네 가지만 알면 충분하다고 믿었다.
변수, 함수, 조건문, 반복문.
그것만 알고 여러 카지노 게임들은 만져 볼수 있었다. 그런 식으로 여러 카지노 게임를 스쳐갔고,지금은 자바스크립트(정확히는 타입스크립트)가 내 주력 언어가 되었다.하지만, 이 카지노 게임의 깊이를 더 들여다보고 싶었다.그래서 이 책, 『카지노 게임 Don’t Know JS Yet』을 집어 들었다.
그냥 외워서 지나온 시간들
그동안 나는 문법을 외우고, 예제를 따라 치고, 익숙해진다 싶으면 다음으로 넘어갔다.카지노 게임를 '쓸 수 있다'는 건 그렇게 외워서 얻었다.그런데 어느 순간부터 자꾸 질문이 생겼다.왜 같은 문법인데 상황마다 다르게 동작하는 것인가,왜 이런 불합리한 부분들이 남아 있는 것인가,그 질문들 앞에서 나는 줄 곧 외면했다."그냥 이렇게 쓰면 된다"라고 스스로를 다독였다.깊게 파고들기엔 바쁘고, 어렵고, 때로는 겁이 났다.이 책은그런 나에게 조용히 거울을 들이민다.
"당신은 정말 자바스크립트를 알고 있는가?"
그 질문을 따라가다 보면, 문득 깨닫게 된다.나는 이 카지노 게임의 겉모습만 보고 있었다는 것을.
코드 너머를 보는 눈
자바스크립트는 단순한 문법의 집합체가 아니다.언어 설계자의 의도, 긴 역사 속에서 굳어진 관습,성능을 위한 트릭과 타협이 고스란히 녹아든 결과물이다.표면만 쓸어내며 지나던 내가이제야 조금씩 뿌리를 들여다보게 되었다."왜 이렇게 작성해야 하는가"에 대한 스스로의 기준이 생기기 시작했다.남의 코드를 흉내 내는 것에서,나만의 코드를 설계하고 설명할 수 있는 쪽으로 조금씩 옮겨가고 있다. 이 책은그런 사고방식의 변화를 이끈다.코드를 '작성하는 사람'에서, 코드를 '이해하고 설계하는 사람'으로느리고 조심스럽게 이 끌었다.
몸에 스며드는 것
이런 변화는 책 한 권 읽는다고 쉽게 오지 않는다.쉽게 오지도, 빨리 오지도 않는다.개발 밥 먹은 지10년을 넘었지만 이 책은 어렵다. 그래도 긴 시간 개발하면서 느낀 것은프로그래밍 카지노 게임라는 것은'이해'하는 것이 아니라 '몸에 스며든다'는 표현이 더 어울린다는 것이다. 그리고 이 책에서도 같은 이야기를 거론한다.이 책을 읽고 또 읽으며,나는 자바스크립트를 이해하는 것이 아니라자바스크립트에 물드는 경험을 하고 있다.그동안 편리하게 써오던 기능들이사실은 얼마나 많은 고민과 절충 위에 놓여 있는지.얼마나 많은 모순과 타협을 품고 있는지를깨닫게 되었다.또한 이 복잡한 카지노 게임를 '제대로 이해하려는 시도' 자체가얼마나 값지고 의미 있는 일인지를 느꼈다.
바이브코딩
요즘은 AI가 발전하면서 코드를 작성하는 많은 부분을 위임하게 되었다.어떤 기능이든 AI를 통해 만들 수 있는 시대가 다가왔다.하지만 그 코드들은 조금만 깊게 자바스크립트를 이해한 사람이라면때때로 너무나 빈약하고 처참하게 느껴질 때가 있다.애니메이션의 거장 미야자키 하야오가AI가 그린 그림을 두고 "삶에 대한 모독"이라고 말했던 장면이 떠오른다.언어를 깊게 이해해본 사람이라면, 바이브코딩을 보며 비슷한 감정을 느끼지 않았을까.우리는 지금까지 컴퓨터가 아니라, 인간이 이해할 수 있는 코드를 지향해왔다.그러나 만약 읽는 대상이 사람이 아니라 AI가 되는 시대가 온다면,지금의 개발 패러다임은 무너질지도 모른다.이런 시대에, 카지노 게임에 깊이 천착하는 일이비효율적으로 보일 날이 올지도 모른다.하지만 아직은, 적어도 지금은사람을 위한 코드를 쓰는 것이 필요하다.생각하고 고민하는 개발자의 손길이 여전히 의미를 가지는 시기다.
이 책을 읽는다면
책장을 넘기는 동안은 고통스러울 수 있다. 자신이 모르는 것이 이렇게 많았다는 사실에 좌절할 수도 있다. 하지만 다 읽고 나면이 고통이, 이 버거움이얼마나 값진 투자였는지를알게 된다.이 책을 펼친 이상 쉽지 않은 길일 것이다.그렇지만 이 길을 걷기로 한 이상,우리는 언젠가 더 나은 개발자가 되어 있을 것이다.이 책은 그렇게조금은 아프게, 그러나 따뜻하게 우리를 성장시킨다.