JavaScript 언어 소개

이지영·2024년 5월 25일

JavaScript

JavaScript는 웹페이지를 동적으로, 프로그래밍적으로 제어하기 위하여 고안된 언어이다.
최근에는 자바스크립트가 웹을 벗어나서 광범위하게 사용되고 있다.

역사

HTML은 환번 화면에 출력이 되면 그 형태나 동작 방법을 바꿀 수 없다.
이를 해결하기 위해 넷스케이프에서 만들어졌다.
이후에 이 언어는 마이크로소프트의 인터넷 익스플로러에 jscript라는 이름으로 탑재된다.
후에 ECMA라는 표준화 기구로 이 언어의 관리 주체가 옮겨졌다.

*넷스케이프

넷스케이프 커뮤니케이션즈 코퍼레이션에 의해 개발된 상용 크로스 플랫폼 인터넷 스위트

*ECMA

Ecma International이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어를 말한다. 자바스크립트를 표준화하기 위해 만들어졌다.

👉자바스크립트는 더 이상 웹브라우저를 제어하기 위한 용도로만 사용되지 않는다.

👉서버쪽에 존재하면서 사용자에게 프로그래밍적으로 생성해주는 기술들이 php, java, python 등이 있는데,

👉서버 쪽에서 존재하면서 사용자에게 웹 브라우저에 응답하기 위한 정보를 프로그래밍적으로 생성해주는 기술들이다.

JavaScript는..

언어란 의사소통을 위한 약속이다.
환경이란? 언어를 사용하는 대상이 환경이다.
언어라는 공통 분모를 가지고 각각의 다른 환경을 제어하게되는데 그 환경에 따라 환겨이 할 수 있는 일이 다르고 명령어가 각각 다르다.

자바스크립트는 공통 분모에 해당되며,
웹브라우저, node.js, SpreadSheet는 환경에 속한다.

JavaScript의 장점

자바스크립트는 컴파일 과정이 없기 때문에 다른 언어에 비해서 빠른 시간에 코드를 작성할 수 있게 도와준다.
기존 C나 자바와 달리 굉장히 단순한 구조와 원칙을 가지고 있기 때문에 초보 개발자들이 쉽게 배울 수 있다.

웹에 특화된 기술이기 때문에 운영체제나 플랫폼에 상관없이 잘 작동되고 확장성이 높다.

JavaScript의 단점

자바스크립트는 일단 내부에서 제공되는 기능이 제한적이고, HTML 소스코드에 함께 작성되면서 소스코드가 외부로 공개되는데, 이 과정에서 보안 취약점이 발생할 수 있다.

JavaScript 주요 라이브러리

  • Angular.js
    구글이 직접 만든 웹 애플리케이션 프레임워크로 개발과 테스트 환경을 단순화시킨 기술이다.
    제이쿼리나 자바스크립트 UI컴포넌트를 쉽게 재사용할 수 있다.
  • Node.js
    자바스크립트 엔진 V8위에서 동작하는 이벤트 처리 I/O 프레임워크다.
    서버 환경에서 자바스크립트로 애플리케이션을 작성할 수 있게 돕는다.
    특징 및 장점은 비동기 프로그래밍이다.
    따라서 결과값을 기다리지 않고 보다 다양한 요청을 처리할 수 있다.

JavaScript로 할 수 있는 일들

  • 웹 페이지 스크립팅 - DOM
  • 서버 측 스크립팅 - node.js
  • 브라우저 확장기능
    - Google Chrome extensions
    • Opera extensions
    • Apple Safari 5 extenxions
    • Apple Dashbord Widgets
    • Microsoft Gadgets
  • Adobe PDF
  • Tools in the Adobe Createi Suite
    - Photoshop
    • Illustrator
    • Dreamweaver
    • InDesign
  • OpenOffice.org
  • Unity 게임 엔진
  • Google Apps Script
    - Google spreadsheets
    • google sites
  • 채팅 시스템
    - chatZilla
    • XChat

JavaScript에 영향을 준 언어

  • Java: 기본적인 문법
  • Scheme: 1급 함수(first-class Function)함수의 인자와 반환값으로 함수를 사용
  • self: prototype 기반의 상속 개념

참고

[링크텍스트](https://opentutorials.org/course/743/4650)

0개의 댓글