티스토리 뷰
본 포스팅은 프로그래밍 경험이 전혀 없는 분들을 위해 가장 기초적인 내용부터 다루었습니다.
PC 버전을 권장합니다.
1. Hello World!
"Hello, World!"를 들어보셨나요?
누구나 한 번쯤 프로그래밍을 접해보셨거나 배우실 때 Hello, World!를 보신 적이 있을 겁니다.
"Hello, World!" 프로그램 (세상아, 안녕!)은 "Hello, world!"를 화면에 출력하는 컴퓨터 프로그램입니다. 이 프로그램은 프로그래밍 언어를 연습하는 데에 많이 쓰이고, 많은 프로그래밍 언어 서적에서 가장 처음 만들어보는 기본 예제로 나옵니다.
한번 만들어 보겠습니다.
입력
using System;
namespace blog_1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
출력
Hello World!
이제부터는 우리가 만들었던 Hello World! 프로그램을 차근차근 파악해보겠습니다.
어떻게 해서 Hello World가 나오게 되었는지 알아봅시다!
1-1 using System;
Using ⇒ 사용하겠다
System ⇒ 에 정의된 각 타입을
; ⇒ 끝
Using System; ⇒ System에 정의된 각 타입들을 사용하겠다.
이처럼 Using은 네임스페이스(1-2 참고)에 정의된 각 타입을 가져올 때 사용합니다.
또한 세미콜론(;)은 문장이 끝났을 때 사용합니다.
1-2 namespace
네임스페이스는 클래스, 구조체, 인터페이스, 대리자 등등이 포함되어있으며 하나의 이름 아래 묶는 일을 합니다 .NET 프레임워크에 System.IO 네임스페이스에서는 파일 입출력을 다루는 각종 클래스, 구조체, 대리자 등등이 있고 System.Printing 네임스페이스에서는 인쇄에 관련된 일을 하는 클래스가 있습니다 이를 통해 엄청나게 많은 클래스가 있어도 개발자가 전혀 혼돈을 느끼지 않고 클래스를 사용할 수 있는 비결은 바로 각 용도/분야별로 정리되어 있는 네임스페이스에 있습니다.
네임스페이스는 다음과 같이 사용합니다
namespace 원하는이름
{
// 클래스
// 구조체
// 등등..
}
이처럼 namespace 키워드를 사용하며, 괄호 ({})로 묶습니다.
클래스, 구조체, 인터페이스, 대리자가 뭔지 모르겠다고요? 당연합니다 그냥 이런게 있다고만 알고 넘어가세요!
1-3 class
클래스는 C# 프로그램을 구성하는 기본 단위로서 데이터와 데이터를 처리하는 기능으로 이루어집니다. C# 클래스는 메인클래스를 포함한 최소한 하나 이상의 클래스로 이루어지며 수백, 수천개의 클래스들로 구성되기도 합니다.
클래스는 다음과 같이 사용합니다.
class 원하는이름
{
// 메소드
// 변수
// 등등
}
이처럼 class 키워드를 사용하며, 괄호 ({})로 묶습니다.
1-4 namespace와 class와의 관계
설명 없이 예를 들어보겠습니다
게임을 하나 만든다고 가정해봅시다!
namespace character
{
class body
{
//몸 관련 기능들
}
class head
{
//머리 관련 기능들
}
class arm
{
//팔 관련 기능들
}
}
namespace map
{
class item
{
//아이템 관련 기능들
}
class weather
{
// 날씨 관련 기능들
}
}
예시처럼 body, head, arm 클래스가 모여 character 네임스페이스가 완성됩니다!
또한 item, weather 클래스가 모여 map 네임스페이스가 완성됩니다!
1-5 프로그램이 시작되는 곳
C#은 컴파일러가 코드를 쭉 읽다가 Main()메소드를 찾습니다.
이 메소드는 프로그램에 진입점으로서, 프로그램을 시작하면 실행되고, 이 메소드가 종료되면 프로그램도 역시 종료됩니다. 따라서 모든 프로그램은 반드시 Main이라는 이름을 가진 메소드를 하나 가지고 있어야 합니다.
입력
using System;
namespace blog_1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Main 메소드!");
}
}
}
출력
Main 메소드!
Main 메소드를 제거해보겠습니다.
입력
using System;
namespace blog_1
{
class Program
{
static void test()
{
Console.WriteLine("test 메소드!");
}
}
}
출력
CS5001 프로그램에는 진입점에 적합한 정적 'Main' 메서드가 포함되어 있지 않습니다.
1-6 static void Main(string[] args) ???
생소한 단어가 보입니다 static과 void와 메서드이름뒤에 붙는 (string[] args)
static은 한정자로서 메소드나 변수 등을 수식합니다. C# 프로그램의 각 요소는 코드가 실행되는 시점에 비로소 메모리에 할당되는 반면, static 키워드로 수식되는 코드는 프로그램이 처음 구동될 때부터 진작에 메모리에 할당됩니다.
void는 메소드의 반환 형식입니다.
void는 영어로 "비어있는"이라는 뜻으로서, 이 메소드가 어떤 결과도 주지 않을 것이라는 것을 컴파일러에게 알려주는 역할을 합니다.
반환 형식에 대해서는 뒤에서 자세히 설명하겠지만 string 형식으로 반환되면 static string int 형식으로 반환하면 static int 아무것도 반환하지 않으면 static void로 쓰입니다.
이로서 C#에 전체적인 구조에 대해 살펴보았습니다.
다음 2강에서는 데이터에 대해 알아보겠습니다.
'C# > C# 초급' 카테고리의 다른 글
| C# 초보 강좌 2 - 데이터 보관(변수) (0) | 2020.12.21 |
|---|
