티스토리 뷰
using System;
using
C#의 키워드 중 하나. 키워드란? C# 언어의 규격에 미리 정의되어 있는 특별한 단어를 말합니다.
System
숫자, 텍스트와 같은 데이터를 다룰 수 있는 기본적인 데이터 처리 클래스를 비롯해
C# 코드가 기본적으로 필요로 하는 클래스를 담고 있는 네임스페이스이다.
using System; 에 의미는 System 네임스페이스 안에 있는 클래스를 사용하겠다고 컴파일러에게 알리는 역할
namespace ExampleProject
{
네임스페이스는 성격이나 하는 일이 비슷한 클래스, 구조체, 인터페이스, 델리게이트, 열거 형식 등을
하나의 이름 아래 묶는 일을 한다.
예를 들면 System.IO 네임스페이스에는 파일 입출력을 다루는 각종 클래스, 구조체, 델리게이트, 열거 형식들이 있다.
그리고 System.Printing 네임스페이스에는 인쇄에 관련된 일을 하는 클래스 등이 소속되어 있다.
.Net 프레임워크에 1만개가 넘는 클래스가 있어도 헷갈리지 않고 사용할 수 있는 이유는
이렇게 용도별로 네임스페이스로 정리되어 있기 때문이다.
네임스페이스를 만들 때에는 다음과 같이 namespace 키워드를 작성하며, 내부에는 클래스나 구조체 등을 작성한다.
namespace 네임스페이스_명
{
// 클래스
// 구조체
// 인터페이스 등등
}
아래와 같이 네임스페이스가 있다고 가정을 해본다.
namespace ExampleProject
{
class Program
{
}
}
다른 네임스페이스에서 Program 클래스를 사용하려면
using ExampleProject; 문장을 사용해서 네임스페이스를 참조하거나
ExampleProject.Program 처럼 클래스가 소속되어 있는 네임스페이스와 클래스의
이름을 붙여주어야 한다.
class Program
{
}
class
C# 프로그램을 구성하는 기본 단위로서 데이터와 데이터를 처리하는 기능으로 이루어집니다.
C# 프로그램은 최소한 하나 이상의 클래스로 이루어지며, 수백, 수천 개의 클래스들로 구성되기도 합니다.
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
static void Main(string[] args){}
하나의 메소드입니다. 메소드 중에서도 특별한 메소드입니다. 이 메소드는 프로그램의 진입점 으로서,
프로그램을 시작하면 실행되고, 이 메소드가 종료되면 프로그램도 역시 종료됩니다.
따라서 모든 프로그램은 반드시 Main이라는 이름을 지닌 메소드를 하나 가지고 있어야 합니다.
static
static은 한정자로서, 메소드나 변수등을 수식합니다.
C# 프로그램의 각 요소는 코드가 실행되는 시점에 메모리가 할당되는 반면,
static 키워드로 수식되는 코드는 프로그램이 처음 구동될 때부터 메모리에 할당된다는 특징이 있다.
*한정자 : 문장의 다른 요소를 꾸며주는 역할을 하는 성분, 프로그래밍 '언어'에서 사용되는 다른 요소들을 꾸며주는 역할을 한다
void
메소드의 반환 형식이다. 영어로 '비어 있는'이라는 뜻으로
이 메소드가 어떤 결과도 돌려주지 않을 것이라는 걸 컴파일러에게 알려주는 기능을 한다.
메소드
객체 지향 프로그래밍 세계에서 함수를 일컫는 말.
객체 지향 프로그래밍에서는 모든 것이 객체이고, 함수는 객체의 일부로서 존재한다.
CLR에 대하여
C#으로 만든 프로그램은 CLR(Common Language Runtime)위에서 실행이 됩니다.
C# 응용 프로그램 | VB.NET 응용 프로그램 | C++ 응용프로그램 | ... |
Common Language Runtime | |||
.NET 프레임워크 | |||
운영체제(Windows, Linux, MacOS...) |
CLR은 .NET 프레임워크와 함께 OS 위에 설치된다. 네티이브 코드로 작성되어 있는 프로그램들은
운영체제가 직접 실행할 수 있지만, C# 컴파일러가 만들어낸 실행 파일은 운영체제가 이해할 수 없는
코드로 구성되어 있기 때문에 실행할 수 없다.
C# 컴파일러는 C# 소스 코드를 IL(Intermediate Language)라는 중간 언어로 작성된 실행 파일을 만들어 낸다.
사용자가 이 파일을 실행시키면 CLR이 중간 코드를 읽어 들여 다시 OS가 이해할 수 있는 네이티브 코드로 컴파일 후
실행시킵니다. 이것을 JIT(Just In Time) 컴파일이라고 부르는데 우리말로는 '적시 컴파일' 이라고 합니다.
JIT 컴파일이란 실행에 필요한 코드를 실행할 때마다 실시간으로 컴파일해서 실행한다는 뜻입니다.
왜 굳이 두 번씩이나 컴파일하는 복잡한 과정을 거칠까요?
왜냐면 C#이 동작하는 환경이자 엔진인 CLR은 C#뿐만 아니라 다른 언어도 지원하도록 설계되어 있다.
서로 다른 언어들이 만나기 위한 지점이 바로 IL이라고 하는 중간 언어이고,
이 언어로 쓰여진 코드를 CLR이 다시 자신이 설치되어 있는 플랫폼에 최적화시켜 컴파일 한 후 실행을 하는 것이다.
CLR의 기능
C#이나 기타 언어들을 동작시키는 환경 기능 외에도 프로그램의 오류가 발생했을 때
이를 처리하도록 도와주는 기능, 언어간의 상속 지원, COM과의 상호 운영성 지원, 그리고 자동메모리 관리 등의 기능
이 중 자동 메모리 관리를 가비지 컬렉션이라고도 한다.
'C#' 카테고리의 다른 글
3. 메소드란? (0) | 2020.01.28 |
---|---|
2. 데이터의 종류(4) - object, 상수, 열거, var (0) | 2020.01.25 |
2. 데이터의 종류(3) - 부동 소수, 문자와 문자열, 논리 형식 (0) | 2020.01.25 |
2. 데이터의 종류(2) - 정수형 데이터 (0) | 2020.01.25 |
2. 데이터의 종류(1) - 변수란?, 값, 참조 (0) | 2020.01.22 |
- Total
- Today
- Yesterday
- 언리얼엔진4
- 생활코딩
- 선택자
- inline
- 관계형데이터베이스
- PHP&MySQL
- visual studio code
- 차이점
- 기초
- javascript
- 언리얼엔진
- TAG
- css
- 조건문
- 동영상을
- GRID
- 정렬
- 변수
- 글로
- 생활코딩#MySQL
- 생활코딩#동영상을#글로#html
- HTML
- 안드로이드 스튜디오
- Link
- 네트워크 프로그래밍
- php
- C언어
- 객체
- 문자열
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |