본문 바로가기
프로그래밍 언어/C#

C# 1. C# 들어가기에 앞서

by Jinger 2023. 9. 7.

서론

    내 블로그 중 유니티의 내용이 많다. 예시로 보여주는 C#의 코드를 읽을 수 있게 그리고 나의 기초를 다잡기 위해 C#을 정리해 보자.


C# 소개

    C#은 마이크로소프트에서 개발한 개체 지향 프로그래밍 언어로, 데스크톱, 앱, 모바일, 게임 프로그램 등 다양한 분야에서 널리 사용되고 있다. 하지만, 다른 몇몇 프로그래밍 언어에 비해 2000년에 처음 등장했다는 점에서 라이브러리와 활용처가 초기에는 제한적이었다. 그러나 시간이 지남에 따라 C#은 지속적으로 발전하며 최신 기술에 맞추어 업데이트되고 있다. 이러한 발전 덕분에 C#은 현재는 강력한 프로그래밍 언어로 자리 잡았으며, 다른 언어와 비교할 때 여러 가지 장점을 가지고 있다. 예를 들어, C#은 안정성, 생산성, 다양한 플랫폼 지원, 풍부한 라이브러리 생태계, 그리고 커뮤니티의 활발한 지원 등을 통해 개발자들에게 매우 유용한 언어로 인정받고 있다. 이 블로그에서는 C#의 이러한 장점과 함께 프로그래밍의 다양한 측면을 다루어보겠다.

특징

  • C#은 .NET(닷넷)을 위한 많은 언어 중 하나로, 마이크로소프트의 닷넷 플랫폼을 기반으로 한다.
  • 절차적 언어와 개체 지향적 언어의 특징, 그리고 함수형 프로그래밍 스타일을 제공하는 다중 패러다임 프로그래밍 언어이다.
  • C#은 C, C++, Java, js와 기초 문법이 비슷하다.
  • C#은 자동으로 메모리를 관리한다.
  • C#은 컴파일 기반 언어이다.
  • C#은 C나 Js와 달리 전역 함수나 변숙가 없고, 모두 클래스 안에서 생성된다.
  • C#은 강력한 형식의 언어이다.
  • C#은 제네릭과 LINQ의 편리한 기능을 제공한다.
