C# 시작하기

Hjin·2024년 7월 12일

C#

목록 보기
1/3

유니티를 이용하여 3D VR 콘텐츠 개발을 시작하며 C# 공부를 시작했다.
Unity의 다양한 기능을 구현하기 위해서는 C# 스크립트 작성이 필수적이기에 이참에 C#을 제대로 공부해보자 !!😁 라는 생각으로 벨로그를 작성하며 학습을 시작해보려 한다.

그래도 공부를 하기 전에 C#이 무엇인지부터 알아야겠지?

C#이란?


C#은 마이크로소프트가 개발한 프로그래밍 언어로, C++과 Java의 강점을 모아 만들어졌다고 하는데, 실제로 이 두 언어의 장점을 잘 결합했다고 평가받고 있다.
재미있는 사실은 C#이라는 이름은 C++++에서 왔다는 것...! C++에서 한 단계 더 나아갔다는 의미로 네개의 +를 합쳐 '#'으로 표현했다고 한다 🤭

C#의 특징

  1. 객체 지향 언어 : 코드를 재사용하기 쉽고, 관리가 편하다.
  2. .NET 프레임워크 기반 언어 : 다양한 플랫폼에서 실행할 수 있도록 해준다.
  3. 간단한 문법 : C++보다 배우기 쉬운 문법이다.
  4. 뛰어난 안정성과 보안성 : .NET 프레임워크를 통한 장점이다.
  5. 메모리 관리 자동화 : 가비지 컬렉터가 관리해준다.

그렇다면, C#으로는 무엇을 만들 수 있을까?

C#으로 만들 수 있는 것

  • 윈도우 데스크톱 앱
  • 웹 애플리케이션
  • 모바일 앱
  • 게임 (Unity 엔진)
  • 기업용 소프트웨어
  • IoT 프로그램

특히나 Unity 게임 엔진과 함께 사용되는 경우가 많아 게임 개발에 주로 쓰이는 언어로 알려져 있다.

C#의 장단점

자, 이제 C#의 장단점에 대해 좀 더 자세히 알아보자.

<장점>
1) 배우기 쉽다.

  • 일관된 문법 구조를 가지고 있어 초보자도 쉽게 이해할 수 있다.
  • 마이크로소프트에서 제공하는 풍부한 문서와 튜토리얼이 있어 학습 자료를 찾기 쉽다.
  • 큰 개발자 커뮤니티가 형성되어 있어 도움을 받기 쉽다.

2) 다재다능하다.

  • 데스크톱 앱부터 웹, 모바일, 게임까지 다양한 종류의 애플리케이션을 개발할 수 있다.
  • Unity와의 호환성이 좋아 게임 개발에 특히 강점을 가진다.
  • .NET Core를 통해 크로스 플랫폼 개발도 가능하다.

3) 대규모 프로젝트에 적합하다.

  • 강력한 타입 시스템으로 컴파일 시점에 많은 오류를 잡아낼 수 있어 안정성이 높다.
  • 네임스페이스와 클래스를 이용해 코드를 잘 구조화할 수 있다.
  • 제네릭, 인터페이스 등의 기능으로 확장성 있는 코드를 작성하기 좋다.

4) 지속적으로 발전하고 있다.

  • 마이크로소프트가 계속해서 새로운 기능을 추가하고 있다.
  • 개발자 커뮤니티의 피드백을 적극 반영하여 언어를 개선하고 있다.
  • 최신 프로그래밍 트렌드를 빠르게 도입하고 있다.

<단점>
1) 주로 Windows 환경에 최적화되어 있다.

  • 많은 C# 라이브러리와 프레임워크가 Windows에 최적화되어 있어 다른 OS에서는 제한적일 수 있다.
  • Visual Studio라는 강력한 IDE가 Windows에서 가장 잘 작동한다.

2) Java에 비해 다른 OS에서 사용하기 어렵다.

  • Java의 "Write Once, Run Anywhere" 철학에 비해 아직은 플랫폼 종속성이 있다.
  • .NET Core와 .NET 5+ 덕분에 많이 개선되었지만, 여전히 일부 기능은 Windows에서만 사용 가능하다.

3) 시장 점유율이 다른 언어에 비해 적다.

  • 웹 개발 분야에서는 JavaScript, Python 등에 비해 점유율이 낮다.
  • 데이터 사이언스 분야에서는 Python, R 등이 더 많이 사용된다.
  • 오픈 소스 프로젝트에서는 Java, Python 등에 비해 덜 사용되는 편이다.

이렇게 장단점을 살펴보니 C#이 어떤 언어인지 조금은 감이 오는 것 같다. 특히 Unity로 게임을 개발하려는 나에게는 장점이 더 크게 다가오는데, 다른 분야의 개발자라면 어떻게 느껴질지 궁금하다.




다른 언어와 비교해보기


1. C# vs Java

<유사점>

  • 문법이 비슷함
  • 강력한 타입 시스템ㅇ르 가지고 잇음
  • 가비지 컬렉션으로 메모리를 자동으로 관리함

<차이점>

  • C#은 주로 Windows 환경에서 사용되고, Java는 더 다양한 플랫폼에서 사용됨.
  • C#은 .NET 프레임워크를, Java는 JVM을 사용함.
  • C#은 LINQ, 프로퍼티같은 편리한 기능을 제공함.

즉, 윈도우 개발이 주요하다면 C#, 크로스 플랫폼 개발이 중요하다면 Java가 좋을 수 있음.



2. C# vs Python

<유사점>

  • 객체 지향 프로그래밍을 지원함.
  • 풍부한 라이브러리와 프레임워크를 가지고 있음.

<차이점>

  • Python은 인터프리터 언어, C#은 컴파일언어임.
  • Python은 동적 타입, C#은 정적 타입언어임.
  • Python이 더 간격한 문법을 가지고 있음.
  • 성능 면에서는 Python보다 C#이 우수함.

빠른 개발이 필요하거나 데이터 분석, AI 관련 작업을 한다면 파이썬, 대규모 애플리케이션이나 게임 개발을 한다면 C#이 좋을 수 있음.



3. C# vs. C++

<유사점>

  • 문법이 비슷함.
  • 객체 지향 프로그래밍을 지원함.

<차이점>

  • C++은 수동 메모리 관리, C#은 자동 메모리 관리르 함.
  • C++은 더 낮은 수준의 시스템 프로그래밍이 가능함.
  • C#은 .NET 프레임워크의 풍부한 라이브러리를 사용할 수 있음.

시스템 프로그래밍이나 하드웨어 제어가 필요하다면 C++, 윈도우 애플리케이션이나 게임 개발을 한다면 C#.



4.C# vs JavaScript

<유사점>

  • 객체 지향 프로그래밍을 지원함.

<차이점>

  • JS는 주로 웹 프론트엔드 개발에 사용되고, C#은 벡엔드나 데스크톱 앱 개발에 주로 사용됨.
  • JavaScript는 동적 타입, C#은 정적 타입 언어임.
  • C#은 더 강력한 타입 시스템과 컴파일 시점 체크를 제공함.

웹 프론트엔드 개발이 주라면 JS, 그 외의 대부분의 경우에는 C#이 더 적합할 수 있음.

모든 상황에서 완벽한 언어는 없지만, 이렇게 비교를 통해 C#에 대한 이해도는 높아졌을 것이라 기대하며 C# 첫 포스팅을 마무리해본다.🥰

profile
HYU Information System

0개의 댓글