Language

한국어English日本語

개발의 자유를 찾아

바닐라 자바스크립트

개발 화두인 '의존성' 딜레마를 풀어갑니다.

개발의 자유를 찾아 > 바닐라 자바스크립트

브라우저의 변화와 바닐라 JS에 대한 전망

브라우저들이 바닐라 JS 를 핵심 기술로 인식하는 전망을 생각해봅니다.

#크롬 # 사파리 #엣지 #파이어폭스 #구글 #애플 #자바스크립트 #PWA #바닐라 JS

인텔리피아는 이해를 돕기 위해 대화형식으로 재구성하여 출판합니다.

©intellipia.com
2024-02-08 20:06:27


Inquirer

브라우저들이 바닐라 JS에 호의적인 이유에서 시작해볼까요?


Respondent

네, 딱히 호의적이다, 더 좋아한다, 뭐 이런 이야기는 기술적으로 의미가 없을 것 같고요, 만약에 웹브라우저 입장에서 바닐라 JS에 좋은 점수를 준다면 어떤 것이 있을까, 이런 관점이 더 인텔리피아 다울 것 같습니다.


Inquirer

몇가지로 정리가 될 수 있을까요?


Respondent


표준성, 호환성, 속도, 보안성, 유지보수, 독립성 등으로 정리하여 접근할 수 있을 것 같습니다. 표준성과 호환성은 유사한 개념이므로 함께 고려해보죠.

우선, 웹표준의 중심에는 클라이언트 측 동적 환경을 담당하는 자바스크립트가 있습니다. 바닐라 자바스크립트는 표준성 면에서 브라우저 업체가 직접적으로 노력하고 추진할 수 있는 장점이 있습니다. 특정 플랫폼에 종속되지 않는 표준화된 스크립트로, ECMAScript 표준을 준수함으로써 브라우저 자체에서 호환성을 향상시킬 수 있습니다. 각 브라우저의 엔진이 다르더라도, 브라우저 업데이트를 통해 이러한 차이를 줄여나갈 수 있습니다.

예전에는 표준화와 거리가 멀었던 시대도 있었지만, 현재는 대부분의 브라우저가 바닐라 자바스크립트를 핵심 기술로 삼고 있으며, 관련 기술들을 거의 모든 주요 브라우저에서 지원되고 있습니다. 또한, 개발자 도구의 발전도 이러한 표준화를 뒷받침하고 있습니다.

Image


속도 측면에서는 바닐라 자바스크립트가 가볍고 빠른 구조를 가지고 있습니다. 이러한 속도와 경량화된 특성은 사용자에게는 눈에 띄지 않지만, 브라우저가 연산을 수행하는 과정에서는 안정감의 차이를 만들어냅니다. 바닐라 JS의 자체 업데이트 기능은 브라우저 업데이트의 부담을 덜어주며, 개발자는 종속성 없이 바닐라 자바스크립트를 업데이트할 수 있어 효율적인 대응이 가능합니다.

개발자들의 빠른 대응은 결과적으로 사용자들에게 안정적인 브라우저 이미지를 제공할 수 있습니다.


Inquirer

바닐라 JS가 보안성이 낮다는 의견들도 있습니다.


Respondent

글쎄요. 그건 좀 이해가 가지 않습니다. 프레임워크들이 대부분 보안성을 강조하는 것은 사실이지만, 보안성이란 유지력도 중요하지만 대응력이 핵심입니다. 즉, 보안 문제에 대응할 수 있는 민첩성이 있어야 합니다. 이러한 대응력은 보안 업데이트의 신속한 배포와 표준화된 방식을 통해 모든 브라우저에서 보안 문제를 공유하고 개선할 수 있는 능력을 의미합니다. 이러한 측면에서 바닐라 JS는 브라우저들에게 더 높은 점수를 받을 수 있습니다.

바닐라 JS의 특성 중 일부인 표준 준수, 보안 업데이트, 그리고 외부 종속성의 감소는 ECMAScript 표준에 따라 관리되고 있습니다. 이는 보안 문제에 대응하기 위한 효과적인 방법을 제공하며, 외부 종속성의 부재는 보다 신속한 대응을 가능케 합니다. 이러한 점에서 바닐라 JS가 브라우저들에게 더욱 호의적으로 다가가는 이유 중 하나입니다.



Inquirer

바닐라 JS의 보안성과 외부 종속성 감소의 연관성이 궁금하네요.


Respondent

외부 종속성(의존성)이란 프레임워크나 라이브러리를 사용하는 것을 의미하고, 특성화된 특정 CMS를 사용하는 것이기도 한데 이러한 외부 자원을 사용할 때는 해당 프레임워크나 라이브러리가 제공하는 기능을 신뢰하고 의존합니다. 의존성이 커질수록 코드베이스는 더 복잡해지고, 보안 취약점이 발생할 가능성도 높아집니다.

사용하는 개발자나 브라우저가 이 프레임워크와 라이브러리등을 개발한 주체가 아니기 때문에 외부 종속성이 취약점을 가지고 있다면, 해당 취약점을 이용한 공격으로부터 시스템이 위협받을 수 있죠.

바닐라 JS는 외부 종속성을 최소화합니다. 즉, 별도의 프레임워크나 라이브러리를 사용하지 않고 순수한 JS만으로 웹 애플리케이션을 개발합니다. 이는 보안 측면에서 큰 장점으로 작용합니다. 외부 종속성을 최소화함으로써 보다 안전한 웹 애플리케이션을 개발할 수 있는 장점이 있기에 브라우저가 선호할 수 있습니다.


Inquirer

그런데, 왜 바닐라 JS 보다는 프레임워크들이 대세가 된 것일까요?


Respondent

우선, 프레임워크는 개발자들이 반복적이고 복잡한 작업을 간편하게 처리할 수 있는 기능을 제공합니다. 특히, 대규모 웹 애플리케이션을 개발할 때 프레임워크를 사용하면 코드의 구조화와 유지보수가 용이해집니다. 또한, 프레임워크는 일반적으로 다양한 기능을 포함하고 있어서 개발 시간을 단축시키고 효율성을 높일 수 있습니다.

또한, 모바일웹과 HTML5 시대부터는 프레임워크 기반의 JS가 UI에 큰 영향을 주었죠. 이로 인해 많은 개발자들이 프레임워크를 통해 빠르고 현대적인 사용자 인터페이스를 개발할 수 있는 방법을 제공 받았습니다.

그러나 바닐라 JS도 계속해서 발전해 왔고. 표준화와 보안성을 강화하며, 각 브라우저에서 지원하는 기능들을 적극적으로 활용하여 웹 애플리케이션을 구축하는 데 필요한 기능들을 제공하고 있습니다. 이러한 점에서 바닐라 JS가 최근에 진지한 관심을 받고 있으며, 특히 보안과 표준화에 더 많은 초점을 맞추고 있다보니 앞으로는 프레임워크와 바닐라 JS가 서로 보완적으로 사용되는 경향이 더욱 강화될 것으로 예상됩니다. 프레임워크냐, 바닐라JS냐는 식의 선택 문제가 아니라 균형성의 문제입니다.



Inquirer

바닐라 JS가 순수 JS라 하더라도 브라우저 호환성에서는 모든 브라우저에 완벽하지는 않을 것 같습니다.


Respondent

바닐라 JS의 호환성은 브라우저 종류에 따라 조금씩 다릅니다. Chromium 기반인 크롬, 엣지, 오페라 등에서는 바닐라 JS의 표준화가 더 일관적이지만 독자적인 레이아웃 엔진을 가지고 있는 파이어폭스와 사파리에서는 일부 기능이나 문법에서 차이가 있을 수 있죠. 특히 사파리는 몇 가지 특정 기능에서 추가적인 작업이 필요해서 주의가 필요합니다.

그러나 브라우저 업체들은 보다 표준화된 JS 실행 환경을 제공하기 위해 지속적인 노력이 계속 진행되는 이상, 바닐라 JS를 사용하는 개발자들은 브라우저 호환성에 대해 걱정할 필요가 줄어드는 건 사실입니다. 몇년동안의 흐름을 보더라도 브라우저간의 그 갭이 상당히 줄었죠. 무엇보다 전망이 좋은 건 바닐라 JS의 확장성입니다. 프레임워크와 거의 차이가 없을 정도의 기능구현과 유지보수 편리성이 증가하리라 봅니다.



Inquirer

처음에 정리한 바닐라 JS 특성 외에도 개발자들이 바닐라 JS에 관심을 갖고 스킬 향상을 시도해야 하는 특별한 이유가 있나요?


Respondent


웹 개발은 기초가 계속 따라 다닙니다. JS 파트 역시 프레임워크등을 사용하는 것에 앞서 바닐라 JS부터 충분히 이해하는 것이 중요합니다. 이를 통해 개발자는 웹 개발의 기본 개념과 동작 '원리'를 파악할 수 있으며, 이후에 다양한 라이브러리나 프레임워크를 더 효과적으로 사용할 수 있죠.

바닐라 JS를 통한 스킬 향상은 개발자의 직관력을 키웁니다. 프레임워크나 라이브러리에 의존하지 않고 순수한 JS로 문제를 주체적으로 해결하는 과정이 지혜를 키워주죠. 이는 실무에서 유용한 아이디어로 문제를 해결하는 데 도움이 되고, 이것이 쌓이면 자기만의 프레임워크,라이브러리가 만들어집니다. 갈수록 개발시간이 단축됩니다.

바닐라 JS는 지속적으로 발전하고 있으며, 웹 개발의 트렌드에도 민감하게 대응하고 있죠. 따라서 바닐라 JS에 대한 이해와 스킬은 개발자의 경쟁력을 높이는 데 당연히 도움이 됩니다.



엮인 포스트
크롬 서드파티 쿠키차단 전면시행
1.구글 드라이브 이슈 원인
2.구글 드라이브 이슈 대안
3.PWA와 브라우저 보안이슈



Notice
인텔리피아가 시대적으로 정의하는 지식의 개념은 '정해져 있지 않은 특성'에서 시작되는 것이며,이를 바탕으로 모든 컨텐츠는 유연성을 기반으로 편집됩니다. 인텔리피아는 고정된 정답을 추구하지 않고, '원리'를 바탕으로 즐겁게 대화하는 '지식 놀이터'를 지향합니다.  인텔리피아 컨텐츠를 활용하는 것의 책임은 사용자에게 있음을 강조합니다.