자바스크립트가 무엇이냐는 질문에 대한 내 대답

baealex 95%

소비적인 일보단 생산적인 일을 추구하며, 좋아하는 일을 잘하고 싶어합니다 😀

Sign in to view email

오늘 누군가 내게 자바스크립트가 정확하게 무엇이냐고 질문하였다. 웹개발을 잘 몰라서 구분이 어렵다는 것이었다. 내 머릿속에 들었던 자바스크립트의 정의는 아래와 같았다.

스크립트는 서버 사이드와 클라이언트 사이드가 있는데 자바스크립트는 클라이언트 사이드다.

누군가의 표정은 여전히 '?'를 자아냈고 그 표정을 보면서 나는 '내 대답이 너무 협소했나?'는 생각에 구체적인 대답을 떠올렸다.

브라우저는 HTML만 이해할 수 있다. 만약 클라이언트가 대부분 웹서버는 경로상에 배치된 파일을 클라이언트의 요청에 맞게 전송한다. 클라이언트가 서버에게 URI를 요청했을때 그 파일이 jsp라면 파일과 데이터 베이스를 가진 서버에서는 자바를 통해서 해당 파일을 처리하여 온전한 HTML로 바꾸고 클라이언트에게 전송한다. 클라이언트가 HTML을 전달 받으면 브라우저에선 DOM을 통해서 HTML을 계층적으로 표현하는데 이 HTML을 컨트롤하는게 자바스크립트다.

웹개발을 잘 모르겠다는 사람에게 나는 URI, DOM, HTTP라는 표현을 하는게 맞는 건가? 라는 생각이 들었다. 정말 이렇게 답했다면 그냥 싸우자는 멘트가 아니었을까? 아마 면접이었다면 좋은 답이었겠지만 누군가에게 알려주는 것 치고는 굉장히 불친절하다는 생각이 들었다. 만약 한발 더 나아가 HTTP가 무엇이냐 DOM이 무엇이냐고 묻는다면 자바스크립트보다 더 거대한 질문을 받게 되는 셈이다.


그렇다면 이렇게 설명해볼까?

JavaScript는 처음에 LiveScript라 불렸으며 Netscape사에서 개발되었다. 가장 일반적인 사용은 HTML 문서에 내포되는 클라이언트 사이드 스크립트며 동적 HTML 문서를 생성한다.

과연 '자바스크립트가 무엇인가?, 어느때 활용하는가?'에 대한 질문에 위와같이 답하는게 맞는 걸까? 이건 마치 "선생님 더하기가 뭐에요? 잘 모르겠네요."라고 물었더니 선생님이 친절히 "응. 더하기 라는 건 최초로 수학 기호를 사용한 사람으로는 3세기에 살았던 고대 그리스의 수학자 디오판토스를 꼽아. 그는 문장으로 쓰던 방벙식을 미지수와 나눗셈, 빼기 기호를 이용해 수식으로 나타냈단다."라고 답하는 격이다.

난 언젠가 프로그래밍의 교육자로써 올라서고 싶은 마음이 있다. 하지만 이런 식으로 누군가를 가르키는 선생이란게 될 수 있을까? 생선의 자질이 있을까? 내가 처음 웹을 공부할 땐 뭘 보고 이해했지? 난 그저 직접 하나하나 해보면서 '아! 이런게 자바 스크립트구나!'라는 걸 알아간 것 같다. 왜 그 경험으로 아직도 난 자바스크립트에 대한 쉬운 정의를 내리지 못한걸까?

다시 나를 떠올려보자. 내가 가장 싫어하는 선생님은 '자~ 이건 이거고 저건 저거예요.'라고 알려주는 타입이다. 내가 무언가에 열정적으로 몰입하려면 그게 어디에 활용되는지 알고 내가 그 무언가를 적극적으로 활용하고 싶어진 순간이다. 다시 돌아와서 그럼 자바스크립트는 어디에 활용되는가!!!


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

만약 당신이 웹사이트에서 계산기를 만든다고 생각해보자. 그리고 계산기의 모양을 떠올려보자. 버튼은 네모났고 0~9까지의 버튼이 있으며 사칙연산 버튼이 있다. 그럼 HTML은 button이라는 태그를 통해서 버튼을 만들 수 있게 한다. CSS에선 그 버튼을 좀 더 까맣고 크게 만들 수 있으며 원하는 곳에 배치시킬 수 있다. 그리고 버튼을 눌렀을 때 숫자가 입력되게 하는 건 자바스크립트로 구현할 수 있다.

작성된 댓글이 없습니다!

로그인된 사용자만 댓글을 작성할 수 있습니다.

이 작성자가 게시한 다른 글