brunch

You can make anything
by writing

C.S.Lewis

by 김지영입니다 Mar 29. 2018

엘프의 외계어 배우기

자바스크립트에 대해서 알아봅시다. - 제1화 

여러 가지 외계어 중에서 오늘은 자바스크립트에 대해서 알아봅니다. 지극히 머글( = 일반인, =! 개발자)인 내가 무언가를 학습하는 방식을 기준으로 배워나갑니다.


자바스크립트를 선택한 이유는 이전에 '외계어 스터디'를 통해서 공부했기도 했고, 이번 주부터 진행할 프로젝트에 가장 적합한(?) 언어라고 이야기들었기 때문입니다. 프로그래밍 부분 외에 내가 찾아볼 수 있는 모든 것들을 조사해봅니다. 프로그래밍은 튜터와 함께 공부해나갈 예정입니다.


우선, 구글에서 검색해보니 아래와 같이 위키백과 글과 함께 기술적으로 자바스크립트(영문으로 검색하면 영어 문서들이 쭉 나오므로 한글로 검색했음)를 다루는 문서들이 쭉 나옵니다.


기술적으로 다룬 문서들은 봐도 모르기 때문에 위키백과를 봅니다. 자바스크립트는 나무위키에도 설명이 있네요~ 뭔가 더 덕스럽게 느껴집니다.


위키백과의 정의를 읽어보니 영문으로는 JavaScript라고 하네요. 이 정도는 알고 있습니다. 움하하하~ 


"객체 기반의 스크립트 프로그래밍 언어이다. 이 언어는 웹 브라우저 내에서 주로 사용하며, 다른 응용 프로그램의 내장 객체에도 접근할 수 있는 기능을 가지고 있다. 또한 Node.js와 같은 런타임 환경과 같이 서버 사이드 네트워크 프로그래밍에도 사용되고 있다. 자바스크립트는 본래 넷스케이프 커뮤니케이션즈 코퍼레이션의 브렌던 아이크(Brendan Eich)가 처음에는 모카(Mocha)라는 이름으로, 나중에는 라이브스크립트(LiveScript)라는 이름으로 개발하였으며, 최종적으로 자바스크립트가 되었다. 자바스크립트가 썬 마이크로시스템즈의 자바와 구문(syntax)이 유사한 점도 있지만, 이는 사실 두 언어 모두 C 언어의 기본 구문에 바탕을 뒀기 때문이고, 자바와 자바스크립트는 직접적인 관련성이 없다. 이름과 구문 외에는 자바보다 셀프와 유사성이 많다."


명확한 의미를 모르는 용어는 다른 색으로 표기해 둡니다. 우선 자바스크립트를 이해하려면 저 용어들을 이해해야겠죠? 영어 공부를 할 때 영영 사전을 통해 단어를 찾은 후 그 단어를 완벽히 이해하기 위해서 그 단어를 설명하는 내용 중 모르는 단어가 나오면 또 그 단어를 찾으면서 완벽하게 이해할 때까지 반복하는... 내가 공부하는 방식이 바로 이런 식입니다.


객체를 선택했더니 아래 내용이 나옵니다. 


"컴퓨터 과학에서 객체 또는 오브젝트(object)는 저장공간에서 할당되어 값을 가지거나 식별자에 의해 참조되는 공간을 의미하며, 변수자료 구조함수 또는 메소드가 될 수 있다. 프로그래밍 언어는 변수를 이용해 객체에 접근하므로 객체와 변수라는 용어는 종종 함께 사용된다. 그러나 메모리가 할당되기 전까지 객체는 존재하지 않는다.

절차적 프로그래밍에서 하나의 객체는 자료나 명령을 포함할 수 있지만 두 가지를 동시에 포함하지는 않는다. (명령은 프로시저함수의 형태를 가진다)."


그 아래에 다음과 같은 내용도 있습니다. 지금 찾아본 내용 중에는 객체지향 프로그래밍이라는 용어는 안 보이지만 '객체 기반'이라는 것이 '객체지향 프로그래밍'을 의미하는 것이 아닐까 싶어 일단 저장에 둡니다.

