[C#] Hello World! ๋ถ„์„

[์›๋ณธ ๋งํฌ]

์ผ๋‹จ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ๋Š˜์–ด๋†“์ž๋ฉด,

C#์€ Java๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•ด์„œ C++์˜ ํŠน์„ฑ๋“ค์„ย ๋น„๋กฏํ•œ ์œ ์šฉํ•œย ๊ธฐ๋Šฅ๋“ค์„ ์„ž์–ด๋†“์€ ์–ธ์–ด์ด๋‹ค.
#์€ ++์„ ์œ„์•„๋ž˜๋กœ ๋ถ™์—ฌ๋†”์„œ C++์—์„œ ํ•œ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐ”๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๋˜๋Š” #(์˜ฌ๋ฆผํ‘œ)๋กœ ๋ณผ ์ˆ˜๋„ ์žˆ๋‹ค.
๊ทผ๋ฐ C#์€ C๋‚˜ C++๋ณด๋‹ค Java์˜ ๋น„์ค‘์ด ์••๋„์ ์ธ๋ฐ ์™œ ์ด๋ฆ„์ด Java++์ด ์•„๋‹๊นŒ? ์• ์ดˆ๋ถ€ํ„ฐ ์ž๋ฐ” ๋จน์œผ๋ ค๊ณ  ๋งŒ๋“  ์–ธ์–ด์ด๊ธฐ๋„ ํ•˜๊ณ , ์ž๋ฐ”์—๋Š” ์ €์ž‘๊ถŒ์ด ์žˆ๋‹ค.(์ฌ->์˜ค๋ผํด) ์ผ๋ก€๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋„ ์ฌํ•œํ…Œ ๋ˆ ์ข€ ์ฅ์–ด์ฃผ๊ณ  ์ž๋ฐ”๋ผ๋Š” ์ด๋ฆ„ ๊ฐ–๋‹ค๋ถ™์ธ๊ฑฐ๋‹ค.

ํ•˜์—ฌํŠผ C#์€ ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” ์šด์˜์ฒด์ œ์˜ ์ฃผ์ธ์ธ ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ ๊ฐœ๋ฐœํ•œ ์–ธ์–ด์ด๋‹ค. ๊ทธ๋ž˜์„œ ์œˆ๋„์šฐ์—์„œ ์ œ์ผ ์ž˜ ๋ˆ๋‹ค. ์˜ˆ์ „์—๋Š” only ์œˆ๋„์šฐ์—์„œ๋งŒ ๋Œ์•˜๋Š”๋ฐ ์š”์ฆ˜์€ ๋‹ท๋„ท์ฝ”์–ด๋‹ค ์ž๋งˆ๋ฆฐ์ด๋‹ค ๋ญ๋‹ค ํ•ด์„œ ๋‹ค๋ฅธ๋ฐ๋„ ์“ธ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

๊ด€๋ฆฌ๋˜๋Š”(๋งค๋‹ˆ์ง€๋“œ) ์–ธ์–ด์ด๋‹ค. ๋ฐ”๋กœ ์‹คํ–‰ํŒŒ์ผ์ด ๋‚˜์˜ค์ง€ ์•Š๊ณ  ๊ฐ€์ƒ๋จธ์‹ ์ด ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ๋ฌผ์„ ๋Œ€์‹  ์‹คํ–‰ํ•ด์ค€๋‹ค.
๋•Œ๋ฌธ์— ์ž์› ๊ด€๋ฆฌ ๋“ฑ์˜ ์ž์ž˜ํ•œ ์ฒ˜๋ฆฌ๋Š” ํŽธํ•˜๊ฒŒ ํ•ด์น˜์šธ ์ˆ˜๊ฐ€ ์žˆ์œผ๋‚˜ ์„ฑ๋Šฅ์— ์ ์ง€ ์•Š์€ ๋ถ€ํ•˜๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฐ ๋ถ€๋ถ„์€ ์ž๋ฐ”์™€ ๊ฐ™๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ์  ์–ธ์–ด์ด๋‹ค. ์ž๋ฐ”์˜ ๋ฌธ๋ฒ•์  ํ‹€์„ ๊ทธ๋Œ€๋กœ ๋นผ๋‹ค๋ฐ•์•„์„œ ์ž๋ฐ”๋ฅผ ์•ˆ๋‹ค๋ฉด ๊ต‰์žฅํžˆ ์ต์ˆ™ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ™•์žฅ์ž๋Š” .cs๋‹ค. ์™œ ํ™•์žฅ์ž์— ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์“ฐ์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ด์ง€?

์ž๋ฐ”๋Š” ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (JVM)์— ์˜ํ•ด์„œ ๋Œ์•„๊ฐ„๋‹ค. ๊ทธ์— ๋ฐ˜ํ•ด C#์˜ ๊ฒฝ์šฐ๋Š” ์šฉ์–ด๊ฐ€ ์ข€ ๋” ๋ณต์žกํ•˜๋‹ค.
์ž๋ฐ”์™€๋Š” ๋‹ฌ๋ฆฌ C#์˜ ๊ฐ€์ƒ๋จธ์‹ ์€ C#๋งŒ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.
MS์˜ ๋‹ท๋„ทํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณต๋˜๋Š” ๋ชจ๋“  ์–ธ์–ด๋ฅผ ์ง€์›ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šฉ์–ด๊ฐ€ ์ข€๋” ๋ฒ”์šฉ์ ์ด๋‹ค. ๊ทผ๋ฐ ์‚ฌ์‹ค์ƒ C# ๋ง๊ณ ๋Š” ์ž˜ ์•ˆ์“ฐ์ž„

C#. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ๋‹ท๋„ท์˜ ๊ฒฝ์šฐ JVM์— ๋Œ€์‘๋˜๋Š” ์กด์žฌ๋Š” ๋ฐ”๋กœ ๊ณต์šฉ์–ธ์–ด๋Ÿฐํƒ€์ž„(CLR:Common Language Runtime)์ด๋‹ค.
๊ทธ๋ฆฌ๊ณ  CLR์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ธฐ์ค€? ๋ช…์„ธ? ํ‘œ์ค€? ์ด๊ฑธ ๋ญ๋ผํ•˜์ง€ ์–ด์จŒ๋“  ์ด๊ฑธ ๊ณต์šฉ์–ธ์–ด๊ธฐ๋ฐ˜(CLI:Common Language InfraStructure)์ด๋ผ๊ณ  ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  .Net ์–ธ์–ด๋ฅผ ์ปดํŒŒ์ผํ•œ ๊ฒฐ๊ณผ๋ฌผ์€ ์ „๋ถ€ ํ˜ธํ™˜๋œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์€ CIL, ํ˜น์€ IL์ด๋ผ๊ณ  ํ•œ๋‹ค. ์˜ํƒ€ ์น˜๊ธฐ ๊ท€์ฐฎ์•„... ์ค‘๊ฐ„ ์–ธ์–ด๋ผ๋Š” ๋œป์ด๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์“ฐ๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์“ธ๋ฐ์—†์ด ์žฅํ™ฉํ•ด์กŒ๋‹ค.

Hello World!๋ฅผ ์ฐ์–ด๋ณด์ž


1.using์€ C++์—์„œ์˜ using์ด๋‚˜ ์ž๋ฐ”์˜ import์™€ ๋‹ค๋ฅด์ง€ ์•Š๋‹ค. ์ € ํŒจํ‚ค์ง€๋ฅผ ์ง‘์–ด๋„ฃ๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค.

2.namespace๋Š” C++๊ณผ ๋™์ผํ•˜๋‹ค. C#์€ ์—ฌ๊ธฐ์—์„  ์ž๋ฐ”์˜ ํŒจํ‚ค์ง€๋ฅผ ๋ฒ„๋ฆฌ๊ณ  C++์˜ ์ด๋ฆ„๊ณต๊ฐ„์„ ๊ฐ€์ ธ๊ฐ”๋‹ค.
์ด๋ฆ„๊ณต๊ฐ„์€ ํ•„์ˆ˜ ์‚ฌํ•ญ์€ ์•„๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ์ „์—ญ์— ๋†”๋„ ์ƒ๊ด€์—†๋‹ค.

3.ํด๋ž˜์Šค! C#๋„ ์ž๋ฐ”์ฒ˜๋Ÿผ ๋ชจ๋“  ํ•จ์ˆ˜์™€ ๋ณ€์ˆ˜๋Š” ํด๋ž˜์Šค ๋‚ด์— ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ์ž๋ฐ”์˜ ๊ฐœ๋–ก๊ฐ™์€ ํด๋ž˜์Šค๋ช… ์ œ์•ฝ์‚ฌํ•ญ์€ ์—†๋‹ค.

4.๊ทธ๋ฆฌ๊ณ  Main ๋ฉ”์„œ๋“œ! ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์ ์ด ๋œ๋‹ค. ๋ฐ˜๋“œ์‹œ static์ด์–ด์•ผ ํ•œ๋‹ค. ์ ‘๊ทผ์ œ์–ด์ž๋Š” ๋ญ˜ ๋ถ™์ด๋“  ์•ˆ ๋ถ™์ด๋“  ์ƒ๊ด€์—†๋‹ค.

5.Main์˜ ๋ฆฌํ„ดํƒ€์ž…์€ void๋‚˜ int์—ฌ์•ผ๋งŒ ํ•œ๋‹ค. ๋ฒ„์ „ 7.1๋ถ€ํ„ฐ๋Š” ์Šค๋ ˆ๋“œ ๊ด€๋ จ ํƒ€์ž…์ธ Task๋‚˜ Task๊ฐ€ ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค.
6.Main์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” () ์—†๊ฑฐ๋‚˜, string[] ์ด์–ด์•ผ๋งŒ ํ•œ๋‹ค.

7.Console์€ System ์ด๋ฆ„๊ณต๊ฐ„์— ์กด์žฌํ•˜๋Š” ์ •์  ํด๋ž˜์Šค๋‹ค. ๊ทธ๋ž˜์„œ System.Console.WriteLine(); ์š”๋ž˜ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค.
์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ฝ˜์†”์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  WriteLine์€ ๋ฌธ์ž์—ด์„ ๋ฐ›๊ณ  ๊ฐœํ–‰์„ ๋”ํ•ด์„œย ์ฝ˜์†”์— ์˜๋Š” ์ •์  ๋ฉ”์„œ๋“œ๋‹ค.

8.๋ชจ๋“  ๋ฌธ์žฅ์€ ;๋กœ ๋๋‚˜์•ผ ํ•œ๋‹ค.


๋‚˜๋จธ์ง€๋Š” ์ผ๋‹จ ์ž๊ณ  ๋‚ด์ผ ์ด์–ด์„œ ์“ฐ๊ฒ ๋‹ค.