이것이 C# 이다 - 2강. 처음만드는 C# 프로그램

Soonyoung Kim·2021년 7월 22일
0

이것이 C# 이다

목록 보기
2/2

2강. 처음만드는 C# 프로그램

2.1 . Hello, World

Hello, World! 출력 콘솔 애플리케이션 제작

  1. Step1 : Visual Studio 2017 실행

  2. Step2 : [새 프로젝트]대화 상자 실행

    • 콘솔 앱(.NET Framework)
  3. Step3 : HelloWorld 프로젝트 생성

    • 프로젝트 이름 : HelloWorld
    • 작업 파일이 생성될 디렉토리 지정
  4. Step4 : 코드 편집기와 솔루션 탐색기

  5. Step5 : HelloWorld.cs 이름 변경

    • Program.cs 파일 명 -> HelloWorld.cs 이름 변경
  6. Step6 : 소스 코드 작성

using System;
using static System.Console;

namespace BrainCSharp
{
   class HelloWorld
   {
	   // 프로그램 실행이 시작되는 곳
	   static void Main(string[] args)
	   {
		   if(args.Length == 0)
		   {
			   Console.WriteLine("사용법 : HelloWorld.exe <이름>");
			   /*
				* Console.WriteLine : 메소드
				* 이런 메소드는 어디서 제공되는가? Console이라는 클래스에서 제공
				* Console을 제공해주는 namespace는 System이다.
				* 
				* 만약, using System; 을 사용하지 않았다면 System.Console.WriteLine(); 으로 호출을 해야 정상적으로 작동을 한다.
				*/
			   return;
		   }

		   WriteLine("Hello, {0}", args[0]);
	   }
   }
}
  1. Step7 : 컴파일

    • 컴파일 수행 단축키 : ctrl + shift + b
  2. Step8 : 컴파일 결과 확인

    • 솔루션 탐색기 -> 프로젝트 우클릭 -> 파일 탐색기에서 폴더 열기 -> 폴더 열림 -> bin 폴더 열기 -> Debug와 Release 폴더 존재

    • bin/Debug/HelloWorld.exe 파일을 실행하기 위해서는 콘솔어플리케이션이기 때문에 콘솔창이 필요하다.

  3. Step9 : 명령창에서 실행 파일 위치로 이동

    • 콘솔창 열기(cmd)
  4. Step10 : HelloWorld 애플리케이션 실행

    • cmd 창에서 exe파일 실행(파일이 있는 디렉터리 위치에서 수행)
    D:\dev\ThisIsCSharp\HelloWorld\HelloWorld\bin\Debug>HelloWorld.exe
    사용법 : HelloWorld.exe <이름>
    
    D:\dev\ThisIsCSharp\HelloWorld\HelloWorld\bin\Debug>HelloWorld.exe 홍길동
    Hello, 홍길동

2.2 첫 번째 프로그램 뜯어보기

2.2.1 using System;

using System;
  • using

    • c# 키워드(예약어)
  • System

    • 기본 클래스의 네임스페이스
  • 세미콜론(;)

    • 문장의 끝

      • 여러 줄의 라인을 프로그래밍 가능
      Text = "나는 자랑스러운 태극기 앞에 "
      		+ "자유롭고 정의로운 대한민국의 영광을 위하여 "
      		+ "몸과 마음을 바쳐 충성을 다할 것을 "
      		+ "굳게 다짐합니다.";
      • 짧은 문장은 한줄에 연결하여 프로그래밍 가능
      aplth = 1.2; beta = 4.0; gamma = 7.22;
    • Visual Basic - 줄 바꿈

      • 여러 줄이 하나의 문장임을 알리기 위해 줄의 마지막에 UnderLine(_)을 입력
      Text = "나는 자랑스러운 태극기 앞에 " _ 
      		+ "자유롭고 정의로운 대한민국의 영광을 위하여 " _
      		+ "몸과 마음을 바쳐 충성을 다할 것을 " _
      		+ "굳게 다짐합니다."; 
    • 세미콜론이 없으면, 컴파일러가 문장이 끝인지 알 수 없다.(오류발생)

2.2.2 using static System.Console;

using static System.Console;
  • using static

    • 데이터 형식의 정적 멤버 사용
  • Console 클래스의 대표적인 정적 멤버

  • Write(), WriteLine(), Read(), ReadLine()

  • System.Console을 선언하였기에, 다음과 같이 코드를 줄여 사용 할 수 있다.

    WriteLine("Hello, {0}", args[0]);