객체지향 프로그래밍에서 객체는 클래스의 인스턴스이다. 클래스 객체는 자료와 그 자료를 다루는 명령의 조합을 포함하여 객체가 메시지를 받고 자료를 처리하며 메시지를 다른 객체로 보낼 수 있도록 한다. 실세계의 유추로 설명하자면, 만약 어떤 사람이 집에서 살기를 원할 때, 그 집의 청사진(집의 사진)이나 축소 모형 따위는 전혀 필요가 없다. 필요한 것은 설계에 맞는 실제 집이다. 이 유추에서 청사진은 클래스를 나타내고 실제 집은 객체를 나타낸다.

객체에 대해서는 이 정도만 우선 알아두고 더 깊이 있게 알아보기 위해서 모르는 용어들을 따로 표기해둔 후 다시 자바스크립트에 대해서 알아봅니다.


다음으로는 스크립트 프로그래밍 언어를 선택해봅니다.


스크립트 언어(scripting language)란 컴퓨터 프로그래밍 언어로서 응용 소프트웨어를 제어한다. 스크립트 프로그래밍 언어라고도 한다. 스크립트 언어는 응용 프로그램과 독립하여 사용되고 일반적으로 응용 프로그램의 언어와 다른 언어로 사용되어 최종 사용자가 응용 프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 해준다. 스크립트(scripts)는 연극 용어인 스크립트에서 유래되었으며 초창기 스크립트 언어는 배치언어(batch languages) 또는 작업 제어 언어(job control language)라고도 불리었다.

하~ 이걸 보고 무슨 뜻인지 이해할 수 있나요? 위키백과를 그대로 copy & paste 한 내용입니다. 그러니까 스크립트 언어는 연극 대본을 말하는 스크립트에서 유래된 용어이고, 응용 소프트웨어 그러니까 운영 체제에서 실행되는 모든 소프트웨어를 제어하는 언어라는 뜻이군요. 그런데 여기에서 말하는 '제어'가 어떤 의미인지도 모르겠고, 그 뒤에 문장은 모르는 용어가 하나도 없는데도 1도 이해할 수가 없네요. 응용 프로그램과 다른 언어를 사용해서 사용자 요구에 맞춰서 제어할 수 있게 해준다는 뜻인가요? 최종 사용자와 사용자는 다른가요? 위키백과만으로는 이해가 되지 않아 스크립트 언어를 찾아봤습니다. 


"스크립트(Script) 언어란 소스 코드를 컴파일(Compile) 하지 않고도 실행할 수 있는 프로그래밍 언어를 말한다(다른 언어는 일일이 컴파일을 해야 된다). 그 용도가 주로 운영체제 위에서 움직이는 새로운 프로그램을 만드는 것보다는, 기존에 존재하는 어떤 다른 프로그램들을 제어하기 위해 쓰인다."라고 하네요. 아주 조금 이해할 수 있을 것도 같습니다. 그렇다면 저기에서 말하는 '최종 사용자'는 최종으로 제어하는 사람이고 '사용자'는 user를 말하는 걸까요? 우리말인데도 이해를 못하다니... 그래서 외계어인가? 


갑자기 당 떨어지는 기분이 들어 조금 쉬운 것부터 검색해보려고 합니다. 브렌던 아이크(Brendan Eich)에 대해 검색해보겠습니다.


미국의 프로그래머이며, 프로그래밍 언어 자바스크립트의 창조자


간단하네요~ 자바스크립트는 1995년에 발표되었다고 하네요. 넷스케이프에서 IE를 이겨보려고 브렌던 아이크에게 개발을 맡겼는데 그때 자바스크립트를 만들었다고 합니다. 그리고 그는 넷스케이프의 소스 코드를 오픈소스화 하려고 모질라 프로젝트를 만들었다가 모질라 재단을 설립하게 되고, 파이어 폭스(불여우)도 만들었다고 하네요. 와우~ 저도 모두 들어본 이름의 것들을 만든 분이군요. 물론 모질라에서는 좋지 않은 사건(캘리포니아 주 동성결혼에 반대한 이력)을 계기로 CEO에서 물러나 나오게 되었더군요. 그런데 자바스크립트가 원래 모카였다가 라이브스크립트로 이름이 바뀌었는데 그 후 자바의 인기에 편승해서 마케팅 효과를 누리려고 '자바스크립트'로 이름을 바꿨다는 게 사실인가요?


to be continued...


추신 : 용어들만 따로 마인드맵으로도 정리 중이다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari