잠시 시간적 여유가 있어서 이번 기회에 그동안 해보고 싶던 TAURI를 접해보기로 했다. 개념적으로만 알고 있던 TAURI를 실제로 사용해 보기 위해 만들 애플리케이션을 구상하였고 디자인하고 결과물을 만들었으며, 이 과정에서 내가 느낀 TAURI를 기록해 보고자 한다.
Vite는 ESM 및 Native 언어를 통해서 기존 Javascript 기반의 번들러의 문제점을 해결했다. Native ESM 지원으로 별도의 번들링 없이 개발 서버를 실행할 수 있으며, ESM이기 때문에 별도의 변환 작업 없이 브라우저에 직접적으로 제공하며, esbuild를 통해 종속성 모듈을 사전 번들링하여 개발 서버의 성능을 향상한다. 또한 preload 스텝을 이용한 병렬적(Parallel)으로 모듈을 로드하기 때문에 빌드에 최적화되어 있다.
이 포스트에서는 Module System이라는 개념이 왜 필요하게 되었고 되었고 JavaScript 모듈 방식인 CommonJS
와 AMD
, UMD
, ESM
에 대해 설명하고, Module Bundler에 대해 살펴보려고 한다.
Electron에서 편의를 위해 사용하는 webPreference 옵션의 nodeIntegration을 사용하는데 이렇게 되면 Electron에서 require()를 통해 javascript 모듈을 무리 없이 호출할 수 있지만 REC(Remote Code Execution) 보안적 취약점이 발생한다. 이 포스트에서는 Electron의 ContextBridge를 사용하여 RCE 취약점을 해결하는 방법을 기록한다.
현재 Front-End 생태계에서 패키지 관리는 중요한 요소 중 하나가 되었다. 과거 웹 애플리케이션에서는 모듈이라는 개념이 크진 않았지만, 현재는 애플리케이션의 규모가 커지면서 모듈이라는 개념이 중요해졌으며, 이를 관리하는 패키지 매니저 역시 중요해졌다. 이번 포스팅에서는 패키지 매니저가 무엇인지와 왜 패키지 매니저가 발전하는지 알아보고 최근 주목받고 있는 패키지 매니저인 PNPM
을 알아보도록 하자.