더보기
  • 절차적 언어 (Procedural Language)
    • 절차적 언어는 프로그램을 순차적인 단계로 구성하고 실행하는 프로그래밍 언어이다.
    • 이러한 언어에서는 주로 함수 또는 서브루틴을 사용하여 코드를 모듈화하며, 코드의 흐름을 명시적으로 제어한다.
    • C와 Pascal 같은 언어가 절차적 언어의 대표적인 예이다.
  • 개체 지향적 언어 (Object-Oriented Language)
    • 개체 지향적 언어는 프로그램을 객체(데이터와 그를 조작하는 메서드의 조합)로 구성하고 이 객체 간의 상호 작용을 중심으로 프로그래밍하는 언어이다.
    • 클래스와 객체라는 개념을 기반으로 하며, 상속, 다형성, 캡슐화 등의 개념을 통해 코드의 재사용성과 유지 보수성을 향상시킨다.
    • Java, C#, Python 등이 개체 지향적 언어의 예이다.
  • 닷넷(.NET)
    • .NET은 Microsoft가 개발한 프레임워크로, 다양한 언어를 지원하는 플랫폼이다.
    • C#, Visual Basic, F# 등과 같은 언어를 사용하여 Windows 애플리케이션, 웹 애플리케이션, 서비스, 라이브러리 등을 개발할 수 있다.
    • .NET 프레임워크는 공통 언어 런타임 (CLR)과 풍부한 클래스 라이브러리를 포함하며, 개발자들에게 생산성과 유지 보수성을 제공한다.
  • 컴파일 (Compile)
    • 컴파일은 소스 코드를 기계어나 중간 언어로 변환하는 과정을 의미한다.
    • 컴파일러는 소스 코드를 읽어들여 기계어나 중간 코드로 변환하고, 이 변환된 코드는 실행 가능한 프로그램으로 사용된다.
    • C#과 같은 정적 언어는 주로 컴파일 방식을 사용한다.
  • 인터프리터 (Interpreter)
    • 인터프리터는 소스 코드를 한 줄씩 읽어들여 직접 실행하는 프로그램 또는 환경을 의미한다.
    • 인터프리터 언어는 코드 수정과 실행이 즉시 반영되기 때문에 빠른 개발과 디버깅에 용이한다.
    • Python과 JavaScript는 대표적인 인터프리터 언어이다.
  • 제네릭 (Generics)
    • 제네릭은 데이터 형식이나 클래스를 일반화하여 여러 다른 데이터 형식에서 재사용할 수 있게 하는 프로그래밍 개념이다.
    • 제네릭을 사용하면 코드의 유연성과 안정성을 향상시킬 수 있으며, 코드 중복을 줄일 수 있다.
    • C#과 Java와 같은 언어에서 제공되며, 컬렉션 라이브러리 등에서 많이 활용된다.
  • LINQ (Language-Integrated Query)
    • LINQ는 .NET 언어 (주로 C#)에서 데이터 집합을 쿼리하고 조작하기 위한 통합 언어 확장이다.
    • SQL과 유사한 쿼리 구문을 사용하여 데이터베이스, 컬렉션, XML 등 다양한 데이터 소스를 쉽게 조작할 수 있다.
    • LINQ를 사용하면 코드의 가독성과 유지 보수성을 향상시킬 수 있으며, 데이터 처리를 간결하게 할 수 있다.

닷넷(.NET)

    닷넷(.NET)은 소프트웨어 프레임워크로, 응용 프로그램의 개발 속도를 높이는 데 도움이 되는 API(Apllication Programming Interface) 및 서비스 모음이다. 닷넷을 사용하면  LINQ 기능으로 쉽게 프로그래밍할 수 있다. 닷넷은 내부적으로 CLR(Common Language Runtime)(런타임 엔진으로 닷넷의 모든 소프트웨어를 돌리는 엔진 역할)과 FCL(Framework Class Library)(닷넷 개발에 필요한 필수 라이브러리 클래스의 집합)로 구분된다.

닷넷 프레임워크(.NET Framework)

    닷넷 프레임워크(.NET Framework)는 Microsoft에서 처음으로 개발한 프레임워크로, Windows 운영 체제에서 실행되는 응용 프로그램을 개발하는 데 사용된다.

닷넷코어(.NET Core)

    .NET Core는 Microsoft에서 개발한 오픈 소스로, 크로스 플랫폼 개발을 위한 경량 버전의 .NET 프레임워크이다. Windows, macOS, Linux와 같은 다양한 운영 체제에서 실행 가능한 애플리케이션을 개발할 수 있다. .NET Core는 모듈화된 설계를 통해 필요한 라이브러리만 포함시킬 수 있어 애플리케이션 크기를 줄이고 성능을 최적화할 수 있다.

자마린(Xamarin)

    C# 프로그래밍 언어를 사용하여 모바일 응용 프로그램을 제작할 수 있다. 이때 사용할 수 있는 기술이 자마린(Xamarin)이다. 자마린을 사용하면 IOS, 안드로이드 기반 모바일 응용 프로그램을 C#과 XAML 기술로 만들 수 있다. Xamarin은 Microsoft에서 개발한 도구와 프레임워크로, C# 및 .NET을 사용하여 iOS, Android, macOS 등 다양한 플랫폼용 네이티브 모바일 애플리케이션을 개발할 수 있게 해준다. Xamarin.Forms를 사용하면 하나의 코드베이스로 여러 플랫폼을 대상으로 하는 사용자 인터페이스를 만들 수 있다. 개발자는 C# 언어와 .NET 라이브러리를 활용하여 모바일 애플리케이션을 개발할 수 있어 생산성을 향상시킨다.

닷넷 스탠다드(.NET Standard)

    .NET Standard는 여러 .NET 구현체 (예: .NET Framework, .NET Core) 간의 이식성을 개선하기 위한 표준 규격이다. .NET Standard를 준수하는 라이브러리는 여러 .NET 구현체에서 사용할 수 있어 코드 재사용성을 향상시킨다. .NET Standard 버전은 이식성을 제공하는 .NET 구현체 버전과 관련이 있으며, 버전이 높을수록 더 많은 API를 지원한다.

유니티(Unity)

   닷넷 생태계에 직접적으로 포함되지 않지만, 유니티는 C#을 많이 사용하고 유명한 사용처이다.


주섬주섬

    "C# 교과서"<박용준/길벗>의 도서를 참고하여 제작되었다. 이해 못 하는 내용은 가볍게 넘어가도 상관이 없다.

참고자료

 

C# 교과서

더북(TheBook): (주)도서출판 길벗에서 제공하는 IT 도서 열람 서비스입니다.

thebook.io

 

반응형

'프로그래밍 언어 > C#' 카테고리의 다른 글

C# 3. 변수와 입력문  (1) 2023.10.04
C# 2. 출력문  (0) 2023.09.10
C# 특징과 비교  (1) 2023.09.01
C# 전처리기 지시문  (0) 2023.07.05
C# 네이밍  (0) 2023.06.12

댓글