C#
기본 정보
- 이름: C# (C Sharp)
- 분류: 객체지향 프로그래밍 언어
- 개발사: Microsoft
- 최초 공개: 2000년
- 개발자: 앤더스 헤일스베르그 (Anders Hejlsberg)
- 실행 환경: .NET
- 주요 용도: Windows 프로그램, 웹 개발, 게임 개발, 모바일 앱, 클라우드 서비스
- 관련 주제: #CSharp #닷넷 #Unity #ASP.NET #객체지향
개요
C#은 Microsoft가 개발한 객체지향 프로그래밍 언어로, .NET 플랫폼에서 실행된다.
Java와 C++의 장점을 결합하여 설계되었으며, 현재는 웹 개발, 데스크톱 프로그램, 게임 개발(Unity), 클라우드 서비스, 모바일 앱 등 다양한 분야에서 사용되고 있다.
주요 특징
- 객체지향 프로그래밍 지원
- 강력한 타입 검사
- Garbage Collection 지원
- .NET 생태계 활용
- LINQ 지원
- 비동기 프로그래밍 지원
- 크로스 플랫폼(.NET Core/.NET)
Hello World
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello C#");
}
}
변수
string name = "구름";
int age = 30;
double score = 99.5;
bool admin = true;
데이터 타입
기본형
- bool
- byte
- char
- int
- long
- float
- double
- decimal
참조형
- string
- object
- class
- array
- interface
조건문
if(age >= 20)
{
Console.WriteLine("성인");
}
else
{
Console.WriteLine("미성년자");
}
반복문
for(int i=0;i<5;i++)
{
Console.WriteLine(i);
}
메서드
static int Add(int a,int b)
{
return a+b;
}
클래스
class User
{
public string Name;
public int Age;
}
객체 생성
User user = new User();
user.Name = "구름";
user.Age = 30;
생성자
class User
{
public User()
{
}
}
객체 생성 시 자동으로 호출된다.
프로퍼티(Property)
public string Name { get; set; }
public int Age { get; set; }
필드보다 프로퍼티 사용이 일반적이다.
상속
class Animal
{
}
class Dog : Animal
{
}
인터페이스
interface IMove
{
void Run();
}
다형성과 의존성 분리에 활용된다.
예외 처리
try
{
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
}
컬렉션
List
List<string> list = new();
list.Add("PHP");
Dictionary
Dictionary<string,int> map = new();
map.Add("age",30);
LINQ
var result = users.Where(x => x.Age >= 20);
LINQ(Language Integrated Query)는 C#의 대표적인 기능으로 데이터를 쉽게 조회하고 가공할 수 있다.
비동기 처리
public async Task Load()
{
await Task.Delay(1000);
}
async/await를 사용하여 비동기 작업을 간결하게 구현할 수 있다.
ASP.NET Core
C#으로 웹 애플리케이션과 REST API를 개발하는 대표적인 프레임워크이다.
주요 기능
- MVC
- Razor Pages
- REST API
- SignalR
- Identity
- Dependency Injection
Entity Framework Core
.NET에서 가장 많이 사용하는 ORM(Object Relational Mapping) 프레임워크이다.
var users = context.Users.ToList();
SQL 작성 없이 객체 기반으로 데이터베이스를 사용할 수 있다.
Unity
Unity 게임 엔진은 C#을 공식 스크립트 언어로 사용한다.
활용 분야
- 모바일 게임
- PC 게임
- VR/AR
- 메타버스
- 시뮬레이션
.NET 플랫폼
대표 구성 요소
- .NET Runtime
- ASP.NET Core
- Entity Framework Core
- Blazor
- MAUI
- Windows Forms
- WPF
주요 활용 분야
- 웹 개발
- REST API
- Windows 프로그램
- 게임 개발
- 모바일 앱
- 클라우드 서비스
- AI 및 데이터 처리
- 기업용 시스템
장점
- 문법이 직관적
- 객체지향 설계
- 생산성이 높음
- Visual Studio 지원
- 강력한 IDE 환경
- Unity 개발 가능
- Microsoft 생태계와 높은 호환성
단점
- .NET 환경에 대한 이해 필요
- C/C++보다 하드웨어 제어 범위가 제한적
- 메모리 사용량이 비교적 큰 편
- 초보자에게 객체지향 개념이 어려울 수 있음
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
- .NET 최신 LTS 버전 사용
- Dependency Injection 활용
- async/await 적극 사용
- Entity Framework Core 사용
- Nullable Reference Type 활성화
- Clean Architecture 적용
- SOLID 원칙 준수
- xUnit/NUnit 기반 테스트 작성
- Serilog 등 로그 라이브러리 활용
- 코드 분석 도구 적용
C#과 함께 사용하는 기술
대표 개발 도구
- Visual Studio
- Visual Studio Code
- Rider
- .NET CLI
관련 문서
출처
- Microsoft Learn - C#
- .NET 공식 홈페이지
- 위키백과 「C Sharp」