[kr-dev] 10년 만에 다시 보는 Javascript에 대한 소회

minari(63)
Published in
#kr
Words
402
Reading
2 min
Listen
Play
9y

2000년 초반에 홈페이지를 만들면서 처음 알게 된 자바스크립트는 말그대로 홈페이지 화면 상에서 간단간단한 동작을 실행시키는 수준의 매우 부수적인 코드였고, 심지어 프로그래밍 언어로 생각하는 사람들도 적었죠.

대부분의 홈페이지들이 모두 정적이였기 때문에, 개인들이나 종종 홈페이지 상에 꽃잎을 날리거나 비를 내리는 효과를 주는 수준에서만 사용됐었구요.

제가 알던 자바스크립트가 딱 여기까지인데, 아마도 그 시절에 대학을 다녔던 사람들이라면 워낙 IT가 붐이였던 시절이기 때문에 교양과목 숙제로 홈페이지 하나씩 만들어 보면서 비슷한 경험을 가지고 있지 않을까 생각되네요.

그리고 무려 10년 정도의 시간이 흘러, 4차 산업혁명이니 핀테크니 하면서 딥러니이나 파이썬 같은 기술들이 일반인들에게 알려지기 시작하고, 일반인를 대상으로 한 IT 교육이 보편화되기까지 했습니다.

초등학교에서 코딩을 가르치고, 일상생활에서 코딩을 쓰자는 '생활코딩' 도 등장을 하고 있으니까요.

그런데, 다시금 홈페이지를 한번 만들어볼까 해서 컴퓨터에 APM(아파치, php, mysql)을 설치하고 보니, 시대가 너무나 바뀌어 있네요.

이제는 웹페이지를 프로그래밍 언어로 마치 인스톨하는 프로그램을 만들듯이 개발하고 있고, 특히 화면에 보이는 웹은 javascript가 평정하다시피 되어 있네요.

그래서 javascript를 보는데, 예전과는 느낌이 사뭇 다릅니다.

객체지향언어가 아니라면서 객체가 난무하고, new Object는 이해가 되는데 function을 변수에 넣어놓고 객체라 부르면서 상속은 아닌데 부모의 함수라면서 호출을 하고...

스팀잇을 알게되면서 steem.js 라이브러리를 사용하기 위해 node.js를 설치해서 조물조물 뭔가 만들어보기는 했는데, 그때까지도 node.js가 자바스크립트 문법을 차용한 다른 언어인 줄 알았네요.

어째든 파면 팔수록 뭐가 더 나오는 자바스크립트 프레임웍이나 라이브러리들 때문에 이건 한 사람이 할 수 있는게 아닌가 싶을 정도로 진입장벽을 느꼈네요.

자바스크립트의 진입장벽을 제대로 표현한 인터넷 글 하나 있는데, 파이썬과는 대조적으로 다양성을 매우 존중하는 느낌을 받기도 합니다.

2016년에 자바스크립트를 배우는 기분 http://www.looah.com/article/view/2054

그냥 연초에 세미나에서 주워들은 python이나 파볼까 하다가, 어차피 집 근처에 서점도 있고해서 시간날때마다 서점에 꽂혀있는 javascript 책들을 봤네요.

함수 리터럴이나 클로져와 같은 개념들이 슬슬 자리잡혀갈때쯤 자주 언급되는 prototype과 관련된 책을 10년 쯤 전에 샀던 기억이 났습니다.

자바스크립트 for 웹2.0 (2008)
Prototype & Scriptaculous 인 액션 (2008)

세상에.. 헷갈리거나 궁금했던 내용들이 그 시절에 알고있던 용어들로 설명되어 있네요. 진작에 사놓았던 책을 봤으면 다른 언어들과 javascript의 문법 차이로 인한 혼동이 많이 줄었을텐데, 몇 주간 고생한게 다 아깝더군요.

아래와 같이 클래스의 상속과 함수의 오버라이딩이 애매하게 오가는 코드가 어떻게 가능한지, 그래서 왜 편한지를 이해시켜주네요.

사실 알고보면 그렇게 다른 개념도 아니였고, 없던게 새로 생겨났다기 보다는 좀더 다양하게 활용방식을 넓혔을 뿐인데 기존의 어렴풋한 기억들이이 오히려 방해가 된게 아닐까 하는 생각이 들었습니다.

저처럼 취미로 다시 프로그래밍을 하려는데 왠지 요즘 책을 봐도 이해가 잘 되지 않고 예전 자바스크립트와 요즘 자바스크립트의 갭을 크게 느끼시는 분들에게 이 책을 추천드립니다.

아마 헌책방에서밖에 못 사겠지만 몇 천원 안할꺼 같기도 하네요.

ps.

자바스크립트 공부 겸 홈페이지 벤치마킹 겸 luka7.net의 자바스크립트를 살펴볼 예정인데 관심있으신 분 있나요?

디자인은 별로(?)지만 엄청 고수가 짠 느낌이 스멀스멀 나는 코드들을 이렇게 볼 수 있으니 좋네요.^^
http://luka7.net/resource/style.css
http://luka7.net/resource/js-cookie.js
http://luka7.net/resource/system.js
http://luka7.net/resource/action-min.js
http://luka7.net/resource/market.js
http://luka7.net/resource/tradeInfo-min.js

[kr-dev] 10년 만에 다시 보는 Javascript에 대한 소회 | Ecency