[C#] 1. C# 기초
1. C#
C#은 마이크로소프트에서 개발한 객체 지향 프로그래밍 언어로, C++과 JAVA와 비주얼 베이직(VB)의 장점을 합쳐 C#을 만들었습니다. C++과 JAVA의 문법과 비슷한 문법을 가지고 있습니다.
2. C#의 장점
첫 째, 뛰어난 생산성
수 많은 라이브러리와 IDE(통합 개발 환경)가 손쉽게 코딩을 할 수 있게 도와줍니다.
※ IDE(Integrated Development Environment)(통합 개발 환경) : 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어를 말한다.
둘 째, 엄격한 문법
사소한 실수까지 컴파일 에러를 띄워주기 때문에 사소한 에러까지 방지할 수 있습니다.
셋 째, 완벽한 프로그래밍
C#에서 전역 변수나 전역 함수는 존재하지 않기 때문에, 모든 변수와 함수를 클래스에 넣어야 합니다.
넷 째, 메모리 관리
할당된 메모리를 해제하지 않아도 되며, 사용된 객체는 저절로 제거되기 때문에 메모리 누수가 적습니다.
장점을 네 가지로 나누었지만 골자는 쉽고 빠른 개발을 할 수 있다는 것입니다.
3. C#의 단점
실행 속도가 조금 느립니다. C나 C++과 달리 C#은 .NET Framework(가상 머신)을 통해 실행이 되어 실행 과정은 C나 C++이 더 심플합니다.
※ 가상머신(virtual machine)(VM) : 물리적 컴퓨터의 디지털 버전. 가상 머신 소프트웨어는 프로그램 및 운영체제를 실행하고, 데이터를 저장하고, 네트워크에 연결하고, 기타 컴퓨팅 기능을 수행할 수 있습니다.
4. C# 프로그램 소스코드
C# 프로그램은 .cs 라는 확장자를 사용합니다. C# 프로그램으로 실행 파일을 만들기 위해서는 Visual Studio를 사용하는 경우 C# 프로젝트를 빌드하여 실행파일을 생성합니다. Visual Studio 없이 .NET Framework에서 제공되는 C# 컴파일러인 csc.exe를 이용하여 실행파일을 생성할 수 있습니다.
5. C# 개발도구
일반적으로 Visual Studio(VS)를 사용합니다. VS는 IDE로서 다양한 개발 기능을 제공합니다.
6. C# 진입점
모든 C# 프로그램은 Main()이라는 시작 함수(메서드)를 가져야 합니다. 프로그램이 종료될 때까지 메모리에 존재해야 하므로 반드시 static(정적)이어야 하며, 외부에서 호출되므로 public 액세스 지정을 가져야 합니다. Main() 메서드는 임의의 클래스 안에서 존재하며, 프로그램 상에 단 1개만 존재할 수 있습니다. 마지막 문장은 잘 해석해야 합니다.
- Main() 메서드가 클래스에 소속되는 맴버이기 때문에 여러 개의 클래스가 각각의 Main을 가지는 것이 문법적으로는 가능합니다.
- 그러나 진입점은 유일해야 하기 때문에 이대로 컴파일하면 진입점이 두 개라는 에러가 발생합니다. 프로그램이 실행될 때 어떤 것이 유효한 것인지 명시해야 합니다. 프로젝트의 속성/애플리케이션/시작 개체에서 진입점을 가지고 있는 클래스의 이름을 지정하면 됩니다.
using System;
class Main1
{
static void Main()
{
Console.WriteLine("Main1");
}
}
class Main2
{
static void Main()
{
Console.WriteLine("Main2");
}
}
// 두 개를 정의할 수 있지만, 둘 중 하나의 진입점만 설정 가능합니다.