This article is currently in the process of being translated into Korean (~99% done).
Hello world explained
저번 챕터에서,우리의 첫 C# 어플리케이션에서 우리는 콘솔에 텍스트를 쓰는것을 연습했습니다.진행을 하기 위해,우리는 우리가 쓴 코드에 대해 세부적으로 보지 않았습니다.그래서 이번 챕터는 Hello wrold 예제 코드를 설명할거에요.코드에서 보다시피,몇몇 줄은 코드가 비슷해 보입니다.그래서 우리는 그것들을 묶어서 각자 설명할 것입니다.가장 짧고 가장 흔한 문자부터 시작해볼게요.{와}입니다.그들은 중괄호(curly braces)라 불리며,C ++,Java,JavaScript 등등의 많은 다른 언어들에서도 쓰입니다.코드에서 볼 수 있듯이,그들은 여러줄의 코드를 묶는데 쓰입니다.나중에 예제에서 어떻게 쓰이는지 알 수 있을거에요.
처음부터 시작해 볼게요.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
에디터에서 파란색으로 강조된 using은 키워드입니다.using 키워드는 namespace를 가져옵니다.여기서 namespace는 class의 모음이에요.class들은 우리에게 기능을 가져옵니다.그리고 비주얼 스튜디오 같은 발전된 IDE를 이용할때,이것은 주로 작은 코드 조각을 만들어줘요.이번 예시에서,그것은 우리를 위해 class를 만들어주고, 필요하거나 쓸 것으로 예상되는 namespace들은 가져와줬어요.또한,이번 예시에서는 5개의 namespace들이 가져와졌고,각각 namespace들은 많은 유용한 class들을 포함하고 있죠.예를들어,우리는 Console class를 쓰는데,이것은 System namespace에 포함되어 있어요.
반면에,우리는 사실System.Linqnamespace를 아직 쓰지 않아요(예시에서),그래서 만약 당신이 깔끔한 것을 좋아한다면,이 줄을 지워도 괜찮아요.그러나 지워도 아직 큰 차이는 생기지 않을거에요.
보다시피,우리는 우리만의 namespace를 만들 수 있어요.
namespace ConsoleApp1
namespace ConsoleApp1은 이제 이번 어플리케이션에서 우리의 메인 namespace가 될거에요.그리고 새로운 class들은 기본적으로 그것의 일부가 될거에요.당연히,당신은 이것을 바꿀 수 있어요.그리고 class를 다른 namespace에 만들 수 있죠.그런 경우에,당신은 그 새로운 namespace를 가져와야 할거에요.다른 namespace들 처럼 using을 이용해서요.
다음으로,우리는 우리의 class를 정의할거에요.C#은 객체 지향 언어이기 때문에,무언가를 하는 모든 코드의 줄들은,class로 덮여있어요.이번 예시에서,class는 간단하게 Program이라 불려요.
class Program
우리는 class들을 더 만들수 있어요.심지어 같은 파일에서도요.그러나 지금은,우리는 class가 하나밖에 필요 없어요.class는 다양한 변수,상태,메소드를 포함할 수 있어요.개념은 나중에 더 깊게 알아볼거에요.지금은,당신이 알아야 할것은 지금 우리의 클래스는 하나의 메소드만 포함하고 끝이에요.그 메소드는 이렇게 정의돼요.
static void Main(string[] args)
이 줄이 이번 예제에서 가장 복잡한 것일거에요.그러니 조금만 나눠볼게요.첫번째 단어는 static이에요.static키워드의 뜻은 이 메소드는 class의 객체를 만들지 않고도 접근 가능하다는 끝이에요.자세히는 나중에 우리의 class에 대한 챕터에서 알려줄게요.
다음 키워드는 void에요.이것은 우리에게 이 메소드가 어떤 값을 반환해야할지 알려주죠.예를 들어,반환값은 정수나 문자열이 될 수 있어요.그러나 이 예제에서는,우리는 메소드가 값을 변환하는 것을 원하지 않아요.(C#에서는 키워드 void를 써서 아무것도 없음을 표현해요.)
다음 단어는 Main이에요.Main은 간단히 말해 우리의 메소드의 이름이에요.이 메소드는 소위 우리 어플리케이션의 '진입점'이라고 불려요.첫번째 코드의 조각이 실행될 곳이죠.우리의 예제에서 실행될 유일한 부분이에요.
메소드의 이름 다음으로,전달인자들은 괄호들로 지정될 수 있습니다.우리의 예제에서,우리의 메소드는 하나의 인자만을 받아요.그것은 args라 불리죠.인자의 유형은 string(문자열)이에요.더 자세히 말하자면,문자열의 배열이에요.더 자세한 것들은 나중에 알려줄게요.생각해보면,이것은 완전 말이 돼요.왜냐면 윈도우 어플리케이션은 인자의 선택적 세트이기 때문이에요.이러한 인자들은 텍스트 문자열로 우리의 main 메소드에 넘겨질거에요.
여기까지입니다. 이제 여러분은 콘솔 애플리케이션의 작동에 대한 기본 원칙 뿐만 아니라 첫 번째 C# 애플리케이션에 대한 기본적인 이해도 습득하였습니다.