본문 바로가기
C#(CSharp)/기초강좌(Basic)

[1] C# 이란? (C# Overview)

by swconsulting 2015. 2. 23.

C#은 모던하고, 일반적인 목적, 객체지향 개발 언어로 마이크로소프트에서 개발되었다.

C#은  Anders Hejlsberg 와 그의 팀이 .Net Framework.를 개발 하면서 만든 언어이다. C#은 CLI (Common Language Infrastructure) 기반위에 만들어졌고 코드도 이 기반위에서 동작한다. 쉽게 말해서 .Net Framework 기반위에서 동작한다고 생각하면 된다.


[C# 사용하는 이유]

 Modern, general-purpose programming language (윈도우 데스크탑, 서버, 웹, HW Control 가능)

 Object oriented. (객체 지향)

 Component oriented. (여러 컴포넌트를 쉽게 사용 개발 가능하다.)

 Easy to learn. (쉽게 배운다.)

 Structured language. (구조화된 개발 언어이다.)

 It produces efficient programs. (개발 생산성이 높다)

 It can be compiled on a variety of computer platforms. (여려 플랫폼에서 컴파일 될수 있다고 MS는 말한다. 현실은 윈도우 BASE만)

 Part of .Net Framework. (.Net Framework와 일심 동체 자웅동주이다. 서로 땔래야 땔수 없는 관계이다.)


[C# 중요하고 강력한 기능 목록]

 Boolean Conditions 

 Automatic Garbage Collection (Java VM(Virtual Machine) 처럼 CLI가 메모리 관리를 해준다.

 Standard Library (많은 표준 라이브러리 제공한다.)

 Assembly Versioning  (바이너리 버전 관리를 할 수 있다)

 Properties and Events (속성, 이벤트 처리 가능하다.)

 Delegates and Events Management (델리게이트(대리 함수) = 콜백함수 를 이용한 이벤트 처리가 가능하다.)

 Easy-to-use Generics (쉽게 제네릭 처리가 가능하다.)

 Indexers (객체(인스탄스)를 인덱서로 관리 가능하다.)

 Conditional Compilation (32/64비트 및 CPU ARM, Intel등 나누어서 바이너리를 쉽게 만들 수 있다.)

 Simple Multithreading (쉽게 멀티 스레드 개발이 가능하다.)

 LINQ and Lambda Expressions (Linq와 Lambda 식을 사용할 수 있다.)

 Integration with Windows (당연히 윈도우에 최적화 되어 있다.)


[C# 으로 개발 가능한 목록]

 Windows applications [윈도우 Desktop, Server 어플리케이션]

 Web applications [MVC를 이용해서 Java Spring처럼 웹 어플리케이션을 개발할 수있다.]

 Web services [WebAPI를 개발할 수 있다. MS에 만든 WCF로도 개발 가능하다.]


[.NET Framework 제공하는 라이브러리 목록]

 Common Language Runtime (CLR) 

 The .Net Framework Class Library 

 Common Language Specification 

 Common Type System 

 Metadata and Assemblies 

 Windows Forms 

 ASP.Net and ASP.Net AJAX 

 ADO.Net 

 Windows Workflow Foundation (WF) 

 Windows Presentation Foundation (WPF)

 Windows Communication Foundation (WCF) 

 LINQ 


현실적으로 다 공부하는 것은 불가능 하다. 그러므로 파란색 글씨로 표시한 부분을 중점적으로 학습하는것을 권장합니다.


[Helloworld.cs]




 


위 프로그램 코드 설명

 

  • 첫줄 using 키워드는 System namespace를 가져다 사용하겠다는 의미이다. 즉, Java로 생각하면 import이고 C/C++로 설명하면 #include이다.
  • namespace이다. namespace는 클래스 모음이다.( A namespace is a collection of classes.) 
  • C#은 객체 지향언어이다. 그래서 시작을 하는 프로그램 클래스를 Helloworld로 만든 것이다. 디폴트로 visualstudio 프로젝트 이름이 첫 클래스 이름이 된다.
  • 프로그램 시작 함수 Main이다. 이 함수는 프로그램 1개만 있어야 하고 static으로 선언되어야 한다.
  • Console.WriteLine 함수를 이용해서 화면에 "Hello World"를 출력한다.
  • Console.ReadKey() 이 함수를 이용해서 사용로부터 키 입력을 대기한다. 여기서는 단순하게 프로그램 종료를 막기위해서 사용한 함수 이다. 


 다음 블로그 주제는 C# 키워드 및 Value Type에 대해서 알아볼 예정입니다.


참고 : http://www.tutorialspoint.com/csharp/index.htm