본문 바로가기

Code.D IT 강좌/ETC

JavaScript의 기본


개발자를 미치게하는 프로그래밍 언어 10가지에 대해 다룬적이 있었는데요,


'프로그래밍을 배우자, 프로그래밍 언어'

http://moolgogiheart.tistory.com/14


그 10가지 언어 중에 하나인 JavaScript에 대해 다루고자 합니다.

JavaScript는 주로 웹페이지에서 클라이언트 측 스크립팅으로 사용된다고 하였는데요,

(무슨 소린지 모르겠습니다만) 웹 페이지라는 단어가 들어가기에 이 단어를 선택하였습니다.

저는 웹 페이지 개발에 관심을 두고 있거든요 ^^

어쨋든 짚고 넘어가야 할 부분이기에 

오늘 JavaScript에 대한 모든 것을 파헤쳐 보도록 하겠습니다.




JavaScript란 무엇인가?


JavaScript는 웹페이지를 동적으로, 프로그래밍적으로 제어하기 위해 사용되는 프로그래밍 언어입니다.





JavaScript와 Java는 같은가요?


'인도와 인도네시아는 같은가요?'와 같은 질문입니다. 두 나라가 이름만 비슷할 뿐 전혀 다른 나라인 것처럼 자바와 자바스크립트 또한 완전히 다른 프로그래밍 언어이며 실제로 관련성이 없습니다. 자바는 1995년에 Sun Microsystems의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이자 컴퓨팅 플랫폼 입니다.



객체 지향 프로그래밍 언어란?

프로그래밍 언어는 크게 두 가지 종류의 언어로 나눌 수 있습니다. 바로 객체 지향 언어와 절차 지향 언어입니다. 하나의 예를 들어 두 언어의 차이를 비교해 보겠습니다. 자동차를 만들기 위해서는 엔진, 바퀴, 의자, 브레이크, 엑셀 등의 많은 부품들이 필요합니다. 절차 지향적인 관점으로 보았을 때 이 자동차는 엔진→차체→바퀴→의자→핸들 등의 순서대로 만들어야 합니다. 그런데 객체 지향적인 관점으로 보면 엔진, 차체, 바퀴, 의자, 핸들을 만드는 순서 상관없이 따로 부품을 만들어 하나의 객체를 만들 수 있는 거죠. 만약 바퀴에 문제가 있다면 객체지향적인 관점에서는 전체 부품들에 영향을 끼치지 않지만 절차지향적인 관점에서는 전체 부품들에 영향을 미치게 되는 거죠. 그래서 고장난 부품만 고쳐주면 되는 것이 객체지향이라고 볼 수 있겠습니다. 하지만 절차 지향은 바퀴 하나만 망가져도 전체 기능이 마비가 될 수도 있는 거죠.





JavaScript를 실행하려면 무엇이 필요합니까?


실행을 위해 따로 변환될 필요가 없는 텍스트 기반의 컴퓨터 언어입니다. Java와 C++ 같은 다른 언어들은 실행하기 전에 컴파일을 해야 하지만 자바스크립트는 실행기(parser)라 불리는 프로그램을 통해서 즉석에서 실행됩니다. Internet Explorer, Firefox, 그리고 Safari를 포함하여 우리가 많이 사용하는 웹브라우저에 실행기가 내장되어 있습니다. 자바스크립트는 인터프리터 언어이자 스크립트 언어로 특별한 프로그램이 필요하지 않습니다.





인터프리트(스크립트)/컴파일 언어란?


프로그래밍 언어는 또 다른 기준으로 컴파일 언어와 인터프리트 언어로 나눌 수 있습니다. 인터프리트 언어는 스크립트 언어라고도 불리죠.


컴파일(Compile) 언어 (C, C++, Java)

소스코드에서 컴파일이라는 과정을 통해 목적코드로 옮기는 것을 말합니다. 즉, 컴퓨터가 이해하기 쉬운 형태로 번역되는 것이라고 비유할 수 있겠습니다. 컴파일을 하게 되면 실행 가능한 프로그램이 생성되며, 이러한 프로그램을 목적 프로그램이라고도 합니다. 컴파일 언어는 번역과 실행이 따로 이루어지죠.


인터프리트(Interpret) 언어 (JavaScript, ActionScript, VBS)

소스코드를 목적코드로 옮기는 과정 없이 실행 중에 번역이 됩니다. 소스코드를 목적코드로 옮기는 컴파일과 대비됩니다. 인터프리터(Interpreter)는 소스코드를 한 줄 한 줄 읽어 들이면서 하나 하나 해석하며 실행하는 프로그램입니다. 인터프리터에서는 번역과 실행이 동시에 이루어집니다. 즉, 별도의 실행파일이 존재하지 않습니다.





JavaScript 대신 HTML을 사용하면 안 되나요?


이 두 언어 또한 다르기에 대신 사용하는 것은 안 됩니다. HTML은 웹 페이지를 만드는 언어로 자바스크립트가 제어하는 직접적인 대상이며 정적인 언어입니다. 자바스크립트는 웹페이지에 기능을 더해 HTML 웹 페이지의 동적인 작업을 수행하기 위한 프로그래밍 언어입니다.





JavaScript의 한계


자바스크립트는 웹 브라우저에서 실행되기 때문에 보안상에서는 대단히 취약합니다. 간단히 말해, 자바스크립트에는 어떠한 보안 모델도 존재하지 않습니다. 따라서 브라우저에서 웹 페이지를 열 때 안전하고 위험헤 처하지 않도록 보장해야 합니다.



※ 참고사항

'객체지향 vs 절차지향 프로그래밍' - 위시켓(Wishket)