๐ป๊ฐ๋ฐ/WEB
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/euBhJQ/btr82140SDy/ZuAjycqz7cabK2nZKFi9d1/img.png)
![](https://tistory1.daumcdn.net/tistory/4446718/skin/images/no-image.jpg)
WinForm์์ WebView2๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์๋ ๋งํฌ์์ ํํ ๋ฆฌ์ผ์ ๋ฐ๋ผํ๋ค. https://docs.microsoft.com/en-us/microsoft-edge/webview2/get-started/winforms Get started with WebView2 in WinForms apps - Microsoft Edge Development Getting started guide for using WebView2 for WinForms apps. docs.microsoft.com ์คํ ์ ์ค๋ฅ๋ ์์์ง๋ง WinForm์์ WebView2๊ฐ ๋ณด์ด์ง์์๋ค. ์์ธ์ 3๋จ๊ณ์ ๋ช ์๋ Microsoft Edge preview channel์ด ์ค์น๋์ด์์ง ์์์์๋ค. Edge๊ฐ ์ค์น๋์ด์์ด ๊ฐ์๊ฑด์ค ์๊ณ ..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/c1iWz7/btr8PYVlCDd/wxMSr5PKt47Vyj1qiFHqf0/img.png)
![](https://tistory1.daumcdn.net/tistory/4446718/skin/images/no-image.jpg)
C# Winform์์ WebView2 fixed version์ ์ ์ฉํ ๋ ๋ฐ์๋๋ค. ์์ธ์ winform์ webview2๋ฅผ ์ฌ๋ฆด ๋ ์๋์ผ๋ก ์์ฑ๋๋ ์ฝ๋์ ์์๋ค. CoreWebView2 ์ด๊ธฐํ๊ฐ ์์๋ ํ์๋ WebView2.CreationProperties๋ฅผ ์์ ํ ์ ์๋๋ฐ ์ฝ๋ ๋ด์์ webview2 fixed version์ ์ค์ ์ ์ํด CreationProperties๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ Designer ํ์ผ์์ CoreWebView2 ์ด๊ธฐํ๊ฐ ์ ํ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ .Designer.cs ํ์ผ์์ Form์ ๋ํ ๋ถ๋ถ ์ค Webview2๋ฅผ ์ด๊ธฐํํ๋ ์๋ ์์ค์ฝ๋๋ฅผ ์ฃผ์์ฒ๋ฆฌํ๋ฉด ๋๋ค. ((System.ComponentModel.ISupportInitialize)(this.webView..
![](https://tistory1.daumcdn.net/tistory/4446718/skin/images/no-image.jpg)
https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#details-about-the-fixed-version-runtime-distribution-mode Distribute your app and the WebView2 Runtime - Microsoft Edge Development How to distribute the WebView2 Runtime when releasing an app that uses Microsoft Edge WebView2, either by distributing the automatically updated Evergreen Runtime, or distributing a Fixed..
![](https://tistory1.daumcdn.net/tistory/4446718/skin/images/no-image.jpg)
๋น๋ : ์ด์ ๋น๋ ์ดํ ๋ณ๊ฒฝ๋ ์์คํ์ผ๋ง ๋น๋ ๋ค์๋น๋ : ๊ธฐ์กด ๋น๋ ๋ด์ฉ์ ์ ๊ฑฐํ ํ ๋ชจ๋ ์์คํ์ผ์ ์๋กญ๊ฒ ์ ์ฒด ๋น๋ ๋ฒ์ ์ฑํฌ๊ฐ ๊นจ์ง ๊ฒฝ์ฐ ๋ค์ ๋น๋๋ฅผ ํตํด ์ค๋ฅ ํด๊ฒฐ ๊ฐ๋ฅ ์ ๋ฆฌ(Clean) ํ ๋น๋ = ๋ค์ ๋น๋ ์ ๊ฐ์
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/Bn2Cm/btrHdwDCSPn/FgBGnOfdaU7HejSaaYotJ0/img.png)
![](https://tistory1.daumcdn.net/tistory/4446718/skin/images/no-image.jpg)
exe ํํ์ ์คํํ๋ก๊ทธ๋จ์ ํ ์คํธํ๊ธฐ ์ํด ํ๋ผ๋ฏธํฐ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก CustomURI๊ฐ ์๋ค. Custom URI๋ http,ftp์ ๊ฐ์ URI Scheme ๋์ ์์์ URI Scheme๋ฅผ ๋ ์ง์คํธ๋ฆฌ์ ๋ฑ๋กํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ ๋ปํ๋ค. ์๋ฅผ ๋ค์ด "test://"๋ก ์์ํ๋ URI Scheme๋ฅผ ๋ ์ง์คํธ๋ฆฌ์ ๋ฑ๋กํ๋ฉด "test://testํ๋ก๊ทธ๋จ"์์ผ๋ก ํธ์ถํ ๊ฒฝ์ฐ "testํ๋ก๊ทธ๋จ"์ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉํ ์ ์๋ค. ์์ 1. exe ํํ์ ์คํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด 2. nsi ์คํฌ๋ฆฝํธ๋ฅผ ํตํด customURI๋ฅผ ๋ ์ง์คํธ๋ฆฌ์ ์ ์ฅํ ํ 3. ์ํ html์ ํตํด customURI๋ก exeํ๋ก๊ทธ๋จ์ด ์คํ๋๋์ง ํ์ธํ๋ค. ์ฌ๊ธฐ์ ์ฌ์ฉํ exe ํ๋ก๊ทธ๋จ์ ๊ฐ๋จํ๊ฒ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ผ๋ฒจ ํ์์ผ๋ก ๋์์ฃผ๋ ํ๋ก๊ทธ๋จ์ด..
![](https://tistory1.daumcdn.net/tistory/4446718/skin/images/no-image.jpg)
๊ธฐ๋ณธ ์ ํ์ * : ์ ์ฒด ์ ํ์. ๋ชจ๋ ์์๋ฅผ ์ ํ ABC : ํ๊ทธ ์ ํ์. ํ๊ทธ ์ด๋ฆ์ด ABC์ธ ์์๋ฅผ ์ ํ .ABC : ํด๋์ค ์ ํ์. ํด๋์ค ์์ฑ์ ๊ฐ์ด ABC์ธ ์์๋ฅผ ์ ํ #ABC : ์์ด๋ ์ ํ์. ์์ด๋ ์์ฑ์ ๊ฐ์ด ABC์ธ ์์๋ฅผ ์ ํ ๋ณตํฉ ์ ํ์ span.orange : ์ผ์น ์ ํ์. span๊ณผ .orange๋ฅผ ๋์์ ๋ง์กฑํ๋ ์์ ์ ํ ul > .orange : ์์ ์ ํ์. ul์ ์์ ์์ .orange๋ฅผ ์ ํ div .orange : ํ์ ์ ํ์. div์ ํ์ ์์ .orange๋ฅผ ์ ํ (๋์ด์ฐ๊ธฐ๊ฐ ์ ํ์์ ๊ธฐํธ) .orange + li : ์ธ์ ํ์ ์ ํ์. ์ ํ์ .orange์ ๊ฐ์ฅ ์ธ์ ํ ํ์ ์์ li ํ๋๋ฅผ ์ ํ .orange ~ li : ์ผ๋ฐ ํ์ ์ ํ์. ์ ํ์ ...
![](https://tistory1.daumcdn.net/tistory/4446718/skin/images/no-image.jpg)
์๋จ์ ํญ์ ์์ด์ฝ์ ์ค์ ํ๊ธฐ ์ํด ์ฐ์ .ico ํ์์ ํ์ผ์ ์์ฑํ๋ค. ์๋์ ์ฌ์ดํธ๋ฅผ ์ด์ฉํ์ฌ png ํ์ผ์ ico ํ์ผ๋ก ๋ณํํ ์ ์๋ค. https://www.icoconverter.com/ ICO Converter Converts images to the ICO format for your websites or applications. www.icoconverter.com ์์ฑํ ico ํ์ผ์ ํ๋ก์ ํธ ํด๋์์ ํด๋๋ฅผ ์์ฑํ์ฌ ๋ฃ์ด์ค๋ค. ex) static ํ๋ก์ ํธ๋ฅผ ์คํํ ๋ dist ํด๋์์ ํด์ฌ๊ฐ์ ํฌํจ๋ ํ์ผ์ ํตํด ์คํ๋์ง๋ง dist ํด๋๋ ์ญ์ ๋๋ค๊ฐ ๋ค์ ์์ฑํ ์ ์๋ ํด๋์ด๋ฏ๋ก ico ํ์ผ์ dist ํด๋์ ๋ฐ๋ก ๋ฃ๋๊ฑด ๋ฌธ์ ๊ฐ ๋ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก parcel-plugin-st..
![](https://tistory1.daumcdn.net/tistory/4446718/skin/images/no-image.jpg)
๋ฒ๋ค๋ฌ๋ ์น์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก html, css, javascript๊ฐ ๋์์ ํ๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ๋ง ๊ฐ์ง๊ณ ์ ์ฝ๋ฉ์ ํ๊ธฐ์๋ ๋นํจ์จ์ ์ธ ๋ถ๋ถ๋ค์ด ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ vue.js, react, sass ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ๋์์ ๋ฐ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ ์น์์ ์ง์ ์ ์ผ๋ก ๋์ํ์ง ์๊ธฐ๋๋ฌธ์ ๋ณํํ๋ ์์ ์ ๊ฑฐ์ณ์ผํ๋ค. ์ด๋ฅผ ์น์์ ๋์ํ๋๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋์์ฃผ๋๊ฒ ๋ฒ๋ค๋ฌ(Bundler)์ด๋ค. ๋ฒ๋ค๋ฌ๋ฅผ ํตํด ๋ณํ์ ํ ๋ ์ธ๋ถ์ ํจํค์ง๋ฅผ ๋ฒ๋ค๋ฌ๊ฐ ์ค์นํ์ฌ ํจํค์ง์ ๋์์ ๋ฐ์ ๋ณํํ๋ค. ์ฆ ์ค์ง์ ์ธ ๋ณํ์ ์ธ๋ถ์ ํจํค์ง๊ฐ ์ง์ ์ ์ผ๋ก ์๋์ผ๋ก ์์ ์ ํด์ค์ผํ๋๋ฐ ์ด ์๋์ ์์ ์ ๋ฒ๋ค๋ฌ์๊ฒ ์์ํ๋ ๊ฒ์ด๋ค. ๋ฒ๋ค๋ฌ์ ์ข ๋ฅ parcel : ๊ตฌ์ฑ ์ต์ ์๋ ๋จ์ํ ์๋ ๋ฒ๋ค๋ง, ์/์คํ ํ๋ก์ ํธ์ ์ ํฉ web..
![](https://tistory1.daumcdn.net/tistory/4446718/skin/images/no-image.jpg)
1. npm init -y 2. npm install parcel-bundler -D 3. main.js ํ์ผ ์์ฑ 4. index.html ํ์ผ ์์ฑ 5. index.html ํ์ผ์ main.js ์ฐ๊ฒฐ 6. package.json ํ์ผ scripts ๋ณ๊ฒฝ "scripts": { "dev": "parcel index.html", "build": "parcel build index.html" }, 7. npm run dex * parcel-bundler ๋ฒ์ ์ด ๋ง์ง ์์ ๊ฒฝ์ฐ npm i parcel-bundler@(์ํ๋ ๋ฒ์ ) -D * git์ ์ฌ๋ฆด๋๋ ํด๋ gitignore .cache/ dist/ node_modules/