2.2.3 namespace BrainCSharp{}

namespace BrainCSharp{}
  • 네임스페이스

    • 성격, 하는 일이 비슷한 형식(유사한 작업)을 하나의 이름으로 그룹화
    • 동일한 동작을 하는 기능을 메소드라고 하는데, 네임스페이스와 이름이 같을 수 있다. 메소드와 이름이 같더라도, 네임스페이스 이름이 그 메소드 자체를 유일하게 식별시켜줄 수 있다. 라이브러리에서 해당되는 메소스들이 충돌되는 경우는 없다.
    • .NET 프레임워크 라이브러리
      • System.IO
        • 파일 입출력을 다루는 클래스나 구조체 등을 제공
      • System.Printing
        • 인쇄관련 기능을 제공
  • 네임스페이스 만들기

    • Namespace 키워드
    • 형식
    namespace 네임스페이스_이름
    {
        //클래스
        //구조체
        //인터페이스 등...
    }

2.2.4 class HelloWorld{}

class HelloWorld{}
  • 클래스
    • C# 프로그램을 구성하는 기본 단위
    • 데이터와 데이터 처리 기능(메소드-동작을 나타내는 코드)
    • class class_name {}
  • C#의 '{}'와 '}'
  • 코드 블록

2.2.5 // 프로그램 실행이 시작되는 곳

  • C#의 주석
    • 소스 코드 안에 기록하는 메모
    • 컴파일러는 주석을 처리하지 않음
    • // - 한 줄 주석
    • /* */ - 여러 줄 주석

2.2.6 static void Main(string[] args){}

static void Main(string[] args){}

  • 메소드

    • C 프로그래밍 언어 -> 함수
    • 객체 지향 프로그래밍 -> 메서드
    • 입력(객체) -> 계산 -> 출력(객체)
  • 진입점(Entry Point)

    • 특별한 메소드, Main
    • 프로그램 시작 시 실행
    • Main 메소드 종료 시 프로그램 종료
    • 프로그램 실행 시 매개 변수 입력
  • static : 한정자(정적 메소드 식별)

  • void : 반환 형식(void는 반환할 것이 없다.)

  • Main : 메소드 이름(이름의 시작은 대문자여야 한다.)

  • string[] args : 매개변수

    • [] : 배열

    • args : 입력값

      매개변수를 Main 이라는 메소드에 전달되면 전달된 값이 코드블록안에서 실행하게 된다.

2.2.7 if(args.Length==0){}

if(args.Length == 0){}
  • 매개변수 입력이 필요한 프로그램

  • if문

    • 조건을 평가해 프로그램의 흐름 제어

    • 목록의 길이 검사(args.Length==0)

    • 입력 값이 없을 경우(if(args.Length == 0)), 사용법을 출력

  • Return

    • Main 메소드를 호출하는 호출자는 운영체제이다.
      • 코드가 실행되고 모든 실행이 끝났을 때, Main 메소드 실행 끝났다는 것을 운영체제에게 return문으로 반환을 한다.
    • 호출자에게 메서드 실행 결과 반환
    • Main 메서드 종료

2.3 CLR에 대하여

  • .NET Framework 설치시 같이 설치되는 구성요소

  • CLR(Common Language Runtime)

    • CLR 덕분에 운영체제가 이해하는 코드로 변경되어 실행

    • .NET 환경은 CLR구조를 이용하여 .NET 지원 언어들을 지원한다.

      C#, VB.NET, C++ 등을 지원한다.

    • C#으로 만든 프로그램의 실행 환경

    • 중간 언어를 통한 다중 언어 지원(IL코드)

      • 앞에 어떤 언어로 코드를 작성했든 실제 운영체제가 실행할 수 있는 실행파일로 변경해 주는 역할을 한다.
    • 플랫폼 최적화된 코드 생성

  • C# 코드의 여정

    • -> C# 컴파일러
    • -> IL(Intermediate Language) 파일(실행 코드로 변경)
    • -> JIT(Just In Time) 컴파일(즉시 컴파일)
      • CLR의 IL 코드 -> 네이티브 코드 컴파일 -> 실행
profile
Sin prisa, sin pausa.

0개의 댓글