C# 최종 수정일 2026-06-18 17:55 조회수 4
대시보드

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」