inblog logo
|
vosw1
    C#

    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

    RSS·Powered by Inblog