자바스크립트의 장단점 정리
장점
속도
자바스크립트는 인터프리터 언어이다. 인터프리터 언어란 프로그래밍 언어를 컴파일하여 기계 언어로 바꾸지 않고 프로그래밍 언어로 되어 있는 코드를 한 줄 씩 읽어가며 실행하는 언어로 말한다. 이 인터프리터에도 장점과 단점이 존재하지만, 컴파일이 필요한 다른 프로그래밍 언어에 비해 시간이 적게 소요되는 장점이 있다. 또 자바스크립트는 클라이언트 스크립트라 서버 연결에 드는 시간을 절약할 수 있어서 프로그램 실행 속도를 높힐 수 있다.
단순함
자바스크립트는 또한 초보자가 배우기 쉬운 언어이다. 직관적이며, 단점에 속하는 ‘유연성’이 초보자들에게는 배울 때 장점으로 다가가기도 한다. 또 프로그램 개발이 매우 쉬워서 동적 컨텐츠를 만드는 비용을 줄여준다.
인기
현대의 모든 브라우저들은 JS를 지원하고, 유명한 기업(구글, 아마존 등)에서도 자바스크립트를 툴로 사용한다.
상호운용성
자바스크립트는 또한 다른 프로그래밍 언어와 호환이 가능하기 때문에 많은 개발자들이 어플리케이션을 만들 때 자바스크립트를 애용한다.
서버 로딩
서버로 데이터를 주고 받지 않아도 브라우저 자체에서 데이터 유효성 검사를 할 수 있다는 장점이 있다(만약 데이터가 불일치한다면, 페이지를 새로고침하는게 아닌 브라우저가 페이지의 일부를 업데이트한다)
기능성
여러가지 라이브러리가 존재한다. 풍부하고 잘 관리된 써드파티 라이브러리로 하여금 쉽고 빠르게 애플리케이션을 구축할 수 있도록 한다.
인터페이스
자바스크립트는 매력적인 웹 페이지를 만들기 위해 다양한 인터페이스를 제공한다. 드래그 앤 드롭이나 슬라이더는 웹 페이지에 풍부한 인터페이스를 제공한다.
다재다능
자바스크립트를 프론트엔드뿐 아니라 백엔드에서도 사용이 가능하다. 백엔드에서는 NodeJS를 사용한다.
오버헤드 감소
코드 길이를 줄여 웹 어플리케이션의 성능을 향상시킬 수 있다.
단점
브라우저 지원
브라우저마다 자바스크립트를 해석(인터프리트)하는 방식이 다른데, 코드를 배포하기 전에 각각의 브라우저에 테스트를 해봐야한다는 단점이 있다.
디버깅 기능 부족
다른 프로그래밍 언어의 에디터와 비교해 디버깅 도구가 그렇게 유용하지는 않은 편이다. 또 브라우저가 에러를 일일이 보여주지 않기 때문에 개발자가 문제를 찾아내는 것 또한 어렵다.
단일 상속
다중 상속을 지원하지 않는다.
느린 비트 함수
숫자는 64비트 부동소수점 숫자로 저장하고, 연산자는 32비트 연산자에서 동작한다. 그렇기 때문에 자바스크립트는 숫자(64bit floating-point number)를 32bit signed integer로 변환하고 또 그걸 기반으로 연산하고, 그 결과를 다시 64비트 부동소수점 숫자로 저장하기 때문에 이러한 변환에 시간이 많이 소요된다.
클라이언트 보안
코드 자체가 유저에게 보이기 때문에 누군가 악의적인 의도로 자바스크립트 코드를 악용할 수 있다.
렌더링 중지
코드에 에러가 하나만 있어도 웹 사이트에서 동작하는 전체 코드의 렌더링을 완전히 중지시켜버린다.
다른 OOP 언어와의 차이점
은닉화의 한계
Java나 TypeScript(JavaScript의 단점을 보완한 새로운 언어)에서는 클래스 내부 속성과 메서드를 구별하는 private
라는 키워드가 있다. 그래서 메서드에 private가 있으면 클래스 외부에서는 접근이 불가능하다. JavaScript또한 private
가 있기는 하지만, 지원하는 브라우저가 제각기 다르기 때문에 사용이 힘들다.
추상화 기능 부재
추상화란 속성/메서드의 이름만 노출시켜 사용을 단순화시키는 걸 의미한다. Java나 TypeScript에서는 인터페이스 기능이 구현되어 있다. 하지만 JavaScript에서는 이러한 인터페이스 기능이 없다.
댓글남기기