C#이란?

송민경's avatar
Nov 07, 2024
C#이란?

1. C#

  • 마이크로소프트에서 개발한 객체 지향 프로그래밍 언어
  • .NET 프레임워크 위에서 동작하도록 설계
  • 주로 Windows 환경에서 애플리케이션을 개발하는 데 사용 특히 데스크톱, 웹, 모바일, 게임 등 다양한 분야에 적합
  • C, C++의 문법 스타일을 기반
  • 객체 지향, 제네릭, LINQ 같은 기능을 지원해 코드의 효율성과 유지보수성을 높일 수 있음
 

2. C#과 Java 비교

  • 기본 플랫폼
    • C#
      • Windows 환경의 .NET 프레임워크 위에서 실행 .NET 프레임워크 : .NET Core 및 .NET 5 이후의 .NET 플랫폼 포함
      • .NET : 크로스 플랫폼을 지원 Windows뿐 아니라 Linux와 macOS에서도 C# 사용 가능
    • Java
      • Java Virtual Machine(JVM) 위에서 실행 플랫폼 독립적이기 때문에 거의 모든 운영체제에서 실행 가능
  • 문법적 유사성
    • C 기반의 언어
    • 클래스 구조나 기본 제어문(if, for, while 등)은 거의 동일
    • Java
      • 플랫폼 독립성이 목표
      • JVM과 함께 발전, 오픈 소스 생태계와의 연동에 초점을 맞추고 있음
    • C#
      • .NET의 통합 플랫폼을 통해 빠르게 변화하는 클라우드, 웹, 데스크톱 애플리케이션 개발에 최적화된 기능들을 추가하고 있음
  • 메모리 관리
    • C#
      • 자동 메모리 관리를 위해 가비지 컬렉션(Garbage Collection)을 사용
      • 개발자가 Dispose() 메서드를 호출하거나 using 구문을 사용하여 명시적으로 메모리를 관리
    • Java
      • 가비지 컬렉션을 지원
      • 명시적인 메모리 해제보다는 JVM이 메모리를 관리
  • 특징과 기능
    • C#
      • LINQ(Language Integrated Query)와 같은 데이터 조작 기능을 제공하여 SQL과 유사한 문법으로 데이터를 다룰 수 있음 LINQ(Language Integrated Query) : C#과 .NET에서 제공하는 쿼리 구문
      • 네임스페이스, 속성(attribute), 이벤트, 델리게이트(delegate) 등의 기능도 있어 고급 프로그래밍이 가능
    • Java
      • Android 앱 개발에 널리 사용
      • 큰 커뮤니티와 다양한 오픈 소스 라이브러리를 제공, 안정성과 플랫폼 독립성에 강점이 있음
  • 런타임 환경
    • C#
      • .NET CLR(Common Language Runtime) 위에서 실행
      • .NET은 런타임에서 다양한 언어(C#, F#, VB.NET 등)를 지원, 상호 호환성과 유연성이 높음
    • Java
      • JVM 위에서 실행
      • Java 코드를 바이트 코드로 변환하여 JVM이 이를 실행
      • 플랫폼 독립성을 가지며 다양한 환경에서 일관된 성능 발휘
  • 커뮤니티와 생태계
    • C#
      • .NET 생태계와 Microsoft Azure 같은 클라우드 서비스와 강하게 연동
      • Visual Studio가 주 IDE로 많이 사용
    • Java
    • 오픈 소스 생태계가 큼
    • Apache, Spring Framework와 같은 다양한 라이브러리와 툴을 제공
Share article

vosw1