rkttu
1
๋ท๋ท 10 ํ๋ฆฌ๋ทฐ 6๊ฐ ์ถ์๋์์ต๋๋ค. ๋ช ๊ฐ์ง ํน์ง ์ ์ธ ๊ฒ์ ์ง์ด๋ณด๋ฉด ๋ค์์ด ๋์ ๋๋๋ค.
7๊ฐ์ ์ข์์
dnx
๋ผ๊ณ ํ๋๊น ์๊ฐ๋๋๊ฒ ์์ฃผ ์ค๋ ์ (?) ASP.NET 5์ ๋ฐํ์ ๋ช
๋ น์ด๊ฐ dnx์์ฃ . ์ ๋ ๊ทธ๋์ ๊ธฐ์ต์ด ์๊ธด ํฉ๋๋ค๋ง์.
1๊ฐ์ ์ข์์
BOBx5
3
์์ ๋ด์ฑ ์ํธํ๋ผ๋โฆ ๋ฌด์ญ๋ค์
1๊ฐ์ ์ข์์
ํน์ ์ฐธ์กฐํ๋ #:package
ํน์ #:project
๊ฐ SourceGenerator
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ๊ฒฝ์ฐ ์ด๋ค์์ผ๋ก ์ฒ๋ฆฌ๋๋์ง? ์ด๋ป๊ฒ ํ๊ธฐํด์ผํ๋์ง? ์ ๋ํ ๋ด์ฉ ์์๊น์?
NativeAot
๊ฐ ๋ํดํธ๋ก ๋ฐฐํฌ๋๊ฒํ ์
์ด๋ผ๋ฉด ์์ค์์ฑ๊ธฐ๋ํ ์คํ์์ ์ด๊ฒ ๋ ํ
๋ฐ ์ด์๋ผ๋๊ฐ ์๋ฌด๋ฐ ์ธ๊ธ๋ ์ฐพ์๋ณผ์๊ฐ ์๋ค์โฆ devblog๋ต๋ณ๋๊ธฐ์ค
1๊ฐ์ ์ข์์
rkttu
5
๋ฆด๋ฆฌ์ฆ ๋
ธํธ์ ์ธ๊ธ๋ ์ฝ๋๋ณด๋ค ์ข ๋ ๊ฐ์ํ๋ ํํ๋ก ์คํฌ๋ฆฝํธ ํ์ผ์ ํน์ฑ์ ์ด๋ ค๋ณธ ์ฝ๋๋ฅผ ๊ณต์ ํฉ๋๋ค. ๋จ ์ด ๋ฐฉ๋ฒ์ ๊ฒฝ์ฐ, CallerFilePathAttribute๋ฅผ ์ฐ๊ธฐ ๋๋ฌธ์ ํ์ผ ๊ฒฝ๋ก๊ฐ ํ๋์ฝ๋ฉ๋๋ ๋ฌธ์ ๊ฐ ์์ด ๋
๋ฆฝ์ ์ธ ๋ฐ์ด๋๋ฆฌ๋ก ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ์๋ Environment.CurrentDirectory ๋ฑ์ ์์ฑ์ผ๋ก ๋์ฒดํด์ผ ํ๋ ํ๊ณ๊ฐ ์์ต๋๋ค.
#!/usr/bin/env dotnet
await Console.Out.WriteLineAsync($"Hello, World! from {GetFilePath()}, {GetDirectoryPath()}");
// ์๋ ์คํฌ๋ฆฝํธ๋ File-based App์ผ๋ก ์คํํ ๋์๋ง ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํฉ๋๋ค.
#pragma warning disable 8321
static string GetFilePath([System.Runtime.CompilerServices.CallerFilePath] string s = "") => s;
static string? GetDirectoryPath() => Path.GetDirectoryName(GetFilePath());
#pragma warning restore 8321
๊ทธ๋ฆฌ๊ณ .cs
ํ์ฅ์๋ฅผ ์๋ถ์ฌ๋ ์ผ๋ฐ ์
ธ ์คํฌ๋ฆฝํธ์ฒ๋ผ ์ธ ์ ์๋๊ฑด ํฐ ๋งค๋ ฅ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ใ
ใ
๋ค๋ง ์ผ๋ฐ ์
ธ ์คํฌ๋ฆฝํธ๋ ๋ค๋ฅด๊ฒ ๋น๋ ๊ณผ์ ์ด ํ๋ฉด์ ์ต์ด ํ ๋ฒ์ ๋ํ๋๊ณ , ํ์ผ ์ด๋ฆ์ด๋ ๊ฒฝ๋ก๊ฐ ๋ฐ๋ ๋๋ง๋ค ๋ค์ ๋น๋๊ฐ ์ผ์ด๋๋ ๋ถ๋ถ์ ๋ช
ํํ ํ๊ณ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค. (File-based App ์์ฒด๋ DLR ๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ๊ฐ ์๋๋ฏ๋ก)
1๊ฐ์ ์ข์์