์ฌ๊ธฐ์ ์ค๋ช ๋๋๋ก .net ์ฝ์ด์ ์์ฒด ํฌํจ ๋ ์ฝ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒ์ํ๋ฉด "์์ ์ค์น ๊ณต๊ฐ"์ด์๋ ํ์ผ์ด๋ผ๋ ๋ง์ ํ์ผ์ด์๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋ฉ๋๋ค.
๋จ์ผ ์คํ ํ์ผ์ ์ป๊ธฐ ์ํด ๋ชจ๋ ์ข
์์ฑ์ ๋ฒ๋ค๋ก ๋ฌถ์ ์ ์์ต๋๊น? ์๋ฅผ ๋ค์ด Windows๋ฅผ ๋์์ผ๋ก ํ ๋ ํฐ myapp.exe
ํ๋.
ILMerge์ ๋น์ทํ ๊ฒ์ ์ฐพ๊ณ ์์ง๋ง .net ์ฝ์ด๋ฅผ ์ฐพ๊ณ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. dotnet publish
๋๋ ๋ค๋ฅธ ๋ช
๋ น์ ์ผ๋ถ ์ต์
ํ๋๊ทธ๋ก ๊ฐ๋ฅํฉ๋๊น? ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ฅ ์์ฒญ์ผ๋ก ๊ณ ๋ คํ์ญ์์ค. ๊ฐ์ฌ.
์ด ์๋๋ฆฌ์ค๋ ํ์ฌ ์ง์๋์ง ์์ต๋๋ค. https://github.com/dotnet/corert ๋ฆฌํฌ์งํ ๋ฆฌ์์์ด ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ๊ฐ ์์ ์ ์ฃผ์ํ์ญ์์ค.
CoreRT๋์ด ์๋ฃจ์ ์ ๊ฒ์ํ๊ธฐ์ ์ ํฉํ ๊ณณ์ ๋๋ค.
๊ฐ์ฌ. CoreRT๊ฐ ์ ํํ ๋ด๊ฐ ์ฐพ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ด์ ๋ํด ์ฐ์ฐํ ๋ฐ๊ฒฌ ํ ์์๋ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ํด ์ฌ๊ธฐ๋ฅผ ์ฝ์ผ์ญ์์ค.
๋๋ ํน๋ณํ ์ฌ์ ์ปดํ์ผ ์์ด์ด ๊ธฐ๋ฅ
.NET Framework๋ OS์ ์ด๋ฏธ ๋ง์ ํ์ผ์ด ์์ผ๋ฏ๋ก "์์์"์
๋๋ค.
์ํ๋ ๊ฒฝ์ฐ ๋จธ์ ์ ์ฒด ๊ณต์ .NET Core๋ฅผ ์ค์นํ์ฌ .NET Core์์๋ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
CoreCLR์ ๋ฆฌํฉํ ๋งํ์ฌ ๋ชจ๋ ํ์ผ์ ํ๋๋ก ๋ณํฉ (๊ธฐ๋ณธ + ๊ด๋ฆฌ ํฌํจ)ํ๋ ๊ฒ์ ์ฌ์ํ ์์ ์ด ์๋๋ฉฐ ๋๋ฌด ๋ง์ ๊ณ ๊ฐ์๊ฒ์ด ์๋๋ฆฌ์ค๊ฐ ๊ทธ๋ค์ง ํฅ๋ฏธ ๋กญ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
์ฐจ์ด์ ์ ๋ชจ๋ Windows ์ปดํจํฐ์๋ .NET Framework๊ฐ ์์ง๋ง .NET Core๋ ํฌํจ๋์ง ์๋๋ค๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ๋ฐฐํฌ๋ฅผ ๋ ๋ณต์กํ๊ฒ ๋ง๋ค ๊ฐ์น๊ฐ์๋ ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด ๊ทธ ์๋ฆฌ์ ๋จธ๋ฌผ๊ฒ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ณ ๊ฐ์ ์ผ๋ฐ์ ์ผ๋ก ๋จ์ผ exe ์ ํธ๋ฆฌํฐ๋ฅผ ์์ฑํ์ง ์์ต๋๋ค. ์๋ง๋ ์ธ์ ๊ฐ. :-)
๋ฐฐํฌ๋ฅผ ๋ ๋ณต์กํ๊ฒ ๋ง๋ค ๊ฐ์น๊ฐ์๋ ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด
.NET Framework๋ณด๋ค .NET Core๋ฅผ ์ ํธํ๋ ๋ฐ๋ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ ์์ต๋๋ค. ์ฑ๋ฅ, ๋ชจ๋์ฑ, ์๋น์ค ์ฉ์ด์ฑ, ๊ฒฉ๋ฆฌ ๋ฑ. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๊ต์ฐจ ํ๋ซํผ ์ฑ์ ๋ฌด์ํ๊ณ ์์ต๋๋ค.
๋จ์ผ exe ์ ํธ๋ฆฌํฐ๋ฅผ ๊ฐ๋ ๊ฒ์ ๋๋ถ๋ถ ์ธ๊ด์์ ๋ฌธ์ ์ ๋๋ค. ์คํ ํ์ผ์ด ๋จ์ผ ํ์ผ์ด๊ฑฐ๋ ๊ทธ ์์ ๋ช ๊ฐ์ ํ์ผ์ด์๋ ๋จ์ผ ํด๋ ์ธ ๊ฒฝ์ฐ์๋ (๊ด๋ จ๋ ๋ชจ๋ ์ฌ๋์๊ฒ) ์ค์ ๊ธฐ๋ฅ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
@mellinoe ์ค, ๋๋ ์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ ํธ์ ๋์ํฉ๋๋ค. ๊ทธ๊ฒ์ ํ์คํ ์ฌ์ค์ ๋๋ค. ์ด ์ธํ์ด ๋ฐ๋์งํ ์์ ์ ํธ๋ฆฌํฐ์์ .NET Framework๋ ์ง๊ธ๊น์ง ์ถฉ๋ถํ ์์ ์ ์ํํ์ต๋๋ค. ์ด์ ๋ธ๋ฆฌ ํ์ฌ์ ์ ์๊ถ ๋ฉ์์ง๋ฅผ ์ง์ ํ ์ ์๋ค๋ ๊ฒ๊ณผ ๊ฐ์ ์๋ฏธ์์ ํ์ฅํ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฏธ์ฉ์ ์ธ ๊ฒ์ด ๋๋ฅผ ๋ ์ข์ํ๊ฒ ๋ง๋๋ ๊ฒ์ ์๋๋๋ค. ๋ถ๋ช ํ ์ฌ๊ธฐ์ ์ฐ์ ์์๋ ์๋์ง๋ง ๊ฝค ์ดํดํ ์ ์์ต๋๋ค.
๊ด๋ จ ๊ฐ๋ฅ์ฑ ์์ : https://github.com/dotnet/core/issues/600
๋๋ถ๋ถ ํ์ฅํ์ด ์๋๋๋ค. Idsrv4 ๋๋ RavenDb์ ๊ฐ์ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๊ฐ ๋ด๋ถ์ ํฌํจ ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด๋ณด์ญ์์ค. ๊ทธ๋ค์ aspnet ์ฝ์ด ๋นํธ์ ์์กดํฉ๋๋ค. ๋์ผํ ๋ฒ์ ์ aspnet ์ฝ์ด์ ์์กดํ๋ ํ์ด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ๊ทธ๋ค ์ค ํ๋๊ฐ ๋ค์ ๋ฒ์ ์ผ๋ก ๋กค ํฌ์๋ํ์๋ง์ ๋ ์ด์ ์๋ํ์ง ์์ ๊ฒ์ ๋๋ค. OTOH๋ผ๋ฉด ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ๋จ์ผ .dll๋ก ilmerge ํ ์ ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง๋๋ค.
๋ช ์ฌํด์ผ ํ ํ ๊ฐ์ง๋ ILMerge๊ฐ ์๋ํ์ง ์๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ๊ธฐ์ ์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐํ์ ์์ฒด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ๋ฌ ํ์ผ๋ก ๋ถํ ๋๋ฉฐ CLR ํธ์คํธ, ๋ฐํ์ ์ข ์์ฑ ํ ์คํธ ํ์ผ ๋ฑ๊ณผ ๊ฐ์ ๋ณด์กฐ ํ์ผ๋ ์์ต๋๋ค. ๋จ์ผ ํ์ผ ์คํ ํ์ผ์ด ๊ณผ๊ฑฐ์ ์๋ํ๋ ์ ์ผํ ์ด์ ๋ ์ ์ญ ์์คํ ์ ์ฒด ์ค์น ์ธ .NET Framework๊ฐ ์์กดํ๊ธฐ ๋๋ฌธ์ ๋๋ค. .NET Framework์๋ ์ค์ ๋ก "๋ ๋ฆฝํ"์ต์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋ ์๋๋ฆฌ์ค๋ฅผ ๋น๊ตํ๋ ๊ฒ์ ์ฝ๊ฐ ๋ถ๊ณตํํฉ๋๋ค.
๋์ผํ ๋ฒ์ ์ aspnet ์ฝ์ด์ ์์กดํ๋ ํ์ด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ๊ทธ๋ค ์ค ํ๋๊ฐ ๋ค์ ๋ฒ์ ์ผ๋ก ๋กค ํฌ์๋ํ์๋ง์ ๋ ์ด์ ์๋ํ์ง ์์ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ์ฌ์ค์ด ์๋๋๋ค. ๋ค๋ฅธ ๋ฐํ์ ๋ฒ์ ์ ๋ํด ์ฌ๋ฌ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒ์ ํ ๋ค์ ๋์ผํ "uber-app"์ ๋ฒ๋ค๋ก ์ ๊ณต ํ ์ ์์ต๋๋ค. ์ข ์์ฑ์ ๋จ์ผ ํด๋๋ก ํผํฉ ํ ์๋ ์์ต๋๋ค. ํ๋ ์ ์ํฌ ์ข ์ ๊ฒ์ ์ต์ ์ ์ฌ์ฉํ๋๋ผ๋ ๋ฒ์ ์ ํผํฉํ๊ณ ์ผ์น์ํฌ ์ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ๋ง ๊ทธ๋๋ก ๋จ์ผ ํ์ผ์ ๊ฐ๋ ๊ฒ๋ณด๋ค ๋ ํธ๋ฆฌํ๋ค๋ ๊ฒ์ ์ดํดํ๊ณ PE์ ๋ฆฌ์์ค๋ก exe๋ฅผ ํฌํจํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒ์ ๋ฐฉ์ง ํ ์ ์์ต๋๋ค. ๊ทธ๋๋ ํ์ผ์ ์คํํ๋ ค๋ฉด ํ์ผ์ ์ถ์ถํด์ผํ๋ฏ๋ก ๋๋ ํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ ๋น์ ์ด ๋งํ๋ ๊ฒ์ธ์ง ํ์คํ์ง ์์ต๋๋ค.
๋ฐํ์ ๋ฒ์ ์ด ์๋๋ผ ์๋ํ์ง ์์ ๊ฒ์์ ์๊ณ ์์ต๋๋ค. ๋ด ๋ง์, ๊ฐ ๊ตฌ์ฑ ์์๊ฐ [email protected]์ ์ข ์ ๋ ๋ ๋ด ์๋๋ฆฌ์ค์์ ์ด๋ค ์ผ์ด ๋ฐ์ [email protected] ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค
@thefringeninja ๊ด๋ จ ์ง์ ๋ฟ๋ง ์๋๋ผ ๋ฐฐํฌ ๊ฐ๋ฅํ ๋จ์ผ ๋ฐ์ด๋๋ฆฌ ๋จ์๋ก ์์ ์ค๋ฒ ํค๋๋ฅผ ์ค์ด๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐฐํฌ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ณ ๋ฐฐ์ก ํ ํญ๋ชฉ์์ธ์ง ์ ์ผ๋ก ์ธ์ํด์ผํ๋ ๋ถ๋ด์ ์ค์ด๊ณ ์คํฌ๋ฆฝํ ๋๋ ์ํ๋ ์ํ์ ๊ฐ์ ์์ ๋๊ตฌ์ ๋ํ ๊ตฌ์ฑ์ ์ค์ ๋๋ค.
dotnet
๋๊ตฌ๊ฐ ์ด๊ธฐ ๋จ๊ณ์ด๊ณ 2.0์ ๋ถ๊ณผํ์ง๋ง, golang๊ณผ ๊ฐ์ ๋์์ ๋นํด์ด ๊ธฐ๋ฅ์ด ๋๋ฌด ๋ถ์กฑํ๋ค๋ ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ก๋๋งต์ ์ถ๊ฐ ํ์๊ฒ ์ต๋๊น?
lib ๊ฐ๋ฐ์๋ก์ ILMerge๋ฅผ Core๋ก ๋๋๋ ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๐
Dotnet.exe
๋ ๋จ์ผ ํ์ผ์
๋๋ค. NuGet.exe๋ ๋จ์ผ ํ์ผ์
๋๋ค. ๋๋ ํ์ฅํ์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๊ณ , ๋จ์ผ ํ์ผ exe๋ 100 ๊ฐ์ ํ์ผ์ด ๋ค์ด์๋ ํด๋๋ ๊ทธ๋ ์ง ์์ ๋ฐฉ์์ผ๋ก ๋จ์ํจ์ ์ธ์นฉ๋๋ค! dotnetcore๋ก ์ด๊ฒ์ ๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๊ฒ์ด ์ข์ ๊ฒ์
๋๋ค.
๋๋ ์ด๊ฒ์ด ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํ๊ณ , ๋ช ์ฃผ ๋์์ ์์
๋์ CLI ์ฝ์ ๋๊ตฌ๋ฅผ ๋จ์ผ .exe์ ๊ฒ์ํ๊ธฐ ์ํด ์์ต๋๋ค.
์ด๊ฒ์ด ์์ฒด ํต์ฌ ์ฑ์ ํต์ฌ์ด๋ผ๊ณ ์๊ฐ ํ๋์?
๋ฟก๋ฟก
์ด๊ฒ์ด ์์ฒด ํต์ฌ ์ฑ์ ํต์ฌ์ด๋ผ๊ณ ์๊ฐ ํ๋์?
์์ฒด ํฌํจ ๋ ์ฑ์ ์์ ์ ์์ฒด ํฌํจ๋์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ์ฑ ์์ฒด์ ์คํ์ ํ์ํ ๋ชจ๋ ๊ฒ์ด ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋์ ์ปดํจํฐ์ .Net Core๋ฅผ ์ค์นํ ํ์๊ฐ ์์ต๋๋ค.
์ด๋ฌํ ์ฑ์ ๋ฐฐํฌํ๋ ค๋ฉด ์ ์ฒด ํ์ผ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณต์ฌํด์ผํฉ๋๋ค. ํ๋์ ํ์ผ ๋ง ์์ผ๋ฉด ๋ฐฐํฌ๊ฐ ๋ ์ฌ์ ์ง์ง๋ง ๊ทธ๊ฒ ๋ค๊ฐ ์๋๋๋ผ๋ ์ฌ์ ํ ์์ฒด ํฌํจ ๋ ์ฑ์ ๋๋ค.
ํฌ๊ณ ์๋น์ค์ ๊ฐ์ ์ฑ์ ๊ฒฝ์ฐ ์ด๊ฒ์ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ ์ ์์ง๋ง ๋ช ๋ น ์ค ๋๊ตฌ์ ์์ ์ฑ์ ๊ฐ๋ฅํ ํ ๊ฐ๋จํ๊ณ COPY ๋ฐฐํฌ์ ์น์ํด์ผํฉ๋๋ค.
๋๋ ์ ๊ธฐ์ ์ผ๋ก .NET์์ ๋ช ๋ น ์ค ๋๊ตฌ๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ 1 EXE๋ก ์ฌ์ฉํ๋ฉด ์ ๊ทธ๋ ์ด๋ / ๋ฐฐํฌ / ํจํค์ง ๋ฐฉ๋ฒ์ด ๋ ๊ฐ๋จ ํด์ง๋๋ค. ๋๋ ํญ์ ๋ชจ๋ .config ๋ฐ ๊ธฐํ ํ์ ํ์ผ์ EXE ์์ ์์ถํฉ๋๋ค.
๋จ์ผ EXE๋ฅผ ๋ฏธ๋ ์ปจํ ์ด๋๋ก ์๊ฐํ์ญ์์ค. ์ปจํ ์ด๋ ๊ธฐ๋ฐ ๋ฐฐํฌ์ ๊ฑฐ์ ๋ชจ๋ ์ด์ ์ด ์ฌ๊ธฐ์ ์ ์ฉ๋ฉ๋๋ค.
์ด๊ฒ์ ๋์ฐํ ์ผ์
๋๋ค. ์ ์ด๊ฒ์ด ๋์์ธ ํ๋ก์ธ์ค ์ค์ ์น์ธ๋์๋์ง ๊ถ๊ธํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ํด๋ผ์ด์ธํธ ์ค ํ ๋ช
์๊ฒ ๋ฐฐํฌํ๊ณ ์ถ๊ณ , ๋ฌด์์ ์ด์ด์ผํ ์ง ๊ทธ์๊ฒ ํ์ด์ ๋น๋๋ค.
์ด๊ฒ์ ๋จ์ง ์ถ์ ํ๊ณ ์์ ํ ์๋ง์ ๋๋ค.
์คํ ์๊ฐ/
MyProgram.exe
MyLib.dll
์ด๊ฒ์ ๋ ๋์ ์๊ฐ์ด์์ ๊ฒ์ ๋๋ค
Java๋ ๋ ์ ์ฒ๋ฆฌํฉ๋๋ค.
๊ทธ๋ ์ต๋๋ค. ์์ฒด ํฌํจ ๋ ์ฑ์๋ ๋ฐํ์ ํ์ผ์ด ํฌํจ๋์ด์ผํ๋ฏ๋ก (๋ถ๋ช ํ!) (๊ทธ๋ฆฌ๊ณ ๋ณํฉ ํ ๋ฐฉ๋ฒ์ด ์์) ๋์ผํ ๋ผ์ธ์ ๋ฐ๋ผ ์๊ฐํ๊ณ ์์์ผ๋ฉฐ, ํด๋ ๋ถ๋ฆฌ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊น๋ํ๊ณ ์, ๋ํ ๋ฐํ์ ํ์ผ์ด ๋ฐํ์ ํด๋์ ์ ์ฅ๋์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ์ฝ์ด๋ก ์์ฑ๋ ๋ช ๋ น ์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ ์ฌ๋์ ์ ์ด๋ ์คํํ ๋์์ด ์กฐ๊ธ ๋ ์ง๊ด์ ์ด๋ผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
@Scellow @PRIMETSS ๋์ํด์ผํฉ๋๋ค
์ด๊ฒ์ด ์ด๋ป๊ฒ ์ฌ์ ํ ๋ฌธ์ ์ ๋๊น? ์ด์ ๋ํ ์์๋ ์ง๋ถ์ ํตํด ์ด๋ฃจ์ด์ง๋๋ค.
์๋ฅผ ๋ค์ด์ด ๋ณ๋์ ํด๋์ ์ถ๊ฐํ์ฌ bin์ ์์ถํ๊ณ exe์ bin์ ๋ ํ์ผ์ ํฌํจํฉ๋๋ค. ๊ฐํธํ ๋ฐฐํฌ.
๋ค์ ์ด๊ณ ๊ธฐ๋ฅ์ผ๋ก ๊ฐ์ง ๋ ๋ค๋ฅธ +1.
์ ๊ธ์ ๋ฐฐํฌ๊ฐ ์๊ธ ์์กฑ์ด ๋ ๊ฒ์ผ๋ก ์์ํ๊ณ ์ฌ๊ธฐ์์ ์ ๊ธธ์ ์ฐพ์์ต๋๋ค. ๋๋ ๋ํ ์ด๊ฒ์ด ์ผ์ด๋๋ ๊ฒ์๋ณด๊ณ ์ถ๋ค.
์ด๋ป๊ฒ ์ด๊ฒ์ด ๋จ์ง ์ธ๊ด์์ ๋ฌธ์ ๋ผ๊ณ ๋งํ ์ ์์ต๋๊น? (ํ๋ ์ ์ํฌ ๊ฐ๋ฐ์ ๋ง ...)
์๋ฌด๋ ์ค์น๋์ง ์์ ๋๊ตฌ๋ฅผ ์๊ฐํ์ง ์์์ต๋๊น? (.NET์ dll-hell์ ํด๊ฒฐํ์ผ๋ฉฐ .net ์ฝ์ด๋ ๋ค์ ๊ฐ์ ธ์ต๋๋ค)
๋ด ๋ช ๋ น ์ค ๋๊ตฌ๊ฐ ์์ฒด ํฌํจ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค.
์ด๊ฑด ์ ๋ง ๋์๋ค!
+1
+1 .net ์ฝ์ด ๋ฐํ์์ด์๋ ํด๋ฌ์คํฐ์์ Azure Batch์์ ์ฌ์ฉ์ ์ง์ ํ๋์ ์คํํ๋ ค๊ณ ํ๋๋ฐ "์์ฒด ํฌํจ"๋ฒ์ ์์ ์์ฑํ๋ ๋ง์ ์์ ํ์ผ์ ์ฒ๋ฆฌ ํ ์ โโ์์ต๋๋ค.
Total size of resourceFiles cannot be more than 32768 characters
์ด๊ฒ์ ๊ณต์์ ์ธ ํด๊ฒฐ์ฑ ์ ์๋์ง๋ง ์ ์ฉ ํ ์ ์์ต๋๋ค. ์ ๋ ๋ ๋ฆฝ์ ์ธ ๋จ์ผ ๋ฐ์ด๋๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์์๋ ๋๊ตฌ ์ธ warp์ ์ ์์ ๋๋ค : https://github.com/dgiagio/warp
์ ๋ ์ํ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋๊ฐ ์ฌ๊ธฐ์ ์ฐพ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค! ๋ฐฑ๊ทธ๋ผ์ด๋์ ์๋ ๊ฐ์ ํ๋์ exe ํ์ผ์ ๊ฐ์ง ์์๋ ๋ฅ๋ ฅ์ ๊ดํ ๊ฒ์ ๋๋ค. NuGet ํจํค์ง์ ๋ํด ์๊ฐํด๋ณด์ญ์์ค. ๋จ์ผ .nuget ํ์ผ์ด๊ณ ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค. ๋ค๋ฅธ ํ์ผ์ ํจํค์งํ๋ ํ์ผ๋ณด๋ค ๋ ๋ณต์กํ ๊ฒ์ ์๋๋๋ค.
์ํ๋ ํดํค ์๋ฃจ์ ์ ๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ด ์๋๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ :
dotnet publish --self-contained -c Release -r win10-x64
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์์ฑํฉ๋๋ค :
App.exe
runtime/
๋๋ GO / Rust ๋ฑ
App.exe
๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค
Warp๋ App.exe๋ฅผ ์์ฑํฉ๋๋ค ... ์ด๋ป๊ฒ ํดํค์ ๋๊น? ๋ถ๋ช ํ ํ๋ ์ ์ํฌ์ ์ผ๋ถ๋ ์๋์ง๋ง "ํ๋์ exe ํ์ผ"๋ชฉํ๋ฅผ ๋ฌ์ฑํฉ๋๋ค.
์ด๊ฒ์ด ๋ด ๋ง์ ํ์ฌ ์๋ฃจ์ ์ ์ฌ์ฉํ์ง ์๊ณ ๊ธฐ๋ณธ ๋์์ด์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค (๋ด ์๊ฐ์)
์ํ๋ ๋์ ์๋ฐ์ต๋๋ค. @dgiagio ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
+1
์คํ ํ์ผ๊ณผ ๋ชจ๋ ์ข ์์ฑ์ ๋ฒ๋ค๋ก ์ ๊ณตํ๋ ์ผ์ข ์ ๋จ์ผ ํ์ผ ์์นด์ด๋ธ๋ฅผ๋ณด๊ณ ์ถ์ต๋๋ค. ๋ค์ดํฐ๋ธ๋ฅผ ํฌํจ ํ ํ์๊ฐ ์์ต๋๋ค. ์์คํ ์ dotnet ์ฝ์ด๋ฅผ ์ค์นํ๋๋ก ์๊ตฌํ๋ ๊ฒ์ด ์๋ฒฝํ๋ค๊ณ ์๊ฐํฉ๋๋ค. Java์ jar ํ์ผ๊ณผ ๋งค์ฐ ์ ์ฌํ ๊ฒ์ ๋๋ค. dar ํ์ผ?
๋ค์๊ณผ ๊ฐ์ ๊ฒ :
dotnet ๊ฒ์-์์ฒด ํฌํจ
dotnet run-์์ฒด ํฌํจ MyApp.dar
์ง๊ธ ์ด์ ๋ํ ์ ์์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค : https://github.com/dotnet/designs/pull/52/files?short_path=28dba55
์ถ์ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. https://github.com/dotnet/coreclr/issues/20287
๋ํ @shanselman ์๋ Warp ์๋ฃจ์ ์ ๋ํ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ด ์์ต๋๋ค.
๋๋ ์ ์์ ์ฝ๊ณ ์ด๊ฒ์ ๋ณด์๋ค.
๊ทธ๊ฒ์ ๋ด๊ฐ ์ผ๋์ ๋ ๊ฒ์ด ์๋๋๋ค. ์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ ์์ถํ๋ ๋๋ฆฐ ํ๋ก์ธ์ค์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
๋ชจ๋ ์ฝ๋๊ฐ ๋จ์ผ ์คํ ํ์ผ / dll๋ก ๋ณํฉ๋์ง๋ง? ์๋๋ฉด ์ ์์์์ ๋ญ๊ฐ๋ฅผ ๋์ณค์๊น์?
@RUSshy ๋ชจ๋ ๊ด๋ฆฌ ์ฝ๋๋ฅผ ๋ค์ดํฐ๋ธ ์ปดํ์ผํ๊ณ ๋ชจ๋ ๊ฒ์ ํจ๊ป ์ฐ๊ฒฐํ์ฌ ํ๋์ ์คํ ํ์ผ์ ์ป๋๋ก ์์ฒญํ๊ณ ์์ต๋๊น (CoreRT์์์ ๊ฐ์ด)? ์ด๊ฒ์ .Net Core์ ํ์ฌ ๋จ์ผ ํ์ผ ์์ ์ ๋ชฉํ๊ฐ ์๋๋๋ค.
๊ทธ๋ฌ๋ ๋์คํฌ ์ถ์ถ ๋ฐ ์์ ์๊ฐ์ ์ค์ด๊ธฐ์ํ ์ ์ ๋ ์๋ฃจ์ ์ด ์์ต๋๋ค (์ : ๋ฒ๋ค์์ ์ง์ ํน์ ํ์ผ ์ ํ๋ก๋, ์ถ์ถ ๋ ํ์ผ ์ฌ์ฌ์ฉ ). ๋จ์ผ ํ์ผ ์๋ฃจ์ ๊ฐ๋ฐ ๋จ๊ณ๊ฐ ์ฌ๊ธฐ ์ ์ค๋ช ๋์ด
CC : @jeffschwMSFT
ํ์ผ์ ์ถ์ถํด์ผํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ฐ๋ฆฌ๋ ILMerge๋ฅผ ์ฌ์ฉํ์ฌ .NET์์์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
CoreRT๋ ๋ค๋ฅธ ๊ฒ์ ๋๋ค. .NET ์ฝ๋์ AOT ์ปดํ์ผ์ ํฅ๋ฏธ๋ก์ ๋ณด์ด์ง๋ง ์์ง ์ค๋น๋์ง ์์์ต๋๋ค (MS๊ฐ ๊ทธ๊ฒ์ ์ง์คํ๊ณ ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ํ ๋นํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค .. ์ด๊ฒ์ด ๋ฐ๋ก ์ฌ๋๋ค์ด ์ํ๋ ๊ฒ์ด๊ณ ๊ทธ๋ค์ด GO๋ก ์ด๋ ํ ์ด์ ์ ๋๋ค. )
์ด์จ๋ ์ธ๋ถ ์ฌํญ์ ๋ํด ์ด์ผ๊ธฐ ํ ๊ธฐ์ ์ ์ง์์ด ์์ง๋ง ์ฌ์ฉ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ฒด ํฌํจ ๋ ๋จ์ผ ์คํ ํ์ผ์ ๊ฒ์ํ๊ณ ์์ถ, ์ถ์ถ, ์ค๋ฒ ํค๋์์ด ์คํ ํ์ผ ๋ง ๊ฒ์ํฉ๋๋ค.
@ swaroop-sridhar Linux์ dotnet ์ฝ์ด์์ ์๋ํ๋ ์๊ฐ ์์ต๋๊น? https://github.com/dotnet/ILMerge/blob/master/ILMerge/ILMerge.csproj#L13 ์ ๋ฐ๋ฅด๋ฉด ์ด๊ฒ์ Windows / Mono ์ ์ฉ ํ๋ก์ ํธ์ ๋๋ค.
@thefringeninja ILMerge๋ Windows ๋๊ตฌ์
๋๋ค. ILMerge๋ฅผ ๋ค๋ฅธ ํ๋ซํผ์ ์ด์ ํ ๊ณํ์ด ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋จ์ผ ํ์ผ ์๋ฃจ์
์ ํฌ๋ก์ค ํ๋ซํผ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ์ด๊ฒ์ ๊ฐ๋ฐ ๊ณผ์ ์ ์์ต๋๋ค.
ํธ์ ๋ด์ ๊ฐ๊ธฐ
๋ฐฐํฌ ๋ฐฐํฌ ๋ฐฐํฌ!1 ~ 3 ๊ฐ์ ํ์ผ์ด ๋ฐฐํฌ (๊ฒ์, ์
๋ฐ์ดํธ ํฌํจ)์ ๋ ์ ํฉํฉ๋๋ค!
CoreRT๋ AOT์
๋๋ค.
ํ์ง๋ง ppl์ AOT๋ฅผ ์ํ์ญ๋๊น?
ํ๋ก์ ํธ (CoreRT)๋ ํญ์ ์ฌ์ฉํ ์์๋ ๊ฒ์ ์๋๋๋ค (2014 ๋
๋ถํฐ). ์ง๊ธ์ 2019 ๋
์
๋๋ค! ( ์ฝ 5 ๋
์์ )
pragram ์ธ์ด์ ๋ํ ์ผ๋ง๋ ์์คํ 5 ๋
!CoreRT๋ ๋ค์ ๋ฆด๋ฆฌ์ค์ ๋ํ ๊ณํ๋ ์์ต๋๋ค !!!ppl์ด 5 ๋
๋ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ์๊ฒ ์ต๋๊น?
@ swaroop-sridhar ์ ๊ฐ์ ๋๋ค. ILMerge / ILRepack์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์๊ฐ ๋ค์ด์๋ชฌ๋ ์ข ์์ฑ ๋ฌธ์ ๋ฅผ ํผํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
.NET Core 3.0์์ ์ง์ํ ๊ณํ์ด ์์ต๋๋ค. @richlander ๊ฐ ์ํ๋ฅผ ์
๋ฐ์ดํธ ํ ์ ์์ต๋๋ค.
.NET Core 3.0 ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ (์ : https://devblogs.microsoft.com/dotnet/net-core-3-and-support-for-windows-desktop-applications/ ์ "Side-by- ์ฌ์ด๋ ๋ฐ ์ฑ-๋ก์ปฌ ๋ฐฐํฌ '์น์
์ ์ฐธ์กฐํ์ธ์.
๋ํ ์ฝ๊ธฐ : https://www.hanselman.com/blog/BrainstormingCreatingASmallSingleSelfcontainedExecutableOutOfANETCoreApplication.aspx
.net์ ์์ ๋จ์ผ ๋ ๋ฆฝ ์คํ ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ์ด๋ฌํ ๋ชจ๋ ํดํน์ ํ์๋กํ์ง ์์์ผํฉ๋๋ค. ๊ธฐ๋ณธ ๋์์ด์ด์ผํฉ๋๋ค. GO์ ์ํด ์ด์ ๋๊ณ , Rust๋ ๋ฑ์ฅํ๊ณ , CoreRT ๋๋ ILMerge์ ์ง์คํ๊ณ , .net ํต์ฌ ์ฑ๋ ์ด๋ฏธ ์์ต๋๋ค. ๋ก๋ ํ ๋ชจ๋ ํ์ผ๋ก ์ธํด ์์ํ๋ ๋ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ฏ๋ก ์ ์์์ ์ธ๊ธ ๋ ๊ฒ์ฒ๋ผ zip / unzip์ ์ฌ์ฉํ์ฌ ์ถ๊ฐํ์ง ๋ง์ญ์์ค.
.net์ ์์ ๋จ์ผ ๋ ๋ฆฝ ์คํ ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ์ด๋ฌํ ๋ชจ๋ ํดํน์ ํ์๋กํ์ง ์์์ผํฉ๋๋ค. ๊ธฐ๋ณธ ๋์์ด์ด์ผํฉ๋๋ค. GO์ ์ํด ์ด์ ๋๊ณ , Rust๋ ๋ฑ์ฅํ๊ณ , CoreRT ๋๋ ILMerge์ ์ง์คํ๊ณ , .net ํต์ฌ ์ฑ๋ ์ด๋ฏธ ์์ต๋๋ค. ๋ก๋ ํ ๋ชจ๋ ํ์ผ๋ก ์ธํด ์์ํ๋ ๋ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ฏ๋ก ์ ์์์ ์ธ๊ธ ๋ ๊ฒ์ฒ๋ผ zip / unzip์ ์ฌ์ฉํ์ฌ ์ถ๊ฐํ์ง ๋ง์ญ์์ค.
๋น์ ์ด ์ข์ํ๋ ๊ฒ์ฒ๋ผ ppl์ ์๋ฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ .net์ ์ด์์์ ํ์๊ฐ ์์ต๋๋ค.
go ๋๋ rust ๋๋ dlang์ Fuck Zip / Unzip์ด ์๊ธฐ ๋๋ฌธ์ ๋จ์ผ ์คํ ํ๋ก๊ทธ๋จ์ ๋ํ ๋น๋ ๋์์ ์ง์ํด์๋ ์๋ฉ๋๋ค!
๋ฟก๋ฟก
.net์ ์์ ๋จ์ผ ๋ ๋ฆฝ ์คํ ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ์ด๋ฌํ ๋ชจ๋ ํดํน์ด ํ์ํ์ง ์์ต๋๋ค.
๋์ํฉ๋๋ค. ๋์์ .NET์ ์ ์ ๋ง์ปค์ ์๊ตฌ ์ฌํญ (์ : ์ฆ์ ์ฝ๋ ์์ฑ, ๋ฐ์, ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ๋ฑ)๊ณผ ์กฐ์ ํ๊ธฐ ์ด๋ ค์ด ๋ค๋ฅธ ์ธ์ด์ ๋นํด ํน์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋จ์ผ ํ์ผ / ์ ์ ๋งํฌ๊ฐ ์ค์ํ ์๋๋ฆฌ์ค์์ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ ์ธํ๋๋ก ์คํํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ํ๊ณ์์ ์๋น ํ ์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๊ฐ ๊ธ๊ฒฉํ ๊ฐ์ํ๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ฒฐ๊ณผ๊ฐ ๋ ์ด์ .NET์ฒ๋ผ ๋๊ปด์ง์ง ์๋๋ค๋ ๊ณ ๊ฐ ํผ๋๋ฐฑ์ ํตํด ๋ฐฐ์ ์ต๋๋ค.
๋ฐ๋ผ์ .NET์์ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์์กดํ๊ณ ์ข์ํ๋ ๊ธฐ๋ฅ์ ์ถฉ์ค๋๋ฅผ ์์์ํค์ง ์๋ ๋ง์ปค๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๋ ๊ฒ์ ์ด๋ ค์ด ๋ฌธ์ ์ ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์ํ ์ ๊ทผ ๋ฐฉ์์ ์คํํ๊ณ ์์ต๋๋ค. ๋น์ ์ ์ด๊ฒ์ ํต์ด๋ผ๊ณ ๋ถ๋ฅด๊ณ , ๋๋ ์ด๊ฒ์ ๊ฐ๋ฐฉ์ ์ด๋ฉฐ ์์ ๋ฐ์์ ์๊ฐํ ์์ง๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ๊ทธ๋ฌ๋ ๋งน๋ชฉ์ ์ผ๋ก .NET์ Go / Rust / C ++๋ก ๋ฐ๊พธ๋ ๊ฒ์ ์ ๋ต์ด ์๋๋๋ค.
๋จ์ผ ํ์ผ / ์ ์ ๋งํฌ๊ฐ ์ค์ํ ์๋๋ฆฌ์ค์์ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ ์ธํ๋๋ก ์คํํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ํ๊ณ์์ ์๋น ํ ์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๊ฐ ๊ธ๊ฒฉํ ๊ฐ์ํ๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ฒฐ๊ณผ๊ฐ ๋ ์ด์ .NET์ฒ๋ผ ๋๊ปด์ง์ง ์๋๋ค๋ ๊ณ ๊ฐ ํผ๋๋ฐฑ์ ํตํด ๋ฐฐ์ ์ต๋๋ค.
Jetbrains๊ฐ kotlin JVM / kotlin NATIVE์์ํ๋ ๊ฒ์ฒ๋ผ ๋ค์ดํฐ๋ธ ๊ฐ๋ฐ ๋ฐ ์ ํ๋ ํ๊ฒฝ์ ์ด์ ์ ๋ง์ถ ๋ณ๋์ .net ๋ฒ์ ์ ๋ง๋๋ ๊ฒ์ ๋ํด ํ์ด ์๊ฐ ํ์ต๋๊น?
.net์ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ง์ถ๋ ค๋ ๊ฒ์ด ๊ฐ์ฅ ํ๋ช ํ ์ต์ ์ด ์๋๋ฏ๋ก ํน์ ์ ํ์ด์ด ๋ฌธ์ ์ ๋ํ ์ ๋ต ์ผ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ tbh, afaik,์ด ๋ฌธ์ ๋ ๋ชจ๋ Windows ์ค์น์ ์ด๋ฏธ .net ํ๋ ์ ์ํฌ๊ฐ ์์๊ธฐ ๋๋ฌธ์ .net ์ฝ์ด ์ด์ ์๋ ์ค์ ๋ก ์กด์ฌํ์ง ์์์ผ๋ฏ๋ก ๋ช KB exe ๋ง ๋ฐฐํฌํ๋ฉด๋์๊ณ , ๋๋ฅผ ๊ดด๋กญํ๋ ๊ฒ์ ์๋ฌด๋ ์ด๋ฐ ์ข ๋ฅ์ ๋ํด ์๊ฐํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก .net ํ๋ ์ ์ํฌ๋ฅผ ์ฌ ์์ฑํ .net ์ฝ์ด๋ฅผ ์ค๊ณ ํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๊ฒ์ด ์ ๊ฐ ์ธ๊ธ ํ ์ต์ ์ด ์ผ๋ฐ ํดํน์ด๋ผ๊ณ ๋งํ๋ ์ด์ ์ ๋๋ค. ์ค๊ณ ์ค์๋ฅผ ์์ ํ๊ธฐ ์ํด ์ฌ๊ธฐ์ ์์ต๋๋ค.
https://github.com/dotnet/designs/blob/master/accepted/single-file/staging.md๋ฅผ ์ฝ์ ํ ์ ์์ ๋ํ ์ถ๊ฐ ๋จ๊ณ๊ฐ์๋ ๊ฒ ๊ฐ์ผ๋ฉฐ zip / unzip์ผ๋ก ๋๋์ง ์์ผ๋ฏ๋ก ๊ทธ๋ ์ง ์์ต๋๋ค. ์์ด๋ฒ๋ฆฐ ์ธ์, ์ํ๋ฉด ํ์ด ๊ทธ ๋ฌธ์์ ์ธ๊ธ ๋ ๋ ๊ฐ๋ฒผ์ด ๊ฒ์ ๊ฐ์ ธ์ฌ ์์์ ๊ฒ์ ๋๋ค.
์ด๋ฐ ๊ฒ๋ค์ด Windows๊ฐ ์ฅ๋๊ฐ OS๋ก ๋จ์์๋ ์ด์ ์ ๋๋ค.
@kjkrum ๋ฌด์จ ์ผ์ด?
@cryru ์ฌ๋๋ค์ด ๋ฌด์์ํ๋์ง ๋ชจ๋ฅผ ๋ ๋งํ๋ ๊ฒ์ ๋๋ค.
@Cryru ๋ ๋ฆฝ ์คํ ํ ์คํ ํ์ผ์ ๋น๋ ํ ์์๋ ๊ฒ๊ณผ ๊ทธ๋ ๊ฒํด์ผํ๋ ๋งค์ฐ ์ค์ ์ ์ธ ํ์์ฑ์
@Cryru ๋ ๋ฆฝ ์คํ ํ ์คํ ํ์ผ์ ๋น๋ ํ ์์๋ ๊ฒ๊ณผ ๊ทธ๋ ๊ฒํด์ผํ๋ ๋งค์ฐ ์ค์ ์ ์ธ ํ์์ฑ์
๋์, ์ด๊ฒ์ ์ค์ ๋ก ์ด์ ์ฒด์ ์์ C # ํ๋ก๊ทธ๋จ์ ์์น์ ๊ด๋ จ์ด ์์ต๋๋ค.
C # ํ๋ก๊ทธ๋จ์ ํญ์ ์ผ๋ฅ ์๋ฏผ์ด ๋ ์ ์์ต๋๋ค.2 ๋ฑ์์ด๋๊ธฐ ์ํด์๋ง.
์ด๊ฒ์ ํด๊ฒฐ๋์์ต๋๋ค.
TLDR : dotnet publish -r win10-x64 /p:PublishSingleFile=true
์ธ๋ถ:
https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#single -file-executables
https://github.com/dotnet/designs/blob/master/accepted/single-file/design.md
์ด๊ฒ์ ํด๊ฒฐ๋์์ต๋๋ค.
TLDR :dotnet publish -r win10-x64 /p:PublishSingleFile=true
์ธ๋ถ:
https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#single -file-executables
https://github.com/dotnet/designs/blob/master/accepted/single-file/design.md
์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ ๋ dotnet-core ๋ฒ์ ์ ๋ฌด์์
๋๊น? 3.0.100-preview5-011568
ํ๊ณ ์๋๋ฐ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
error MSB4030: "/p:PublishSingleFile=true" is an invalid value for the "SelfContained" parameter of the "ResolveFrameworkReferences" task. The "SelfContained" parameter is of type "System.Boolean".
LE : ์ค์ ๋ก ์๋ํ๊ณ ์์ต๋๋ค. https://github.com/dotnet/designs/blob/master/accepted/single-file/design.md ์ dotnet publish -r win10-x64 --self-contained /p:PublishSingleFile=true
๊ฒ์ํ๋ค๊ณ ๋ช
์ํ ๊ตฌ๋ฌธ ์ค๋ฅ ๋ง์๋ ๊ฒ ๊ฐ์ต๋๋ค. --self-contained
๋ฅผ ์ถ๊ฐํ์ง ์์ต๋๋ค.
@mihaimyh ๊ฐ์ฌํฉ๋๋ค. ๋์์ธ ๋ฌธ์์ ์คํ๋ฅผ ์์ ํ๊ฒ ์ต๋๋ค.
๋ฉ์ ์ ๋ ํญ์ ๋จ์ผ exe ์์ฒด ํฌํจ ๊ธฐ๋ฅ์ zip / unzip ์๋ฃจ์
์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ๋
์ด๊ฒ์ด ๋ค์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
๋จ์ผ exe ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ!
์ฌ์ค, ์ฒ์๋ถํฐ ์ ์ฌํ ๋ฐฉ์์ผ๋ก IL-Merge๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค.
๋ ผ์์ด ์์ด์๋ ์๋ฉ๋๋ค. ์ด๊ฒ์ ์๊ฐ ๋ญ๋น์ ๋๋ค. ์๋ฌด๋ ๋ชจ๋ ๊ฒ์ ์์ถ / ์์ถ ํด์ ํ๋๋ก ์์ฒญํ์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์์ด ๋์์ธ์ ๊ฐ์ง๊ณ ์์ ๊ทธ๋ค์ ์๊ฐ๊ณผ ์ฐ๋ฆฌ์ ๊ฒ์ ๋ญ๋นํ์ต๋๋ค.
์ฌ๋๋ค์ ๋จ์ผ ์คํ ํ์ผ๊ณผ AOT๋ฅผ ์๊ตฌํ๊ณ ์๊ฐ ๋ญ๋น๋ฅผ ๋ง์ต๋๋ค. Microsoft
AOT๊ฐ ์๋ ๋จ์ผ ํ์ผ
๋๋ MS๊ฐ ๋ฃ๊ณ ์ถ์ง ์์ ๊ฒ ๊ฐ์์.
๋ฉ์ ์ ๋ ํญ์ ๋จ์ผ exe ์์ฒด ํฌํจ ๊ธฐ๋ฅ์ zip / unzip ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ๋
์ด๊ฒ์ด ๋ค์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋จ์ผ exe ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ!
์ด๋ฏธ ์์ถ๋์ด์๋ ๊ฒ์ฒ๋ผ ์ดํด๊ฐ ์ ์๋ฉ๋๋ค. ์๋๋ฉด ์ค๋ณต ์ข ์์ฑ์ ์ค์ฌ ์์ถํ๊ธฐ ์ ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
๋ถ์ ์ฑ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ๋น ๋ฅธ ํ ์คํธ ์ธ์๋ ์์ง ์ฌ์ฉํ์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋จ์ผ ์คํ ํ์ผ์ ์ฑ์ ํด๋ผ์ด์ธํธ์ ๋ฐฐํฌํ๋ ์ํฉ์ด๋ CLI ๋๊ตฌ๋ก ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ด ์ ์ฉํ๋ค๊ณ ์๊ฐํ๋ ๊ณณ์ ๋๋ค. ๊ทธ ์ธ์๋ Dev ๋๋ ๊ธฐํ ํ๊ฒฝ์์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ํ์๋์ง ์์ผ๋ฏ๋ก ๊ทธ๋ค์ด ํ ์ผ์ ํ์ฌ ์๋ฃจ์ ์ผ๋ก ์ ์๋ํฉ๋๋ค ..
๋ฟก๋ฟก
๋๋ MS๊ฐ ๋ฃ๊ณ ์ถ์ง ์์ ๊ฒ ๊ฐ์์.
๋ฐ๋๋ก ๊ด๋ จ ์ค๋ ๋์์ ๋ณผ ์์๋ ๊ด๋ฒ์ํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ฒญํ๊ณ ์์งํ๊ณ ์์ต๋๋ค. ๊ทํ์ ์๊ฒฌ์ ์ค์ํ์ง๋ง ์ปค๋ฎค๋ํฐ์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์๊ฒฌ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ค์ํ๋ฏ๋ก Microsoft์ ์๊ฒฌ์ ๋ค์๋ค๊ณ ์กฐ๋กฑํด์๋ ์๋ฉ๋๋ค.
๊ทํ์ ์ง์ ์ ๋ฐ๋ฅด๋ฉด Microsoft๋ก ์คํดํ์ ์ ์์ต๋๋ค. ์ ๋ Microsoft๋ฅผ ๋๋ณํ์ง ์๋ ์ปค๋ฎค๋ํฐ ํ์ ์ผ๋ฟ์ ๋๋ค.
๋ฉ์ ์ ๋ ํญ์ ๋จ์ผ exe ์์ฒด ํฌํจ ๊ธฐ๋ฅ์ zip / unzip ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ๋
์ด๊ฒ์ด ๋ค์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋จ์ผ exe ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ!์ด๋ฏธ ์์ถ๋์ด์๋ ๊ฒ์ฒ๋ผ ์ดํด๊ฐ ์ ์๋ฉ๋๋ค. ์๋๋ฉด ์ค๋ณต ์ข ์์ฑ์ ์ค์ฌ ์์ถํ๊ธฐ ์ ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
WebApi ๋๋ MVC ๋๋ ConsoleApp์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ HelloWorld! ๋ด ๋ป์ ์ ์๊ณ ์์ต๋๋ค.
์์ถ ํ์ผ์ด ๋๋ฌด ์ปค์ ๋๋ฌด ๋ง์ ์ฝ๋๋ฅผ ๊ฐ์ ธ ์ค์ง๋ง ์คํ๋์ง ์์ต๋๋ค.
IL-Merge ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋์ง ์๋ ์ฝ๋ ๋ถ๊ธฐ๋ฅผ ์ค์ด๋ฉด.
๋ค, ์ฝ์ HelloWorld๋ฅผํ๊ณ ๊ทธ๋ 68K
์์ฒด ํฌํจ๋์ง ์์ ๊ฒ์ 67K์์ต๋๋ค.
๊ทธ๋ฌ๋ C #์ ์ด์
๋ธ๋ฆฌ๊ฐ ์๋๋๋ค. <1K HelloWorld๋ฅผ ์ํ๋ค๋ฉด ์ C #์ ์ฌ์ฉํฉ๋๊น?
๋ ํฐ ์ฑ์ ํ๋ ์ ์ํฌ๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํ๋ฏ๋ก ํ ์์ ์์ ํ๋ ์ ์ํฌ๋ณด๋ค ๋ ๋ง์ ์ฌ์ฉ์ ์ง์ ์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ ๋ง๋ก ๋ช ์ญ๋ง์ ๋ํด ๊ฑฑ์ ํ๊ณ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ์ง ๋ง๊ณ ๋ชจ๋ ๊ฒ์ ์ฒ์๋ถํฐ ์์ฑํ๋ ๋ฐ ์๊ฐ์ ํฌ์ํ์ญ์์ค.
๋ด๊ฐ ์ฌ๊ธฐ์ ๋ฌด์์ ๋์น๊ณ ์์ต๋๊น?
๋ฉ์ ์ ๋ ํญ์ ๋จ์ผ exe ์์ฒด ํฌํจ ๊ธฐ๋ฅ์ zip / unzip ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ๋
์ด๊ฒ์ด ๋ค์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋จ์ผ exe ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ!
WebApi ๋๋ MVC ๋๋ ConsoleApp์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ HelloWorld! ๋ด ๋ป์ ์ ์๊ณ ์์ต๋๋ค.
์์ถ ํ์ผ์ด ๋๋ฌด ์ปค์ ๋๋ฌด ๋ง์ ์ฝ๋๋ฅผ ๊ฐ์ ธ ์ค์ง๋ง ์คํ๋์ง ์์ต๋๋ค.
IL-Merge ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋์ง ์๋ ์ฝ๋ ๋ถ๊ธฐ๋ฅผ ์ค์ด๋ฉด.
@sgf ์ฌ๊ธฐ์๋ ๋ค์ ๋ณ๊ฐ์ ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ฝ๋ ๊ฐ์๋ฅผ ์ํด ๋ช ๊ฐ์ง ์ถ๊ฐ ๊ธฐ์ ์ด ์์ต๋๋ค.
PublishTrimmed
์์ฑ)์ ํตํฉ๋์ด ์์ผ๋ฉฐ ILLinker์์ ๋ ๋ง์ ์ต์ ํ๊ฐ ๊ฐ๋ฐ ์ค์
๋๋ค.์ฑ์ ๋จ์ผ ํ์ผ๋ก ํจํค์งํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์
๋๊น?
dotnet publish๋ ๋จ์ผ ํ์ผ๋ก์ ๊ฒ์๋ฅผ ์ง์ํฉ๋๋ค. ๊ฒ์ ๋ ํ์ผ์ ์ฑ ํฌ๊ธฐ๋งํผ ์ปค์ง๋๋ค.
๋ค์ดํฐ๋ธ ์ฝ๋ ์์ฑ๊ณผ ๊ด๋ จํ์ฌ :
PublishReadyToRun
์์ฑ)๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋๋ค.๋ค, ์ฝ์ HelloWorld๋ฅผํ๊ณ ๊ทธ๋ 68K
์์ฒด ํฌํจ๋์ง ์์ ๊ฒ์ 67K์์ต๋๋ค.
๊ทธ๋ฌ๋ C #์ ์ด์ ๋ธ๋ฆฌ๊ฐ ์๋๋๋ค. <1K HelloWorld๋ฅผ ์ํ๋ค๋ฉด ์ C #์ ์ฌ์ฉํฉ๋๊น?
๋ ํฐ ์ฑ์ ํ๋ ์ ์ํฌ๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํ๋ฏ๋ก ํ ์์ ์์ ํ๋ ์ ์ํฌ๋ณด๋ค ๋ ๋ง์ ์ฌ์ฉ์ ์ง์ ์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ ๋ง๋ก ๋ช ์ญ๋ง์ ๋ํด ๊ฑฑ์ ํ๊ณ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ์ง ๋ง๊ณ ๋ชจ๋ ๊ฒ์ ์ฒ์๋ถํฐ ์์ฑํ๋ ๋ฐ ์๊ฐ์ ํฌ์ํ์ญ์์ค.
๋ด๊ฐ ์ฌ๊ธฐ์ ๋ฌด์์ ๋์น๊ณ ์์ต๋๊น?
UR img๊ฐ ๋ณด์ฌ์ค ๊ฒ์ฒ๋ผ ๋ฏธ์ํด, ์๊ธฐ contianed. Thats 68626KB, ์ฝ 68mb = 68KK, 68K๋ฟ๋ง ์๋๋ผ !!!
์ฐ๋ฆฌ๋ <1kb๊ฐ ํ์ํ์ง ์์ ๊ฒ์
๋๋ค (์๊ธฐ contianed ๋ถ๊ฐ๋ฅํฉ๋๋ค), <3000KB๋ ๊ด์ฐฎ์ต๋๋ค.
ํ์ง๋ง 68MB๋ 30 ๋ฐฐ ์ด์์
๋๋ค.
U๋ ํญ์ HelloWorld ํ๋ก๊ทธ๋จ์ ์์ฑํ์ง ์์ต๋๋ค !!!
์ฌ๊ณผ, ๋ฆ์ ๋ฐค์ K์์ ์ค์
์ถ๊ฐ ๋ ์ค๋ช
/ ์ ๋ณด swaroop-sridhar์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ด๊ฐ ์์ง ๋ชปํ๋ ์๋ก์ด ์ค์์น๊ฐ ์์ต๋๋ค.
๋ค์ ์ค์์น๋ฅผ ์ฌ์ฉํ์ฌ 3.preview 6์ผ๋ก ์๋ํ์ต๋๋ค.
dotnet publish -r RID / p : PublishTrimmed = true / p : PublishSingleFile = true
์ด์ 29,000K๊น์ง
๋ฌผ๋ก ๋ชจ๋ ์ฑ์ด Hello World๊ฐ๋๋ ๊ฒ์ ์๋์ง๋ง C # Core SelfContained App์ ๊ฒฝ์ฐ ๋ฐํ์๋ ํฌํจ๋ฉ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ๊ฑฑ์ ํ์ง ๋ง์ธ์. ๋ฌผ๋ก ์์ ์ฝ์ ๋๊ตฌ๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ 3K๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ๊ฒ์์ ์ดํดํฉ๋๋ค. ํ์ง๋ง ์ฐ์ C #์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์๋ค ์ ํฅ๋ฏธ๋ก์ด ํ ๋ก !
30mb LOL, 1 ~ 3MB๊ฐ ๋ ๋ ์ ํ ํด, ๋ฐํ์์ด ๋ถํ์ด ์ค๋ฅด๊ณ , GO๋ฅผ ํ์ธํ๊ณ , ์ฌ๋๋ค์ด ์จ์ด๋ธ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํฉ๋๋ค.
https://www.jetbrains.com/lp/devecosystem-2019/
kotlin์กฐ์ฐจ๋ ์ฃผ์์ ์ป๊ธฐ ์์ํ๊ณ kotlin ๋ค์ดํฐ๋ธ๋ก C #์ ๋ถ๋๋ฝ๊ฒ ๋ง๋ญ๋๋ค.
๊ทธ๋ฆฌ๊ณ Swift๋ Windows https://forums.swift.org/t/swift-win32-programming/20686์ ์ค๊ณ
๊ทธ๋์ ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ์ ์ :
30mb LOL, 1 ~ 3MB๊ฐ ๋ ๋ ์ ํ ํด, ๋ฐํ์์ด ๋ถํ์ด ์ค๋ฅด๊ณ , GO๋ฅผ ํ์ธํ๊ณ , ์ฌ๋๋ค์ด ์จ์ด๋ธ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํฉ๋๋ค.
https://www.jetbrains.com/lp/devecosystem-2019/
kotlin์กฐ์ฐจ๋ ์ฃผ์์ ์ป๊ธฐ ์์ํ๊ณ kotlin ๋ค์ดํฐ๋ธ๋ก C #์ ๋ถ๋๋ฝ๊ฒ ๋ง๋ญ๋๋ค.
๊ทธ๋ฆฌ๊ณ Swift๋ Windows https://forums.swift.org/t/swift-win32-programming/20686์ ์ค๊ณ
๊ทธ๋์ ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ์ ์ :
- ๋ฐ์ฌ ์ ๊ฑฐ ์ต์ ์ถ๊ฐ
- JIT ๋ฌผ๊ฑด์ ์ ๊ฑฐํ๋ ์ต์ ์ถ๊ฐ
- JIT์ ์์กดํ์ง ์๋๋ก C # ์ฝ๋ ์ต์ ํ ๊ฐ์
์ด๊ฑด ๋ถ๊ณตํํ๋ค๊ณ ์๊ฐํฉ๋๋ค. .NET์ ๊ฐ์ฅ ์์ ๋จ์ผ ํ์ผ ์ฝ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ๋๋ก ์ค๊ณ๋์ง ์์์ต๋๋ค. Asp.Net ์น ์ฌ์ดํธ ๋ฐ API์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ํ๋ ์ ์ํฌ ์์ฒด๋ ํฌํจ ํ ์์๋ ์๋ง์ ๋๊ฒ ํจํค์ง ์ธ์๋ ์๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐ๊ฐ 50 ๋๋ ์๋ฐฑ ๋ฉ๊ฐ ๋ฐ์ดํธ์ด๋ฉด ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์์ํ ์ ์์ต๋๋ค. ์ฃผ์ ๊ด์ฌ์ฌ๋ ์๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ฐ ์ฅ๊ธฐ์ ์ธ ์ ์ง ๊ด๋ฆฌ์ ๋๋ค. ๋๊ฐ ์๋ฒ์ ํฌ๊ธฐ๋ฅผ ์ ๊ฒฝ ์ฐ๋์ง.
์ ์ผํ ์๋๊ฐ ์์ ๋จ์ผ MB ํฌ๊ธฐ์ ์ฝ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๊ฒ์ด๋ผ๋ฉด ์์ ์ ์ ํฉํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋จ๊น์? ํ๋์ ํ์ผ์ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ํ๋ ์ ์ํฌ๊ฐ ํฌํจ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌ๊ธฐ๊ฐ "ํ๋ก ์ธ๊ณ"์์๋ ์์ญ ๋ฉ๊ฐ ๋ฐ์ดํธ๋ผ๊ณ ๋ถํํ๋ ๋์ , ์๋ฅผ ๋ค์ด Rust๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋จ๊น์?
๋ง์ดํฌ๋ก ์ํํธ๋ ์ฒ์๋ถํฐ .NET์ผ๋ก ํ๋ฅญํ ์ผ์ํ๊ณ ์์ผ๋ฉฐ ์ง๋ ๋ช ๋ ๋์ ๋ ๋ง์ ์ผ์ํ๊ณ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
๊ทธ๋ฐ ๋ฌด์์, ๊ฑฐ์ง๋ง, ํจ์จ์ฑ์ ๋ถ์กฑ์ ๋ํด ์ด๋ป๊ฒ ๋๋ตํด์ผํ ๊น์?
.net ํต์ฌ ๋ฐฉํฅ์ด ์ผ๋ง๋ ํ๋ ธ๋ ์ง ๊นจ๋ซ์ง ๋ชปํ๊ณ ์ต๊ทผ์์ผ Distribution / IL Merge / AOT ์์ ์ ํตํด์ด๋ฅผ ๊นจ๋ซ๊ธฐ ์์ํ์ต๋๋ค.
์ด์ ์น ์ด์ ๋ธ๋ฆฌ ๋ง์ฐจ๋ก ์ด๋ํ๋ ค๋ฉด .net ๋ฐํ์์ด ๋๋ฌด ์ปค์ ์ ์ ํ ํฌ๊ธฐ์ ํ์ผ์ ๋ฐฐํฌ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ์ ํ "์๋ฒ์ ํฌ๊ธฐ์ ๊ด์ฌ์ด์๋ ์ฌ๋"์ ์ง์ฐฉํ์ต๋๋ค. ์ด๋ฌํ ์ฌ๊ณ ๋ฐฉ์์ "ํ๋์ ์ด์ด์ผ ํจ".net ์ฝ์ด๋ฅผ ์ด๋ฏธ ์ค๋๋๊ณ ๊ด๋ จ์ฑ์ด์๋ ๊ธฐ์ ์คํ์ผ๋ก ๋ง๋ ์ด์ ์ ๋๋ค.
๋ง์ดํฌ๋ก ์ํํธ๋ .net์ ์ ์ฌ์ฉํ์ง ์๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ .net ํ๋ ์ ์ํฌ ํธํ์ฑ์ ์ํด ๋ ธ์ธ๋ค์ ๊ธฐ์๊ฒํ๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ์คํจํ์ต๋๋ค. ๊ทธ๊ฒ์ ๊ทธ๋ค์ ์ค์ ์ค ํ๋์์ต๋๋ค.
๋ด๊ฐ ๋ฌด๋กํ๊ฒ ๋ค๋ฆฌ๋ฉด ๋ฏธ์ํ์ง๋ง ๋๋ก๋ ๋ณ๊ฒฝํด์ผ ํ ํ์๊ฐ ์์ต๋๋ค
๋ฌด๋กํ๊ฒ ๋ค๋ฆฌ๋ฉด ๋ฏธ์ํ์ง๋ง
๋ฌด๋กํ๊ฒ ๋ค๋ฆฌ๋๊ตฐ์. ์ฆ, ๋น์ ์ ํด๊ณ ์ ์ฑ๊ธํ ๊ฒฐ๋ก ์ ์ค๋๋ ฅ์๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
์ฌ๊ณผ, ๋ฆ์ ๋ฐค์ K์์ ์ค์
์ถ๊ฐ ๋ ์ค๋ช / ์ ๋ณด swaroop-sridhar์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ด๊ฐ ์์ง ๋ชปํ๋ ์๋ก์ด ์ค์์น๊ฐ ์์ต๋๋ค.
๋ค์ ์ค์์น๋ฅผ ์ฌ์ฉํ์ฌ 3.preview 6์ผ๋ก ์๋ํ์ต๋๋ค.dotnet publish -r RID / p : PublishTrimmed = true / p : PublishSingleFile = true
์ด์ 29,000K๊น์ง๋ฌผ๋ก ๋ชจ๋ ์ฑ์ด Hello World๊ฐ๋๋ ๊ฒ์ ์๋์ง๋ง C # Core SelfContained App์ ๊ฒฝ์ฐ ๋ฐํ์๋ ํฌํจ๋ฉ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ๊ฑฑ์ ํ์ง ๋ง์ธ์. ๋ฌผ๋ก ์์ ์ฝ์ ๋๊ตฌ๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ 3K๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ๊ฒ์์ ์ดํดํฉ๋๋ค. ํ์ง๋ง ์ฐ์ C #์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์๋ค ์ ํฅ๋ฏธ๋ก์ด ํ ๋ก !
ํ๋ ์ธ์ด๋ก์ ์ธ๊ณ๋ฅผ ํต์ผํ๋ ค๋ ์ฝ๊ฐ์ ์ผ๋ง์ด ์์ด์ผํ์ง ์์ต๋๊น?
๋ชจ๋ ๊ฐ๋ฐ์๊ฐ C ++ ์ฉ C #์ ์ง์์ ์์ฑํ๊ธฐ๋ฅผ ์ํ์ญ๋๊น? ์๋๋ฉด Go, Kotlin, Swift๋ก ํธ์ ํ์๊ฒ ์ต๋๊น?
์์ฅ ์ ์ ์จ๊ณผ C #์ ๋ ์นจ์?
.Net์ ํฌ๋ก์ค ํ๋ซํผ์ ๊ตฌํํ์ง ์๊ธฐ ๋๋ฌธ์ ์ฒ์ 15 ๋
์ด์์ ํ๋ฅญํ ๊ฐ๋ฐ ๊ธฐํ๋ฅผ ๋์ณค์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด์ .net์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋์ ์์ต๋๋ค.
๋ค, ์ ์ ๋งํ๋ฏ์ด ์ ๋ถ์ ์ ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
.Net Core๋ Full Framework์์ ์จ๋ค๋ฉด ํ์์ ์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ .Net Standard + Core ํตํฉ ๋น์ ์ ํฉ๋ฆฌ์ ์ด๊ณ ์ง๋ณด์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
.NET์ GO ๋๋ ๋ค๋ฅธ ์ธ์ด / ํ๋ ์ ์ํฌ์ ๋น๊ตํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ด์จ๋ , ์ฑ๊ธ .exe์ ๋ํด ์์
ํ๊ณ ๊ฐ์ ํ๊ณ ์๋ ์๋ฃจ์
์ด ๋ช ๋
์ ์ ๋ด '์์ฒญ'์ ๊ฝค ์ ํด๊ฒฐํ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์์ด ์ฃผ์ ์ ๋ํด ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค Guys & Gals!
๋ฐ
์ด ๊ธ์ ๋ชจ๋ ์ฌ๋๋ค์๊ฒ ํ๋ ๊ฐ๋ น ์ ๋ํด ์๊ธฐ์ํค๊ณ ์ถ์ต๋๋ค.
๋์ํ์ง ์๊ฑฐ๋ ๋ค๋ฅธ ์๊ฒฌ์ ๊ฐ๋ ๊ฒ์ ๊ด์ฐฎ์ต๋๋ค.ํ์ง๋ง ์ ๋ฐ, ์์ ๋ฐ๋ฅด๊ฒ ๊ธฐ์ ์ ์ธ ๋
ผ์๋ก ํํํฉ์๋ค. ๊ฐํ ๋จ์ด๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
๋ํ, ์์ด๋์ด๋ฅผ ํ์ ์ผ๋กํ๊ณ , ๋น์ ์ ์๊ฒฌ์ผ๋ก ๊ตฌํํ๋ ๊ฒ์ ๊ณต์ ํ ๊ฒ์์
๋๋ค. ๊ทธ๋ฌ๋ ๋ค์์๋ ์ฌ๋๋ค์ ๊ณต๊ฒฉํ๋ ๊ฒ์ ์ฉ๋ฉ๋์ง ์์ต๋๋ค. ์๋ก๋ฅผ ์กด์คํ๊ณ ์๋ก ๋ค๋ฅธ ์๊ฒฌ์ ๋ฃ๊ณ ๊ฐํ ๋ฐ์ธ๊ณผ ๋ชจ์์ ์ธ ๋ฐ์ธ์ ์์ ํฉ์๋ค.
๋ํ ๋ชจ๋ ์ฌ๋์๊ฒ ๋ค๋ฅธ ๊ด์ ๊ณผ ์๊ฒฌ์ ์ด์ด๋ฌ๋ผ๊ณ ๋ถํํ๊ณ ์ถ์ต๋๋ค. ํ๋จ์ ๋ด๋ฆฌ๊ธฐ ์ ์ ์ผ๋ฐ์ ์ผ๋ก ์๋๋ฐฉ์ ๋ง์ ๋ฃ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ํฉ์ด ์ ๊ทธ๋ฐ์ง์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ์ข ์ข ์์ต๋๋ค. ์์ด๋์ด์ ์๋ฃจ์ ์ด ์ ๊ทธ๋ฐ์ง ์๋ค๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ ์์ฐ์ ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค!
๋ฉ์ ์ ๋ ํญ์ ๋จ์ผ exe ์์ฒด ํฌํจ ๊ธฐ๋ฅ์ zip / unzip ์๋ฃจ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ๋
์ด๊ฒ์ด ๋ค์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋จ์ผ exe ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ!
WebApi ๋๋ MVC ๋๋ ConsoleApp์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ HelloWorld! ๋ด ๋ป์ ์ ์๊ณ ์์ต๋๋ค.
์์ถ ํ์ผ์ด ๋๋ฌด ์ปค์ ๋๋ฌด ๋ง์ ์ฝ๋๋ฅผ ๊ฐ์ ธ ์ค์ง๋ง ์คํ๋์ง ์์ต๋๋ค.
IL-Merge ๋ฐฉ๋ฒ์ด ์ฌ์ฉ๋์ง ์๋ ์ฝ๋ ๋ถ๊ธฐ๋ฅผ ์ค์ด๋ฉด.@sgf ์ฌ๊ธฐ์๋ ๋ค์ ๋ณ๊ฐ์ ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
- ์ฑ์ ์ฝ๋๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
- ์ฑ์ ๋จ์ผ ํ์ผ๋ก ํจํค์งํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ฝ๋ ๊ฐ์๋ฅผ ์ํด ๋ช ๊ฐ์ง ์ถ๊ฐ ๊ธฐ์ ์ด ์์ต๋๋ค.
- IL ๋ณํฉ : ํ๋ก์ธ์ค์์ ์ด์ ๋ธ๋ฆฌ ID๋ฅผ ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ฑ์ ์ ์ฉ๋๋ ๊ฒ์ ์๋๋๋ค. ์ด๊ฒ์ ํ์ฌ ๋จ์ผ ์คํ ์์ ์ ๋ชฉํ๊ฐ ์๋๋๋ค.
- ๋ฏธ์ฌ์ฉ IL ํธ๋ฆฌ๋ฐ : ILLinker ๋ ๋ฏธ์ฌ์ฉ IL ํธ๋ฆฌ๋ฐ์ ๋ชฉํ๋กํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ dotnet SDK (
PublishTrimmed
์์ฑ)์ ํตํฉ๋์ด ์์ผ๋ฉฐ ILLinker์์ ๋ ๋ง์ ์ต์ ํ๊ฐ ๊ฐ๋ฐ ์ค์ ๋๋ค.- Zip / Unzip : dotnet publish๋ ํ์ฌ ๊ฒ์ ๋ ๋จ์ผ ํ์ผ์ ์์ถํ์ง ์์ง๋ง ์ํ ํ ์ ์์ต๋๋ค.
์ฑ์ ๋จ์ผ ํ์ผ๋ก ํจํค์งํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
dotnet publish๋ ๋จ์ผ ํ์ผ๋ก์ ๊ฒ์๋ฅผ ์ง์ํฉ๋๋ค. ๊ฒ์ ๋ ํ์ผ์ ์ฑ ํฌ๊ธฐ๋งํผ ์ปค์ง๋๋ค.๋ค์ดํฐ๋ธ ์ฝ๋ ์์ฑ๊ณผ ๊ด๋ จํ์ฌ :
- ํ์ฌ ๋ค์ดํฐ๋ธ ์ฝ๋ ์์ฑ ์ง์์ ์ฆ์ ์คํ ๊ฐ๋ฅํ ์ปดํ์ผ๋ฌ (
PublishReadyToRun
์์ฑ)๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋๋ค.- AOT ์ปดํ์ผ์ ํตํ ๊ฒ์๋ ํ๋ฅญํ์ง๋ง ( CoreRT ) ์์ง ์ฌ์ฉํ ์ ์์ต๋๋ค. AOT ์ปดํ์ผ์์๋ ์คํ ํ์ผ์ ํฌ๊ธฐ๋ ์ปดํ์ผ ์ต์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ : ์์ฑ ๋ ์ฝ๋๋ฅผ ์คํํ๊ธฐ์ํ jit๋ฅผ ํฌํจํฉ๋๊น?
ํ์์ ๋ฐ๋ผ ๊ธฐ๋ณธ DLL์ XXX.exe (UnManaged)์ ๊ฐ์ ์ด๋ฆ์ผ๋ก ๋์ ๋ณํฉํฉ๋๋ค.
nativeDLLs (UnManaged) Function-Level Linking ์ปดํ์ผ์ ์ ์ ๋ถ์์ ์ฌ์ฉํ์ฌ ๋ถ์ํฉ๋๋ค.
api-ms-win-core-console-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll
api-ms-win-core-debug-l1-1-0.dll
api-ms-win-core-errorhandling-l1-1-0.dll
api-ms-win-core-file-l1-1-0.dll
api-ms-win-core-file-l1-2-0.dll
api-ms-win-core-file-l2-1-0.dll
api-ms-win-core-handle-l1-1-0.dll
api-ms-win-core-heap-l1-1-0.dll
api-ms-win-core-interlocked-l1-1-0.dll
api-ms-win-core-libraryloader-l1-1-0.dll
api-ms-win-core-localization-l1-2-0.dll
api-ms-win-core-memory-l1-1-0.dll
api-ms-win-core-namedpipe-l1-1-0.dll
api-ms-win-core-processenvironment-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-0.dll
api-ms-win-core-processthreads-l1-1-1.dll
api-ms-win-core-profile-l1-1-0.dll
api-ms-win-core-rtlsupport-l1-1-0.dll
api-ms-win-core-string-l1-1-0.dll
api-ms-win-core-synch-l1-1-0.dll
api-ms-win-core-synch-l1-2-0.dll
api-ms-win-core-sysinfo-l1-1-0.dll
api-ms-win-core-timezone-l1-1-0.dll
api-ms-win-core-util-l1-1-0.dll
api-ms-win-crt-conio-l1-1-0.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-environment-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-multibyte-l1-1-0.dll
api-ms-win-crt-private-l1-1-0.dll
api-ms-win-crt-process-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
aspnetcorev2_inprocess.dll
clrcompression.dll
clretwrc.dll
clrjit.dll
coreclr.dll
dbgshim.dll
dotnet-aspnet-codegenerator-design.dll
hostfxr.dll
hostpolicy.dll
mscordaccore_amd64_amd64_4.6.27317.07.dll
mscordbi.dll
mscorrc.dll
mscorrc.debug.dll
sni.dll
sos.dll
sos_amd64_amd64_4.6.27317.07.dll
ucrtbase.dll
...etc...
์ข์ ์ผ์ํ๋ฉด ๊ฒฐ๊ณผ๋ ์๋ง๋ 2-3MB๊ฐ ๋ ๊ฒ์ ๋๋ค. ๋ฉ์ ์ ๊ฐ 7zip์ผ๋ก ๋ชจ๋ ํฌ์ฅํ๋ฉด ์ฝ 4.85mb๊ฐ ๊ฑธ๋ฆฝ๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ XXX.exe๋ฅผ ์ป์ต๋๋ค.
IL-merge๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฌํ ๊ธฐ๋ฅ ์์ค ๋งํฌ๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.
๊ด๋ฆฌ DLL์ ๊ฒฝ์ฐ ๋์ผํ ์ด์ ํธ๋ฆญ์ด ๋ค์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ๊ด๋ฆฌ DLL์ PE.exe ์น์
(.net ์น์
์ผ๋ก ํ์)์ผ๋ก ํฌํจํฉ๋๋ค.
๋ฐ์ฌ์ ๊ฒฝ์ฐ ๋ฐ์ฌ ์ ํ์ ๋ถ์ DLL์ ๋๋ค. ๋ฉํ ๋ฐ์ดํฐ์ ๋ฆฌํ๋ ์ ์ ํ (ํจ์ ํฌํจ) ๋ฐ ๋ชจ๋ ํธ๋ฆฌ ์์กด์ฑ์ ์ ์งํฉ๋๋ค.
์ฃ์กํฉ๋๋ค. ๋ ์ด์ ์ด์ ๋ํ ํ ๋ก ์ ๋ ์ด์ ์๊ฐ์ ํ ์ ํ์ง ์๊ณ ์๊ฒฌ์ด ํต์ผ ๋ ์ ์์ต๋๋ค.
์ฒ์์๋ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ, ๋๋ ์๋ง ๋ด ์๊ตฌ๋ฅผ (์๋ง๋ Dlang ์ด์ฉ๋ฉด ์ด์ฉ๋ฉด ์ฝ ํ๋ฆฐ ์ด์ฉ๋ฉด ๋์ ์ด๋ ๋๋ ์ด์ฉ๋ฉด ๋
น์ด ์ต๊ณ ์
๋๋ค) ์ํํ๊ธฐ ์ํด ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๊ณ ๋ คํด์ผํฉ๋๋ค.
๋์ ์ด์ผ๊ธฐ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์์๋ฆฌ๋ก ์ฃ์กํฉ๋๋ค. ๋ฐ
@sgf ๋๋ ๋น์ ์ด ์ข์ ์ง์ ์ํ๋ค๊ณ ์๊ฐํ๊ณ ๋๋ ๋น์ ์ด ์ฃผ์ ์ ์๋ช ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์์ฒญํ์ ๊ธฐ๋ฅ์ด ํฅํ ๋ช ๋ ๋์ .NET Core์ ์ ๊ณต ๋ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๊ณ ์์ต๋๋ค. ์ค์ ๋ก ์ค๋ ์์ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด ๋ชจ๋ ธ๋ฅผ ๋์์ผ๋กํ๋ฉด ๊ฐ๋ฅํ ์ ์์ต๋๋ค.
Mono๋ ์ด๋ฏธ Linking๊ณผ ํจ๊ป AOT ์ปดํ์ผ์ ์ง์ํ์ฌ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. ์ด๊ฒ์ด ๋ธ๋ผ์ฐ์ .net ๋ฐํ์ ๊ตฌํ์ ๋ชจ๋ ธ๊ฐ ์ ํ๋ ์ด์ ์ค ํ๋์ ๋๋ค. https://www.mono-project.com/docs/advanced/aot/ ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด Blazor ํ๋ก์ ํธ๊ฐ ๋ง์ปค๋ฅผ ๊ฐ์ง ์์๋ ์ด์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Microsoft๋ .NET ๋ฐํ์์ ํ๋์ "๋ชจ๋ ๊ฐ๋ ฅํ"๋ฐํ์์ผ๋ก ํตํฉํ๊ธฐ๋ฅผ ์ํ๋ค๊ณ ์ ์ธํ์ต๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ๋ชจ๋ ธ๋ฅผ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ .NET Core๋ฅผ ์ฌ์ฉํ๋ ๋์ ๋ชจ๋ ์๋๋ฆฌ์ค์์ ์ ๊ณต ํ ์์๋ ๋จ์ผ ๋ฐํ์์ ์ํฉ๋๋ค. ์ด ์ฌ์ค์ AOT ๋ฐ ์ฐ๊ฒฐ / ์ฝ๋ ์ ๊ฑฐ ๋ฑ์ ์ง์ํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ํฅํ ๋ช ๋ ๋์ .NET Core ๋ฐํ์์ด ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ป๊ฑฐ๋ Mono ๋ฐ .NET Core ๊ธฐ๋ฅ์ด ์๋ก์ด ๊ธฐ๋ฅ์ผ๋ก ํตํฉ ๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ์คํ ์๊ฐ.
๋ ์ ์๋ ์ฌ๋์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
+ 2 ยข
๋ฌธ์ ๋ ๋ง์ ์ ๋ณด์์ด ๊ฒฐ์ ์ด ๋ด๋ ค์ง๋ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค. ์์ฆ ๋ด๊ฐ ๋ณด๋ ๋ชจ๋ ๊ณณ์์ ์ฌ๋๋ค์ด ์ด๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌํ๋ ๋๋ค์์ ์ฌ๋๋ค์ ์์๋ฆฌ์คํธ ์์ ์ด๊ฒ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋ง์ ์ฌ๋๋ค ์ด ๋ ๋์ AOT / ๋ฐฐํฌ ๊ฐ๋ฅ์ฑ์ ๊ฐ์ง C #์์ ๋ค๋ฅธ ์ธ์ด๋ก ์ด๋ํ๊ณ ์์ต๋๋ค. ์ปค๋ฎค๋ํฐ์์ ํ๋ฐํ ํ๋ํ๋ค๋ฉด ๋งค์ฐ ๋ถ๋ช ํด์ง๋ ๊ฝค ํ์คํ ์ฌ์ค์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๊ฒฐ์ ์ ์ฌ์ํ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ๋ ์ด๊ฒ์ด ์ผ๋ง๋ ์ค์ํ์ง ์ ํํ ์์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ๊ทธ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ฌผ๋ก ์ ๋ ๋งค์ฐ ํธ๊ฒฌ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ๊ฐ ๊ฐ์ง ์ธ์์ ์ ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๊ณ MS๊ฐ ๊ฐ์น์๋์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ง ์๋ ๊ฒ ๊ฐ๊ณ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ธ์์ ๋จ๊น๋๋ค. ๊ทธ๋ค์ ์ ์ฒด์ ์ผ๋ก ๊ธฐ์ ์ ๋ฏธ๋์ ๋ํด ์ฐ๋ฆฌ๋ฅผ ํ์ ์ํค์ง ๋ชปํ๋ ์ผ๊ด๋ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์์ต๋๋ค.
@RUSshy์ ๋์ํฉ๋๋ค. CoreRT๋ ๋๋ผ์ด ํ๋ก์ ํธ์ด๋ฉฐ ํ์คํ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ฐ๊ณ ์์ง๋ง ์ ๋ฐ์ ์ผ๋ก ๋ชจ๋ ๋ ธ๋ ฅ์ด ์๋ฒ / ์น ๊ธฐ์ ์ ์ง์ค๋์ด์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐํ์, jits ๋ฐ ๋ํ ๋ฐ์ด๋๋ฆฌ์ ๊ฐ์ ๊ฒ๋ค์ด ๊ทธ ์ ์์ ์ค์ค๋ก๋ฅผ ๋งํฉ๋๋ค. ์ํํธ์จ์ด๋ฅผ ๋ฐฐํฌํ๋ ๋๊ตฌ๋ ๊ทธ๋ฐ ๊ฒ์ ์ํ์ง ์์ต๋๋ค.
์ผ๋ถ ์์ญ์์ ๋ฏธ๋์ ๋ํด ์จ์ ์ฌ์ง ์๊ณ ์์ง๋ง ๊ฐ์ธ์ ์ผ๋ก ์ฌ์ ํ ๊ธฐ์ ์ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๋งํฉ๋๋ค.
๋ด๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๊ธฐ๋ํ๋ ๊ฒ๊ณผ ๋ฐ๋๋ผ๋ ๊ฒ์ด ๋ฐํ ์ง๋๋ผ๋ ์์ผ๋ก ๋์๊ฐ๋ ๋ฐฉํฅ์ผ๋ก ์ปค๋ฎค๋ํฐ์ ๋ ๋ง์ ์ฐธ์ฌ๋ฅผ๋ณด๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ๊น์ง๋ ๊ทธ๊ฒ์ ๊ณ ๋ คํ์ง ์๊ณ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ฒ / ์น์ด ๋์ ๋ฒ๊ณ ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌํ๋ ์ฌ๋๋ค์ (์ ์ด๋ ์ด์ค ์ธก๋ฉด์์) ๋ฌด์ํ ์์๋ ์์ ์ธ ๊ฒ ๊ฐ์ง๋ง, ๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด ์ ์ด๋ ๊ทธ๊ฒ์ด ๊ทธ๋ค์ด ๊ทธ๋ค์ ๊ฒฐ์ ์ ๊ธฐ๋ฐ์ผ๋กํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์๊ณ ์ถ์ต๋๋ค. ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ต๋๋ค), ์ธ๋ถ์์ ๋ณด๋ฉด ๋์ ์ ๋์ง๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
@ Alan-FGR
๊ทธ๋ฌ๋ ์ง๊ธ๊น์ง๋ ๊ทธ๊ฒ์ ๊ณ ๋ คํ์ง ์๊ณ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ ๋ง์ ๊ฒ์ ์๊ณ ์ถ์ด์ ๊ณต์ ํ ๊ทธ๋ฌํ ๊ฒฐ์ ์ ๊ตฌ์ฒด์ ์ธ ์๊ฐ ์์ต๋๊น?
๋๋ MS๊ฐ ํ์ฌ์ dotnet ์ฝ์ด ๋ฐํ์์ ๋จ์ ์ ์ ์๊ณ ์๋ค๊ณ ์๊ฐํ๋ฉฐ, ์ด๊ฒ์ด ๊ทธ๋ค์ด ๋ฏธ๋์ ๋ชจ๋ ธ ๋ฐํ์๊ณผ ๊ธฐ๋ฅ ํจ๋ฆฌํฐ๋ฅผ ์ถ๊ตฌํ๋ ์ด์ ์ ๋๋ค.
.net core 3.0.0 ๋ฏธ๋ฆฌ๋ณด๊ธฐ 6์ ๋ฆด๋ฆฌ์ค ์ ๋ณด๋ฅผ ์ดํด๋ณด์ญ์์ค.
์ค๋ ์ฐ๋ฆฌ๋ .NET Core 3.0 Preview 6์ ๋ฐํํฉ๋๋ค. ์ฌ๊ธฐ์๋ ํฅ์๋ ์์์์ํ ์ด์ ๋ธ๋ฆฌ ์ปดํ์ผ, ๋ง์ปค ๋ฐ EventPipe ๊ฐ์ ์ ํตํด ํฌ๊ธฐ์ ๋ง๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํ๊ธฐ์ํ ์ ๋ฐ์ดํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ARM64์์ Alpine ์ฉ ์๋ก์ด Docker ์ด๋ฏธ์ง๋ ์ถ์ํ์ต๋๋ค.
ํน์ ์๋๋ฆฌ์ค์์ ์ ํ๋ฆฌ์ผ์ด์ ํฌ๊ธฐ๊ฐ ์ค์ํ๋ค๋ ๊ฒ์ ์ ์๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ํนํ Blazor๊ฐ ํผํฉ๋์ด ์์ต๋๋ค.
@ Alan-FGR ๋์, IIS๊ฐ ์ฝ 8 %์ ์์ฅ ์ ์ ์จ์ ๊ฐ์ง๊ณ ํ๋ฝํ๊ณ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์น ํฌ์ปค์ค๋ ๋ค์ ์ด์ํฉ๋๋ค. ASP.NET์ ๊ด๋ จ์ด ์์ผ๋ฉฐ C # ๋๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ๊ฐ์ ์ผ๋ก ์ธํด ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. C #์ ์ฝ์ ์ฑ, Windows ์๋น์ค, ๋ชจ๋ฐ์ผ ์ฑ ๋ฐ PC ๊ฒ์์์ ์ ์ง๋๊ณ ์์ต๋๋ค. ์ง์์ ์ธ ์กด์ฌ๋ Unity์ Xamarin ๋๋ถ์ ๋๋ค. C #์ ๊ฐ๋ฐํ๊ธฐ์ ์ ๋ง ์ฆ๊ฑฐ์ด ์ธ์ด์ด๊ธฐ ๋๋ฌธ์ ์ํ๊น์ด ์ผ์ ๋๋ค. ์ด๋ Microsoft๊ฐ Windows XP์ ์ต๊ณ ์์ค์ ๋จ๊ฒผ๋ค๊ณ ์ฌ์ ํ ์๊ฐํ๋ ์ค๋ Java ๊ฐ๋ฐ์๋ก๋ถํฐ ๋์ ํ๊ฐ๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
ํ์์ ๋ฐ๋ผ ๊ธฐ๋ณธ DLL์ XXX.exe (UnManaged)์ ๊ฐ์ ์ด๋ฆ์ผ๋ก ๋์ ๋ณํฉํฉ๋๋ค.
nativeDLLs (UnManaged) Function-Level Linking ์ปดํ์ผ์ ์ ์ ๋ถ์์ ์ฌ์ฉํ์ฌ ๋ถ์ํฉ๋๋ค.
๋์ ๋ณํฉ์ด ๋ฌด์์ ์๋ฏธํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ฅผ ํธ์คํธ์ ํจ๊ป ์ ์ ์ผ๋ก ์ฐ๊ฒฐํ ๊ณํ์ด ์์ต๋๋ค. ์ด ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
IL-merge๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฌํ ๊ธฐ๋ฅ ์์ค ๋งํฌ๋ฅผ ๊ฐ๋ฐํฉ๋๋ค.
๋ฐ์ฌ์ ๊ฒฝ์ฐ ๋ฐ์ฌ ์ ํ์ ๋ถ์ DLL์ ๋๋ค. ๋ฉํ ๋ฐ์ดํฐ์ ๋ฆฌํ๋ ์ ์ ํ (ํจ์ ํฌํจ) ๋ฐ ๋ชจ๋ ํธ๋ฆฌ ์์กด์ฑ์ ์ ์งํฉ๋๋ค.
์ด์ ๋ธ๋ฆฌ๋ฅผ ํ๋๋ก ๋ณํฉํ๊ณ ๋์ ๊ธฐ๋ฅ์ ์ง์ํ๋ ์ฌ์ด๋ ๋ฉํ ๋ฐ์ดํฐ ํ ์ด๋ธ์ ๊ฐ๋ ์ต์ ์ ๋ํด ๋ ผ์ํ์ต๋๋ค. ์๋นํ ํฌ๊ธฐ ์ ์ฝ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๋ก์ด ๋ฉํ ๋ฐ์ดํฐ ์ง์๊ณผ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋๋ฒ๊ฑฐ / ํ๋กํ์ผ ๋ฌ ๋ฑ์ ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ๊ตฌํ ๋น์ฉ์ด ์๋นํ ๋์ต๋๋ค.
๋ฐ์ด๋๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ช ๊ฐ์ง ๋ค๋ฅธ ์ต์ ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋จ์ผ ํ์ผ์ ํ์ผ๋ก ์ถ์ถํ์ง ์๊ณ ์ง์ ์คํํ ์์๋ ๊ฒฝ์ฐ ๊ฐ DLL์ ๋ํ ์๋ช / ์ธ์ฆ์๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค. ์ฑ ์ ์ฒด์ ์๋ช ํฉ๋๋ค. ์ด๊ฒ์ ๋๋๋ก ๋ช MB๋ฅผ ์ ์ฝ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ง๊ธ๊น์ง๋ ๊ทธ๊ฒ์ ๊ณ ๋ คํ์ง ์๊ณ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ ๋ง์ ๊ฒ์ ์๊ณ ์ถ์ด์ ๊ณต์ ํ ๊ทธ๋ฌํ ๊ฒฐ์ ์ ๊ตฌ์ฒด์ ์ธ ์๊ฐ ์์ต๋๊น?
๋๋ MS๊ฐ ํ์ฌ์ dotnet ์ฝ์ด ๋ฐํ์์ ๋จ์ ์ ์ ์๊ณ ์๋ค๊ณ ์๊ฐํ๋ฉฐ, ์ด๊ฒ์ด ๊ทธ๋ค์ด ๋ฏธ๋์ ๋ชจ๋ ธ ๋ฐํ์๊ณผ ๊ธฐ๋ฅ ํจ๋ฆฌํฐ๋ฅผ ์ถ๊ตฌํ๋ ์ด์ ์ ๋๋ค.
@dazinator ๋๋ MS๊ฐ Mono๊ฐ ์ด๋ค ๊ฒ์ ๋ํ ์ ์ ํ ํด๊ฒฐ์ฑ ์ด๋ผ๊ณ ์๊ฐํ๋ค๋ ์ฌ์ค์ด ๊ทธ๋ค์ด ์ค์ ๋ก ์ ํ์ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ Mono๋ฅผ ์ฌ์ฉํด ์๊ณ , ๊ธฐ์ ์ ์ค์ํ ๋ถ๋ถ์ด๊ณ .NET์ ๋์คํ๋ฅผ ํฌ๊ฒ ๋์์ง๋ง ํ์คํ ํ์ง์ด ๋ถ์กฑํ์ต๋๋ค. MS์์ ์ด๋ฌํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ์ฌ๋์ ํ๋ณด ์๋ฃ ์ค ์ผ๋ถ๋ฅผ ๋ณด์๊ณ ์ค์ ๋ก ๊ธฐ์ ์ ์ฌ์ฉํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ฉด CoreRT๋ ์ง๊ธ๊น์ง ๋๋ฅผ ์ํด ํฌ๊ฒ ๊ณผ๋ํ๊ฒ ์ ๊ณต ํ ๊ธฐ์ ์ ๋๋ค. ์ ์๊ฐ์๋ ๋ค๋ฅธ ์์ค์ ํ์ง์ด์ง๋ง ๋ ํ ์ดํ์ ํจ๊ป ์ฌ์ฉ๋๋ ๊ฒ์ผ๋ก ์์ฌ๋๋ ์ผ๋ถ ๊ธฐ์ ์ ์ ํธํ์ฌ MS์ ์ํด ๋ฌด์๋๊ณ ์์ต๋๋ค.
๋์ํฉ๋๋ค. IIS๊ฐ ์ฝ 8 %์ ์์ฅ ์ ์ ์จ์ ๊ฐ์ง๊ณ ํ๋ฝํ๊ณ ์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ์น ํฌ์ปค์ค๋ ๋ค์ ์ด์ํฉ๋๋ค. ASP.NET์ ๊ด๋ จ์ด ์์ผ๋ฉฐ C # ๋๋ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ๊ฐ์ ์ผ๋ก ์ธํด ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. C #์ ์ฝ์ ์ฑ, Windows ์๋น์ค, ๋ชจ๋ฐ์ผ ์ฑ ๋ฐ PC ๊ฒ์์์ ์ ์ง๋๊ณ ์์ต๋๋ค.
@kjkrum ๊ทธ๊ฒ ์์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์น์์ 8 %์ ์์ฅ ์ ์ ์จ์ ์ฌ์ ํ โโWindows ๋ฐ ๋ชจ๋ฐ์ผ ์ฑ๋ณด๋ค ํจ์ฌ ๋ ์ค์ํฉ๋๋ค. ์ข์ ์น ๊ธฐ์ ์ ์ต์ํ Windows ์๋ฒ ํ๋งค์ ๋์์ด๋๋ฏ๋ก ์ด์ ๋ํ ๊ด์ฌ์ ๋ถ๋ช ํ์ง๋ง ์ฌ๊ธฐ์ ๋๋ฌด ์ง์คํ๋ ๊ฒ๋ ๋งค์ฐ ์์ ์ ๋ต์ด๋ฉฐ ์ด๊ฒ์ด ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ์์ธ์ด๋ผ๊ณ ๋ฏฟ์ง ์์ต๋๋ค. MS๋ ๋ท๋ท ๊ธฐ๋ฐ๊ณผ ๋ง์ ์ ๋งํ ํ๋ก์ ํธ๊ฐ ์งํ๋๋ ๊ฐ์ด๋ฐ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ฐ๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์์ง๋ง ์ง๋ฐฐ์ ์ธ ๊ธฐ์ ์ ๊ฐ์ง ๊ธฐํ๋ฅผ ๋์น๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์ผํ์ด๋ฏ๋ก ์๋ง๋ ๋ฌด์๋ฏธํ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ํ๋ก์ ํธ์ C #์ ์ฌ์ฉํ๋ ๋ชจ๋ ์ฌ๋๋ค (์ฃผ๋ก ๊ฒ์ ๊ฐ๋ฐ์)์ ์์ ํ ํด๊ฒฐํ ์์๋ ํ๊ณ ๋๋ฌธ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ์ฎ๊ฒจ๊ฐ์ต๋๋ค. ๊ทธ๋ค์ Rust, D, Go ๋ฐ C ++๋ก ์ด๋ํ์ต๋๋ค. ์ ๋ ์ ๊ธฐ์ ์ผ๋ก C ++๋ฅผ ์ฌ์ฉํ๊ณ Rust๋ฅผ ๋ฐฐ์ฐ๊ณ ์์ง๋ง, ํ์ง์ด ์ข์ ์ ํ์ ๋ฐฐํฌํ๋ ๊ฒ์ด ํ๋ฐฉ์ ๊ณ ํต ์ค๋ฝ์ง๋ง ํจ์ฌ ๋ ๋ซ๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ๊ฐ์ธ ํ๋ก์ ํธ์ C #์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์ง์์ ์ธ ์กด์ฌ๋ Unity์ Xamarin ๋๋ถ์ ๋๋ค.
์, ๋ง์ ๊ธฐ์ ์ ๋ฌธ์ ๋๋ฌธ์ ์ถ๋ณต๊ณผ ์ ์ฃผ๊ฐ ๋ฌด์์
๋๊น? ์๋ฅผ ๋ค์ด Unity๋ ํํ์ด ๋งค์ฐ ์ข์ง ์์ง๋ง ์ด ์ข๊ฒ๋ .NET / C #์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ XNA๋ ์๋ฒฝํ์ง๋ ์์ง๋ง ์ฌ์ ํ ์ฌ์ฉ์์ ๊ฐ๋ฐ์ ์ฌ์ด์์ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ํฐ ๋ช
์ฑ์ ์ป๊ณ ์์ต๋๋ค.
์ค๋ .NET Core 3.0์ผ๋ก์ด ๋ ์ ๋ณด๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค! ๐
๋๋ ๊ทธ๊ฒ์ด ์ฌ๋๋ค์ด ์ํ๋ ๊ฒ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. 141mb exe ์ธ ๊ฐ๋จํ ๊ณ์ฐ๊ธฐ๋ก ๋๋๋ฉด ๊ธฐ๋ฅ์ ์คํจ์ ๋๋ค (๊ทธ๋ฆฌ๊ณ ์ค์ ๋น์ฉ์ 141mb * 2์ ๋๋ค.
๋ค, ํ์คํ ์ ๊ฐ ์ํ๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ ์์ฒด ํฌํจ ๋ฐฐํฌ๋ณด๋ค ์ฌ์ ํ ์์ต๋๋ค.
๋ณด๋ค ์ ๊ทน์ ์ธ ์ด์ ๋ธ๋ฆฌ ํธ๋ฆฌ๋ฐ๊ณผ ํธ๋ฆฌ ์์ดํน์ ํ์ํ์ง๋ง ์ด๊ฒ์ ๋งค์ฐ ์ ์ฉํ ์์์ ๋๋ค. ์ ์ง์ ๊ฐ์ ์ ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฅ ํ๋ช ํ ๋ฐฉ๋ฒ์ ๋๋ค.
์ค์ด๊ฒ ๋ค๊ฐ ์ํ๋๊ฑฐ์ผ? ์ํ๊น๊ฒ๋ ๋ถํผ ์ดํ์ด ์ธ๊ธฐ๊ฐ์๋ ์ค ๋ชฐ๋์ด์
๊ณ์ฐ๊ธฐ๋ JIT๋ ํ์์๊ณ Reflection๋ ํ์ํ์ง ์์ง๋ง ๊ทธ๊ฒ์ด ๋น์ ์ด ์ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฒ์๋ถํฐ ๋ด๊ฐ ํ๋ ธ๋ ๊ฒ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ์ ๊ทธ๋ง๋ฌ์ผํ๋ค
@RUSshy ๋ค๋ฅธ ์์ฒด ํฌํจ ๋ฐฐํฌ๋ณด๋ค ๋ ๋ถ
JIT์ ๋ฆฌํ๋ ์ ์ ์ ๊ฑฐํ๋ ๊ฒ์ ๋ชจ๋ ๊ฒ์ด ๋จ์ผ exe๋ก ์์ถ๋์๋์ง ์ฌ๋ถ์๋ ๋ณ๊ฐ์ ๋๋ค. ์ฆ, ๋จ์ผ exe์์ด JIT ๋ฐ ๋ฆฌํ๋ ์ ์ ์ ๊ฑฐ ํ ์ ์์ผ๋ฉฐ JIT ๋ฐ ๋ฆฌํ๋ ์ ์ ์ ๊ฑฐํ์ง ์๊ณ ๋ ๋จ์ผ exe๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ทธ๋ค์ ๋ณ๋์ ์ํ์ ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์ฌ๋๋ค์ด ์ํ๋ ๊ฒ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. 141mb exe ์ธ ๊ฐ๋จํ ๊ณ์ฐ๊ธฐ๋ก ๋๋๋ฉด ๊ธฐ๋ฅ์ ์คํจ์ ๋๋ค (๊ทธ๋ฆฌ๊ณ ์ค์ ๋น์ฉ์ 141mb * 2์ ๋๋ค.
C : Users [YourUserName] AppDataLocalTemp.net์ ํ์ผ ์์ถ์ ํ๋ ๋ค.
๋จ์ผ exe๊ฐ ํ๋ฆด ์์น๋ฅผ ์ฌ์ ์ํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
์ฌ์ฉ์์๊ฒ ์ฐ๊ธฐ ๊ถํ์ด์๋ / var / ....๋ก ์ถ์ถํ๋ ค๊ณ ํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
@eiva ์ด๋ค OS
https://github.com/dotnet/core-setup/issues/7940 ํธ๋์ด์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
๊ทธ ๋์ DOTNET_BUNDLE_EXTRACT_BASE_DIR
ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ฌ ๋ฒ๋ค ํ์ผ์ด ์ถ์ถ๋๋ ์์น๋ฅผ ์ ์ด ํ ์ ์์ต๋๋ค.
@ swaroop-sridhar ๋ต์ฅ์ ๋ณด๋ด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค!
"์ ํ๋"์๋น์ค ๊ณ์ ์์ ์ฑ์ ์คํํ๋ centos.7์
๋๋ค.
@ jnm2 C #์ ์ฌ๋ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ํ์ง๋ง ์์งํ ๋งํด์ ๊ณ์ฐ๊ธฐ๊ฐ 128 ๋ฉ๊ฐ ๋ฐ์ดํธ๋ผ๋ ๊ฒ์ ๊ด๊ธฐ์ ๋๋ค.
@TechnikEmpire "I love C #"์ด ์์์ ๋งํ ๋ด์ฉ์ ์๋นํ ์ง์ค์ ์ผ๋ก ์ค์ฌ ์ค๋ค๋ ์ ์ ์ง์ ํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค .D
๋ด ์์ ์ ์ฝ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ฐธ์กฐ ๋ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ .NET ์์ฒด๋ฅผ ํธ๋ฆฌ ์์ดํน ํ ์์์ ๋๊น์ง๋ ๊ฐ์ธ์ ์ผ๋ก ์์ ํ ๋ง์กฑํ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ๋ค๊ณ ํด์ ๋จ์ผ ์คํ ๊ธฐ๋ฅ์ด ์ค๋๋ ๋์๊ฒ ๋ ๊ฐ์น๊ฐ์๋ ๊ฒ์ ์๋๋๋ค. ๊ทธ๊ฒ์ ํ ์ฐจ์์ ๋ฐ๋ผ๊ฐ๋ ๋จ๊ณ์ ๋๋ค. ๋๋ฌด๋ฅผ ํ๋๋ ๊ฒ์ ๋ ๋ฆฝ์ ์ธ ์ฐจ์์ด๊ณ ์ ๊ฐ ๋ฐ๋ผ๋ ๊ฒ์ ๋ง์ ๊ด์ฌ์ ๋ฐ๊ณ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ๋์ฐํ ์ผ์ ๋๋ค. ์ ์ด๊ฒ์ด ๋์์ธ ํ๋ก์ธ์ค ์ค์ ์น์ธ๋์๋์ง ๊ถ๊ธํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ํด๋ผ์ด์ธํธ ์ค ํ ๋ช ์๊ฒ ๋ฐฐํฌํ๊ณ ์ถ๊ณ , ๋ฌด์์ ์ด์ด์ผํ ์ง ๊ทธ์๊ฒ ํ์ด์ ๋น๋๋ค.
์ด๊ฒ์ ๋จ์ง ์ถ์ ํ๊ณ ์์ ํ ์๋ง์ ๋๋ค.
์คํ ์๊ฐ/
MyProgram.exe
MyLib.dll
์ด๊ฒ์ ๋ ๋์ ์๊ฐ์ด์์ ๊ฒ์ ๋๋ค
Java๋ ๋ ์ ์ฒ๋ฆฌํฉ๋๋ค.