티스토리 뷰

 

 

1. 자바스크립트

자바스크립트는 웹 페이지에서 복잡한 기능을 구현할 수 있도록 하는 스크립팅 언어 또는 프로그래밍 언어이다. 

웹페이지에서 어떤 버튼을 클릭하거나, 내용을 입력한 후 일어나는 일을 컨트롤할 수 있는 것은 모두 자바 스크립트의 역할이다.

 

 

2. 장점

2-1. 속도

자바스크립트는 인터프리터 언어이기 때문에, 자바와 같이 컴파일이 필요한 다른 프로그래밍 언어에 비해 시간이 적게 소요된다.

인터프리터 언어 
프로그래밍 언어를 컴파일하여 기계 언어로 바꾸지 않고, 프로그래밍 언어로 되어 있는 코드를 한줄씩 읽으며 실행한다.
매번 똑같은 결과를 반환하느 함수를 5번 호출한다고 치자. 인터프리터 방식은 해당 함수 호출을 만날 때마다 함수를 매번 하여 총 5번 함수를 실행한다. 반면, 컴파일 언어에서는 처음 함수를 만났을 때 그 결과를 기억하고 있다가, 다음 함수 호출을 만나면 함수를 다시 실행하지 않고, 기억하고 있는 결과값을 반환한다. 따라서 함수를 5번 호출해도 실행은 처음 호출한 1번만 한다.

 

 

2-2. 단순함

자바스크립트는 배우기 쉬운 언어이다.

프로그램 개발이 쉬워서, 개발자들이 웹을 위한 동적 컨텐츠를 개발하는데 드는 비용을 절약하게 해준다.

또한 타입의 제약 없이 유연하게 코드를 작성할 수 있습니다.

브라우저에서 바로 실행할 수 있기 때문에 별도의 프로그램이나 IDE 설치 없이 사용할 수 있고, 운영체제에 제한을 받지 않는다.

 

 

2-3. 쉬운 디버깅

자바 스크립트는 코드가 한 줄 한 줄 실행되는 인터프리터 언어이기 때문에 문제를 빨리 발견할 수 있다.

인터프리터 언어는 실행하는 시점마다 한 줄씩 컴파일링하고 실행하게 된다.

반면 Java, C와 같은 컴파일링 언어는 위에 있는 모든 줄을 한번에 컴파일링한 후 시킨다.  

자바 스크립트는 실행시킬 때 특정한 줄에 바로 문제가 있음을 알지만 다른 컴파일링 언어는 다른 줄을 모두 컴파일링하고 실행하는 시점에 문제가 있다는 것을 알게 된다.

컴파일링 : 코드(영어)를 컴퓨터가 읽을 수 있는 기계어(0,1)로 변환되는 과정

 

 

2-4. 확장성

npm 등을 통해 라이브리러리를 추가할 수 있다.

풍부하고 잘 관리된 써드파티 라이브러리는 개발자로 하여금 빠르고 쉽게 자바스크립트 애플리케이션을 구축할 수 있도록 한다.

npm(Node Package Manager) : Node.js로 만들어진 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램

 

 

2-5. 동적 프로토 타입 기반 객체 지향언어

1) 클래스 기반 객체지향언어

  • 클래스 기반 언어는 객체의 형식이 정의된 클래스라는 개념을 가진다.
  • 사람이라는 틀(class)이 있다면, 그 틀을 이용해서 사람들을 찍어내는 것(객체)이다.
  • 클래스 상속 정보를 이용해서 상속 구조 모습을 가진 새로운 객체의 틀을 뽑아낸다.

2) 프로토타입 기반 객체지향언어

  • 프로토타입 기반 언어는 클래스라는 개념이 없다. 클래스 기반 언어의 상속 개념과 다르게, 객체 prototype의 위임 과정을 통해 상속의 과정이 구현된다.
  • 존재하는 객체끼리 동적으로 연결해서 표현한다.

 

2-6. 비동기적인 자바스크립트

1) 동기는 요청과 결과가 동시에 일어나는 방식으로 요청을 보낸 후 응답을 받아야 다음 동작이 진행된다.

 

2) 비동기는 요청과 결과가 동시에 일어나지 않는 방식으로 요청과 결과가 동시에 일어나지 않는다.

요청한 곳에 결과가 나타나지 않으며, 사용자가 서버로 요청을 보냈을 경우 요청에 대한 응답을 기다리지 않고, 다른 것을 수행할 수 있으며 서버로 다른 요청을 보낼 수도 있다.

 

 

3. 단점

3-1. 콜백지옥

자바 스크립트의 비동기 특성은 종종 "콜백 지옥"으로 알려진 패턴을 야기할 수 있다.

여러 가지 작업을 비동기적으로 순차적으로 처리해야 할 때, 중첩된 콜백은 빠르게 복잡해지고 읽기 어려워질 수 있다.

이로 인해 코드를 이해, 디버그 및 유지 관리하기 어려울 수 있다.

 

3-2. 타입 예측이 어려움

많은 프로그래밍 언어들은 타입이 다르면 에러가 나기 때문에 버그를 사전에 막을 수 있다.

하지만 자바 스크립트는 타입이 다르더라도 에러라고 알려주지 않기 때문에 많은 버그의 소지가 있다.

단적인 예로 자바 스크립트에서는 문자와 숫자를 더하는 연산이 가능하여 1 + '1'은 '11'이 된다.

이는 의도하지 않았을 가능성이 매우 크다.

 

 

3-3. 브라우저 지원

급하게 생긴 언어인 만큼 부족한 부분이 많기에 계속 업데이트가 되고 있다.

자바 스크립트는 2015년 ECMAScript 6(ES6)의 도입으로 새로운 구문 기능, 향상된 모듈 지원 및 향상된 반복 기능을 포함하여 대대적인 업데이트를 했고 지금까지도 계속 업데이트가 되고 있다.

기존 코드 및 라이브러리는 최신 버전에서 작동하도록 업데이트하거나 다시 작성해야 할 수 있기 때문에 시간이 많이 소요될 수 있다.

 

 

 

 

'공부' 카테고리의 다른 글

용어정리..  (0) 2024.04.05
주소창에 주소를 입력하면 어떤 일이 벌어질까?  (1) 2024.04.03
DOM 구조  (0) 2024.04.01
var vs let  (0) 2024.03.31
CSS Normalize vs CSS Reset  (0) 2024.03.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함