자바스크립트(js)로 코딩 입문하기
코딩을 입문할만한 언어를 추천하라면 저는 C를 추천하겠습니다. 물론 C는 쉬운 언어가 아닙니다. 저도 C를 잘하지 못합니다.
다만 C를 모르는 사람들은 C에 대해 불필요한 환상과 두려움을 갖습니다. 막상 문법 위주로 훑으면 간단하게 프로그래밍 개념을 익힐 수 있는 언어가 C인데, 환상과 두려움 때문에 자기가 ‘진짜’ 프로그래밍을 모르고 있다고, 할 수 없다고 생각해버립니다. 이런 점 때문에라도 꼭 한 번은 C를 배워야한다고 봅니다.
불필요한 환상과 두려움을 버린다면, 저 역시 사람들에게 스크립트 언어를 추천합니다. 스크립트 언어란 한 줄씩 해석되는 언어를 말합니다. 제일 추천하고 싶은 언어는 자바스크립트(javascript)입니다. 줄여서 js[제이에스]라고 하죠. 편의상 계속 js라 쓰겠습니다.
js는 한 때 대단치 않은 언어로 취급됐습니다. 그런데 웹 생태계가 발전하면서 js도 같이 대단한 언어로 발전했습니다.
여기서 잠깐, 웹 사이트들은 어떤 언어로 만들어졌을까요? C일까요? 웹 사이트를 만들 수 있는 언어는 3가지가 있다고 합니다. php[피에이치피], jsp[제이에스피], asp[에이에스피]. 이것들 말고도 떠오르는 언어와 프레임워크들이 많지만 기본적으로는 이 셋이 웹 사이트 개발계의 삼대장입니다.
우리가 이 셋 중의 하나로 웹 사이트를 개발할 때, 서버 사이드 프로그래밍(server side programming)이라고 부릅니다. 웹 사이트는 기본적으로 서버(server)를 가지게 되는데, 그냥 컴퓨터입니다. 웹 사이트의 파일들이 저장돼있는 컴퓨터를 서버라고 합니다.
반대로 그냥 일반 유저들이 쓰는 컴퓨터를 클라이언트(client)라고 합니다. 그리고 클라이언트에게 보이는 부분을 개발하는 것, 즉, 웹 브라우저에 표시되는 부분을 개발하는 것을 두고 클라이언트 사이드 프로그래밍(client side programming)이라고 합니다. 이를 구성하는 요소가 저 이름도 유명한 html, js, css입니다.
그러니까 ‘서버 단’은 php, jsp, asp라는 세 가지 언어 중에 하나를 ‘택일’해서 개발하고, ‘클라이언트 단’은 html, js, css를 ‘결합’해서 개발합니다. 예를 들면 저는 jsp + html/js/css 개발을 잘하는 편입니다. 기존에는 이게 전통적인 웹 사이트 개발 공식이었다고 보면 됩니다.
그런데 이러한 생태계에 노드js(node.js)는 놈이 등장했습니다. 노드js는 서버 단에서 쓸 수 있는 자바스크립트 언어입니다. 이것은 상당히 혁명적인 이야기죠. 원래 서버 프로그래밍은 클라이언트 프로그래밍보다 어렵다고 알려져 있는 만큼, jsp나 php를 배우는데는 상당한 시간을 들여야 했습니다.
그런데 노드js가 서버를 대체한다면, 이제 js언어 하나로 서버와 클라이언트를 모두 작성할 수 있게 됩니다.
이론적으로는 html, css, js만을 배워서 간단한 웹 사이트를 만들 수 있게 된 것이죠. 지금 보시는 이 ‘디독’이라는 사이트 역시 html, css, js로만 만들어진 사이트입니다. 웹 사이트 하나를 만들어낸다는게 생각보다 쉬운 일은 아닐테지만, 시간이 되는대로 차근차근 설명할 예정입니다.