Csharp 9

[C#] ASP.NET 4.0 WebForms Global.asax ํŒŒ์ผ

Visual Studio 2019 ์—์„œ ์ƒ์„ฑํ•œ ASP.NET Web Form ์‚ฌ์ดํŠธ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ASP.NET 4.0 WebForms ํ”„๋กœ์ ํŠธ Global.asax ํŒŒ์ผ์„ ๋ถ„์„ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๐Ÿ“‚ ๋ชฉ์ฐจ Global.asax ์ฝ”๋“œ ๋ถ„์„ASP.NET WebForms์—์„œ Global.asax๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•˜๋Š” ํ•ต์‹ฌํŒŒ์ผ์ž…๋‹ˆ๋‹ค.์ด ํŒŒ์ผ์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘, ์ข…๋ฃŒ, ์—๋Ÿฌ ์ฒ˜๋ฆฌ, ์„ธ์…˜ ์‹œ์ž‘/์ข…๋ฃŒ ๋“ฑ์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1.  Application_Start() → ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘๋  ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ void Application_Start(object sender, EventArgs e) { // ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์ž‘ ์‹œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ..

C# 2025.02.28

[C#] ASP.NET์˜ TCP ์—ฐ๊ฒฐ ์„ค์ •

ASP.NET์—์„œ TCP ์—ฐ๊ฒฐ์€ ์ฃผ๋กœ TcpClient ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“‚ ๋ชฉ์ฐจ  TCP ์—ฐ๊ฒฐ ์„ค์ • ๊ณผ์ •TCP ์—ฐ๊ฒฐ ์„ค์ •์€ 3-way handshake๋กœ ์•Œ๋ ค์ง„ ๊ณผ์ •์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ๋…ผ๋ฆฌ์ ์ธ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹ ์„ ์‹œ์ž‘ํ•˜๋Š” ์ค€๋น„ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. TCP ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๊ธฐ๋ณธ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์š”์ฒญ(SYN)ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— TCP ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.์ด ๋ฉ”์‹œ์ง€๋Š” SYN ํ”Œ๋ž˜๊ทธ๊ฐ€ ํฌํ•จ๋œ ํŒจํ‚ท์ž…๋‹ˆ๋‹ค.์„œ๋ฒ„๊ฐ€ ์š”์ฒญ ์Šน์ธ(SYN-ACK)์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๋ฉฐ SYN-ACK ํŒจํ‚ท์œผ๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.์ด๋Š” ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด..

C# 2025.02.17

[C#] ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ ๋ฐ ์ข…๋ฃŒ ๋ฐฉ๋ฒ•

C#์—์„œ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ค‘์š”ํ•œ ๋„๊ตฌ์ด๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์•Œ์•„๋ณธ๋‹ค. ๋˜ํ•œ ์Šค๋ ˆ๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ์ข…๋ฃŒ๋˜๋„๋ก ํ•˜๋Š” ์ตœ์„ ์˜ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ์‚ดํŽด๋ณด์ž.  ์Šค๋ ˆ๋“œ ์ƒ์„ฑํ•˜๊ธฐThread ํด๋ž˜์Šค๋Š” System.Threading ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์ œ๊ณต๋˜๋Š” ํด๋ž˜์Šค๋กœ, ์Šค๋ ˆ๋“œ์˜ ์ƒ์„ฑ, ์ข…๋ฃŒ, ๋ฐ ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.์ด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๋Š” ์ž‘์—…์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.์Šค๋ ˆ๋“œ ์ƒ์„ฑ: ์ƒˆ๋กœ์šด ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋˜๋Š” ์ž‘์—…์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.์Šค๋ ˆ๋“œ ์ข…๋ฃŒ: ์Šค๋ ˆ๋“œ๊ฐ€ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๊ฑฐ๋‚˜ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ ์Šค๋ ˆ๋“œ๋ฅผ ์ข…..

C# 2024.06.03

[C#] ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ๊ฐœ๋… - Main ์Šค๋ ˆ๋“œ ์ •๋ณด ์ถœ๋ ฅํ•˜๊ธฐ

์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๋‹จ์œ„๋กœ, ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด CPU ์‚ฌ์šฉ๋ฅ ์„ ๋†’์ด๊ณ , ์‘๋‹ต์„ฑ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์Šค๋ ˆ๋“œ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ๋™๊ธฐํ™” ๋ฌธ์ œ๋‚˜ ๊ต์ฐฉ ์ƒํƒœ(deadlock) ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ ํ• ์ˆ˜ ์žˆ๋‹ค. C#์—์„œ์˜ ์Šค๋ ˆ๋“œ์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.  ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ์™€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค๋ž€?ํ”„๋กœ์„ธ์Šค์˜ ์ •์˜: ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์‹คํ–‰๋˜๋„๋ก ์˜ฌ๋ ค์ง€๋Š” ๊ฒƒ์ด ํ”„๋กœ์„ธ์Šค์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์›Œํฌ์ธํŠธ๋‚˜ ์œˆ๋„์šฐ ๋ฏธ๋””์–ด ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค. ์ž‘์—… ๊ด€๋ฆฌ์ž: ์ž‘์—…๊ด€๋ฆฌ์ž(Task Manager)์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณผ์ˆ˜ ์žˆ๋‹ค.๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์Šค: ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค..

C# 2024.06.02

[C#] ๊ทธ๋ž˜ํ”ฝ GDI+ ๊ฐœ๋…๊ณผ ๊ฐ„๋‹จํ•œ ๋„ํ˜• ๊ทธ๋ฆฌ๊ธฐ

GDI ๋ž€?GDI(Graphical Device Interface)๋Š” ์šด์˜์ฒด์ œ์—์„œ ๊ทธ๋ž˜ํ”ฝ ์ถœ๋ ฅ์„ ์œ„ํ•ด ๊ทธ๋ž˜ํ”ฝ ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ์–ดํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. ๊ฐ ๋ฒค๋”๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ๋ž˜ํ”ฝ ๋””๋ฐ”์ด์Šค์— ๋…๋ฆฝ์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ•„์š”ํ•˜๋‹ค. GDI๋Š” ์ด๋Ÿฌํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ, ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ์—์„œ๋Š” gdi.dll ํ˜•ํƒœ๋กœ ์ œ๊ณต๋œ๋‹ค. 1. ๋™์ž‘๋ฐฉ์‹ํ”„๋กœ๊ทธ๋žจ์ด ๊ทธ๋ž˜ํ”ฝ ์ถœ๋ ฅ์„ ์š”์ฒญํ•  ๋•Œ์˜ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:  2. ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„๋ž€?๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„๋Š” OS ์ƒ์—์„œ ์—ฌ๋Ÿฌ ์žฅ์น˜๋ฅผ ์ œ์–ดํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ทธ๋ž˜ํ”ฝ, ์‚ฌ์šด๋“œ ๋“ฑ ๋‹ค์–‘ํ•œ ์žฅ์น˜๊ฐ€ ์žˆ๊ณ , ๊ฐ ์ œ์กฐ์‚ฌ๋งˆ๋‹ค ๋‹ค๋ฅธ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋””๋ฐ”์ด์Šค ๋“œ๋ผ์ด๋ฒ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค:๊ทธ๋ž˜ํ”ฝ ์นด๋“œ, ์‚ฌ์šด๋“œ ์นด๋“œ ๋“ฑ์˜ ์žฅ์น˜๋ฅผ ์ œ์–ด์žฅ..

C# 2024.05.22

[C#] ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด ์ดํ•ดํ•˜๊ธฐ - C++, C# ๋น„๊ต

์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์€ ํŠน์ • ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ๋˜๊ณ , ์ „์—ญ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๋‹จ์ผ ๊ฐ์ฒด๋งŒ ์กด์žฌํ•˜๊ฒŒ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ „์— C++๋กœ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด ๊ตฌํ˜„ํ•œ๊ฒƒ๊ณผ ๋น„๊ตํ•˜์—ฌ, C#์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ , ์‚ฌ์šฉํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.  ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐํ”„๋กœ์ ํŠธ ์ฝ˜์†”์•ฑ์œผ๋กœ "์‹ฑ๊ธ€ํ†คํŒจํ„ด"ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ > Singleton ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑ public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == null) { ..

C# 2024.05.21

[C#] ์ผ๋ฐ˜ํ™”๋œ ์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์ปฌ๋ ‰์…˜์˜ ํ™œ์šฉ

์ปฌ๋ ‰์…˜๊ณผ ์ œ๋„ค๋ฆญ์„ ํ˜ผ๋™ํ•˜๋Š” ๊ฒƒ์€ ํ”ํ•œ๋ฐ, ๋‘˜์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐœ๋…์ด๋‹ค. ์ปฌ๋ ‰์…˜์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„๋†“๊ณ , ํšจ์œจ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ด ์ž๋ฃŒ๊ตฌ์กฐ๋“ค์€ ๋ฐฐ์—ด ๋ฆฌ์ŠคํŠธ, ํ•ด์‹œ, ๋งต, ์Šคํƒ, ํ ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.์ œ๋„ค๋ฆญ์€ ํƒ€์ž…์„ ๋™์ ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋ช…ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋‚˜, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๊ฒฐ์ •๋œ๋‹ค. ์ด๋ฅผ ํ…Œ๋ฉด, ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ ์ œ๋„ค๋ฆญ์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” ๊ตฌ์ฒดํ™”๋˜์ง€ ์•Š์ง€๋งŒ, ๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š” ํƒ€์ž…์ด ๊ฒฐ์ •๋˜์–ด ์žˆ๋‹ค. ์ œ๋„ค๋ฆญ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์€ ์ข€ ๋‚ฎ์„ ์ˆ˜ ์žˆ์œผ๋‚˜ ํƒ€์ž… ์•ˆ์ •์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ ์ธก๋ฉด์—์„œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค. ์ œ๋„ค๋ฆญ์— ..

C# 2024.05.15

[C#] ์•”๋ฌต์  ํƒ€์ž… ์ถ”๋ก ๊ณผ ๋™์  ํƒ€์ž… - var์™€ dynamic ํ™œ์šฉ

C#์—์„œ๋Š” varํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ objectํ˜•ํƒœ๋กœ ๋ฐ›์€ ๊ฐ’์„ varํ˜•ํƒœ๋กœ ๋‹ค์‹œ ์ถœ๋ ฅํ• ์ˆ˜ ์žˆ๋‹ค.์ด ํŒจํ„ด์€ ํŒจํ„ด ๋งค์นญ ๊ธฐ๋Šฅ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฉฐ, ๋ณ€์ˆ˜๋ฅผ ํŠน์ • ์œ ํ˜•์œผ๋กœ ๋ฐ”์ธ๋”ฉํ•˜๊ณ  ์‚ฌ์šฉํ• ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ž˜ ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š์ง€๋งŒ, ์ฝ”๋“œ๋ฅผ ๋” ์ฝ๊ธฐ ์‰ฝ๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“œ๋Š”๋ฐ ๋„์›€์ด๋œ๋‹ค. ์ด์ œ var ํŒจํ„ด์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž.    ์•”๋ฌต์  ํƒ€์ž… ์ถ”๋ก ์„ ํ™œ์šฉํ•œ C#์˜ var ํŒจํ„ด ์ดํ•ดํ•˜๊ธฐ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๊ฐ€์žฅ ๋จผ์ €, varํŒจํ„ด์„ ๋ณ€์ˆ˜๋ฅผ ์ž„์˜์˜ ํƒ€์ž…์ธ var ๋ณ€์ˆ˜๋กœ ๋ฐ›์€ ํ›„ ์กฐ๊ฑด์„ ์ ๊ฒ€ํ•œ๋‹ค. ์ด๋•Œ, ์กฐ๊ฑด์„ ์ ๊ฒ€ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์ผ๋‹จ ๋ณ€์ˆ˜๋กœ ๊ฐ’์„ ๋ฐ›์•„์•ผํ•œ๋‹ค.object obj = "korea";if(obj is var str){ Console.WriteLine(str);} ์˜ˆ๋ฅผ ๋“ค์–ด, `object obj ..

C# 2024.05.15

[C#] .NET ํ”„๋ ˆ์ž„์›Œํฌ์™€ C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ดํ•ด - ์‹œ์ž‘ํ•˜๊ธฐ

๐Ÿ–ฅ.NET ํ”„๋ ˆ์ž„์›Œํฌ ์†Œ๊ฐœ .NET ํ”„๋ ˆ์ž„์›Œํฌ๋ž€ ๋ฌด์—‡์ผ๊นŒ? ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ๊ฐ€ ๊ฐœ๋ฐœํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฐ ์‹คํ–‰ ํ™˜๊ฒฝ์ธ .NET ํ”„๋ ˆ์ž„์›Œํฌ๋Š” CLR์ด๋ผ๋Š” ๊ฐ€์ƒ๋จธ์‹ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ํ”Œ๋žซํผ์„์—์„œ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์–ด๋–ค OS์ด๋“  .NET ํ”„๋ ˆ์ž„์›Œํฌ๋งŒ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด .NET ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ ๊ฐ€๋Šฅํ•˜๋‹ค. .NETํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๋งˆ์น˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ์‹คํ–‰ํ™˜๊ฒฝ์ธ Node.js์™€ ๋น„์Šทํ•œ(?) ์—ญํ• ์„ ํ•œ๋‹ค. .NET ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ตฌ์กฐ ๋‚ด๋ถ€๋Š” ์ฃผ๋กœ 3๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ CLR(Common Language Runtime): .NET ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•œ๋‹ค. ์ž๋ฐ”์˜ JVM๊ณผ ์œ ์‚ฌํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. ์ฆ‰, CLR์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ..

C์–ธ์–ด 2024.04.24