์ด์ C# 9.0์ Top-level statements ๋ก ์ธํด ํ์ค์ง๋ฆฌ C# ์ฝ๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
System.Console.WriteLine("Hello C# TLS!");
์ด์ C# 9.0์ Top-level statements ๋ก ์ธํด ํ์ค์ง๋ฆฌ C# ์ฝ๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
System.Console.WriteLine("Hello C# TLS!");
์ค๋ ์ ๊ทน์ ์ผ๋ก TLS๋ก ํ
์คํธ ์ฝ๋๋ฅผ ์ง๋ดค๋๋ฐ, ๋๋ ๋์์ง ์๋ค์. ๊ทธ๋ฐ๋ฐ,
์ ๋ ํ
์คํธ ์ฝ๋ ์งค ๋ ์ผ๋ด ์ง๊ณ ์ดํ์ static ๋ฉ์๋๋ก ๋ฆฌํฉํ ๋ง์ ํ๋๋ฐ, TLS์ธ ๊ฒฝ์ฐ ์์ง ๋ฆฌํฉํ ๋ง(CTRL+.)์ด ๋จน์ง๋ฅผ ์์ต๋๋ค. (Visual Studio 2019 16.9.0 Preview 1.0 ๊ธฐ์ค)
Main ๋ฉ์๋ ์ธ์๋ ์ฌ์ ํ args๋ก ์ ๊ทผ์ด ๋ฉ๋๋ค.
Top-level statements๊ฐ ๋ญ ๋๋จํ๊ฒ ์๋๋ผ๊ณ ์๊ฐํ ์ ์๊ฒ ์ง๋ง, ์ธ์ด๋ฅผ ์ฒ์ ๋ฐฐ์ฐ๋ ์ ์ฅ์์ ๋ฐฐ์ฐ์ง๋ ์์ using, namespace, class, method๋ฅผ ๋ง์ฃผํ๋ฉด์ ์ด๋ ต๋ค๊ณ ๋๋ ๊ทธ ์๊ฐ์ด ์ธ์ด์ ์ฒซ ๋ง๋จ์ ์ด์ ์๋๋ผ๋๊ฒ ์ ๋ ์๋นํ ๊ณ ๋ฌด์ ์ธ ๋ณํ๋ผ๊ณ ์๊ฐํฉ๋๋ค ^^;
์ด์ REPL ์ธํฐํ๋ฆฌํฐ๋ง ๋ค์ด๊ฐ๋ฉด ๋ฑ ์ข๊ฒ ๋ค๋ ์๊ฐ์ด ๋๋ค์. Java์ฒ๋ผ์. ใ ใ
C#์ ๋ฐ์ ๋ฐฉํฅ์ฑ์ด function language์ ์ฅ์ ์ ์ฐจ์ฉํ๊ณ python๊ณผ ๊ฐ์ด ๋ฌธ์ ํด๊ฒฐ์๋ง ์ง์คํ๋๋ก ํ๋ ๊ธฐ๋ฅ๋ค์ด ์ถ๊ฐ๋๋ ๊ฒ์ผ๋ก ๋ณด์ REPL๋ ์กฐ๋ง๊ฐ ํฌํจ๋์ง ์์๊น ํฉ๋๋ค
(๊ธฐ๋ฅ์ ์ผ๋ก๋ ์ฝ๊ฒ REPL์ ๊ตฌํํ ์์๋๋ก ์ด๋ฏธ ์ค๋น๋๊ฒ์ผ๋ก ๋ณด์ฌ์ง๋๊น์)
REPL์ ํธ๋ฆฌํจ ์ ๋๊ฐ ๋ค๋ฅด๊ฒ ์ง๋ง, ์ด๋ฏธ csi.exe๊ฐ ์๊ธด ํด์ ๋ค์๊ณผ ๊ฐ์ ์์ผ๋ก ์์ฑํ ์๋ ์์ต๋๋ค.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise>csi
Microsoft (R) Visual C# Interactive Compiler version 3.8.0-5.20519.18 ()
Copyright (C) Microsoft Corporation. All rights reserved.
Type โ#helpโ for more information.
> Console.WriteLine(โTESTโ)
TEST
> int i = 5;
> Console.WriteLine(i)
5
๋จ์ง, ํจ์๋ฅผ ํ์ฉํ๋ ํ์ด์ฌ๊ณผ๋ ๋ฌ๋ฆฌ ์๋ ํ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฌถ์ธ ๋ท๋ท์ด๋ผ์ ๊ฐ๋จํ print ์กฐ์ฐจ๋ ํ์ดํ์ด ๊ธธ์ด์ง๋ ๋ฌธ์ ๊ฐ ์์ง ๋จ์ต๋๋ค. (์์ฃผ ์ฌ์ฉํ๋ ๋ถ๋ถ์ ํน๋ณํ interactive ํ๊ฒฝ๋ง์ ์ํด alias ์ฒ๋ฆฌ๋ฅผ ํด๋ ๋๊ฒ ์ง๋งโฆ ๊ธ์์โฆ ^^)
MS์์๋ REPL ํด์ ์ ๊ณตํ๊ฒ ์์๊ตฐ์. ์ ๋ ์คํ ์์ค ํ๋ก์ ํธ์ด์ง๋ง dotnet-script๊ฐ ๊ณต์ ํด๋ก ํธ์ ๋๋ค๋ฉด ์ข๊ฒ ๋ค๊ณ ์๊ฐํ์์ด์.
csi.exe๋ฅผ c# REPL ํด ์ด๋ผ๊ณ ํ๋ค์.
@rkttu TLS๊ฐ pyhton์ ์ง์, ์๋ฅผ๋ค์ด ๊ฐ์ข
์ฐ๊ตฌ์๋๋ ํ๊ต์์ ์ฌ์ฉํ๋ ์ฃผํผํฐ๋
ธํธ๋ถ์์ C#์ ๋๋ฑํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํจ๊ณผ ๊ด๋ จ์ฑ ์์ง ์์๊น ์๊ฐํ๋๋ฐ ๊ด๋ จ ์ฃผ์ ๋ก ๋ฐํํ์๋ ๊ฒ ๊ฐ์ ์ ๊ธฐํ๊ณ ๋ฐ๊ฐ์ ์ต๋๋ค.
TLS์ ๋ก์ปฌ ๋ฉ์๋๋ก ๋น์ทํ ๋๋์ผ๋ก ์ฃผํผํฐ๋
ธํธ๋ถ์์ ํ์ฉ๊ฐ๋ฅํ์ง ์์๊น ์์ํด๋ด
๋๋ค. ๊ธฐ๋ ๋ฉ๋๋ค ^^
๊ทธ๊ฒ์ ๊ฐ๋ ฅํ ์๊ทธ๋์ python๋ง๋ ๋ถ์ด MS์ ํฉ๋ฅ ํ๋ค๋ ๊ฒ
C#์ด ์ ์ ํ๊ฒ python์ ์ฃผํผํฐ ๋ ธํธ๋ถ ๋ฑ์์ ์ ํ์ฉ๋๋ ค๋ฉด ์๋ง๋ ๋ค์ํ alias๊ฐ ํ์ํ ๊ฑฐ๋ผ ๋ด ๋๋ค. ๋จ์ ์ธ ์๋ก, Cosnole.WriteLine์ ์ฌ์ค python์ print์ ๋น๊ตํด ๋๋ฌด verboseํ ๋๋์ด ์์ผ๋๊น์. (์ด๋ ๊ฒ ๋์ฒด๋ก python์ ๋นํด C#์ ํ์ดํ์ด ๋๋ฌด ๋ง๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.)
ํ์ง๋ง, alias๋ก ๋์ฒดํ๋ ๊ฒ๋ ํ๊ณ๊ฐ ์์ผ๋ฏ๋ก ์ ๋๋ก ํ๋ค๋ฉด, typescript๊ฐ javascipt๋ก ๋ฒ์ญํ๋ฏ์ด C#์ ๋ํด์๋ typescript์ฒ๋ผ ๊ฐ์ธ์ฃผ๋ ์ธ์ด๊ฐ ๋์ค๋๊ฐโฆ ํ๋ ์์ด์ด์ผ ํ ๊ฒ์ ๋๋ค.
alias๋ณด๋ค๋ ํ์ฅ ๋ฉ์๋๋ก python๊ณผ ์ ์ฌํ ํ๊ฒฝ์ ๋ง๋ค์ง์์๊น ์๊ฐํด๋ด ๋๋ค
์ด ๊ธฐ๋ฅ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฉ๋ ์ค ํ๋๋ ๊ต์ก ์๋ฃ๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ด๊ธ C# ๊ฐ๋ฐ์๊ฐ 1~2์ค์ ์ฝ๋๋ก ์ ์ โHello World!โ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ถ๊ฐ ๊ณต์ ์ ์ฐจ๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ จ๋ ๊ฐ๋ฐ์๋ ์ด ๊ธฐ๋ฅ์ ๋ค์ํ ์ฉ๋๋ฅผ ๋ฐ๊ฒฌํ๊ฒ ๋ฉ๋๋ค. ์ต์์ ์์ค ๋ฌธ์ ํตํด Jupyter Notebook์์ ์ ๊ณตํ๋ ๊ฒ๊ณผ ๋น์ทํ ์คํฌ๋ฆฝํธ ์ ์ฌ ํ๊ฒฝ์ ์คํ์ฉ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ต์์ ์์ค ๋ฌธ์ ์์ ์ฝ์ ํ๋ก๊ทธ๋จ ๋ฐ ์ ํธ๋ฆฌํฐ์ ์ ํฉํฉ๋๋ค. Azure Functions๋ ์ต์์ ๋ฌธ์ ์ด์์ ์ธ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ค.
TLS๋ฅผ SmallSharp๊ณผ ํจ๊ป ์ฐ๋ฉด, ๊ฐ์ ๊ฐ์ ๋ฐ์์ ์์ ํ๋ก์ ํธ ์ฌ๋ฌ ๊ฐ ๋ง๋ค ํ์๊ฐ ์์ ๋ฏํฉ๋๋ค. ^^