What is Vanilla JS?
외부 라이브러리나 프레임워크를 사용하지않은 순수 JavaScript 를 말한다
사용자를 위해 정의된 라이브러리나 프레임워크 일체를 사용하지않기때문에 당연히 다른 라이브리러나 프레임워크를
사용했을때보다는 빠르고 호환성이 좋다
고수면 고수일 수록 별의별 기능을 구현할 수 있다 (실력의 척도?...)
Characteristics
순수 자바스크립트의 특성상 라이브러리를 사용했을때 간단하게 사용한 코드가 라이브러리를 사용하지않으면 코드가 길어진다
$('li').css('color','red')
jQuery 를 사용해서 이렇게 표현할수있는것을
document.querySelectorAll('li').forEach(item => item.style.color='red')
이런식으로 굉장히 길게 작성해야한다
for Each 같은 반복문도 사용해서 표현해야하는 경우가 생기기도하기때문에 초심자에겐 코드 가독성이 굉장히 떨어진다
하지만 디버그 기능에서는 순수 자바스크립트의 진면목을 알수있다
바닐라 JS로 만든 구문은 디버그를 할때 해당 구문만을 조사하지만 라이브러리를 통해 만든 구문은 디버그를 할때
해당 구문뿐 아니라 라이브러리 파일 안을 몇바퀴를 돌고오기때문이다
디버그가 아니더라도 라이브러리 파일 안을 몇바퀴 돌고오는것은 실제 컴퓨터에게 연산시간이 늘어나기때문에
바닐라 JS를 사용하면 연산 시간이 크게 단축된다
Point
바닐라 JS 는 프레임워크가 아니다!!!!!!
사람들이 헷갈릴수도 있지만 프레임워크나 라이브러리가 아니다 그냥 순수 JS 를 나타내는뜻 , 사용법을 배울필요가없음
바닐라 JS가 마냥 좋고 빠르고 완벽한것은 아니다 !!!!!!!!!
모든 프로그래밍언어가 그렇듯이 기본 언어만으로 높은 생산성을 달성하기는 쉽지않고 특히나 바퀴를 재발명하는 일이 있으면 안된다
JS로 개발할때 아무 라이브러리도 없이 개발하게되는 경우에 생산성이 급격하게 저하가 될수도있음 (실력차이가 극명함)
가뜩이나 부족하고 표준화 되지못한 JS의 내장 라이브러리들로 는 모든 요구사항을 충족시키기 어렵다
바닐라 JS 를 지향하자는 말은 프레임워크 자체를 사용하지말자 는것이 아니라 너무 지나치게 의존하지 말자라는거다
실제 회사에선 JS로만 개발하는 경우가 굉장히 드물다.. (본적없음)
바닐라 JS는 UI에 대해서만 말이된다!!!!!
JS의 범위가 넓어짐에 따라 node 등으로 백엔드를 개발하는 JS개발자에게는 바닐라 JS 라는 말이 통하지않는다
바닐라 JS는 과거에 '구현이 복잡한 동적인 UI' 를 쉽게 만들기 위한 제이쿼리 같은 툴에 지나치게 의존하던 개발자들이
native DOM API 자체를 사용하지않게 되면서 만들어진 용어다
즉 과거엔 JS가 제이쿼리와 사실상 동일시 되던 '브라우저 위에서 돌아가는 스크립트 언어' 정도의 위치였고
표준화되지않은 여러 DOM API 들로 인해 차라리 통일된 제이쿼리 같은 라이브러리가 오히려 브라우저 호환성이 높았음을 생각해야한다
현재의 JS의 쓰임새와 위치, 표준화 된 문법, 표준화된 브라우저 API 등과 과거의 차이를 이해해야만 바닐라 JS 의 진정한 의미를 알수있다
'Programming(ko,en) > Javascript' 카테고리의 다른 글
| JavaScript에서 인터프리터, 동적, 객체 지향 언어 개념에 관해 (1) | 2023.10.31 |
|---|---|
| Time complexity (with JS) - Part 1 (0) | 2022.11.06 |
| JavaScript DataStructure (0) | 2022.10.24 |
| ES6 , Map(), Set() (0) | 2022.10.20 |
| JavaScript Syntax Basics (0) | 2022.10.17 |