오늘은 C#에 대해 학습하고 그 특징을 정리해 보았습니다.


C#이란?

C#은 2000년 마이크로소프트에서 발표한 프로그래밍 언어입니다.
기본적으로 C/C++ 언어에서 파생되었으며, C++의 강력한 성능과 Java의 편리함 및 안전성을 결합하여 만들어졌습니다.

현재 윈도우 애플리케이션 개발뿐만 아니라, 유니티(Unity) 엔진의 주력 스크립트 언어로 사용되어 게임 개발자에게는 필수적인 언어로 자리 잡았습니다.

 

C#의 3가지 핵심 특징

강력한 타입 시스템

  • C#은 변수를 생성할 때 해당 변수 안에 어떤 종류의 데이터가 들어갈지 미리 엄격하게 선언해야 합니다.
  • 이로 인해 코드를 실행하기 전인 컴파일 단계에서 오류를 미리 발견할 수 있어 프로그램의 안정성이 크게 높아집니다.

자동 메모리 관리

  • C나 C++에서는 개발자가 직접 메모리를 할당하고 해제해야 하는 번거로움과 위험이 있습니다.
  • 반면 C#은 가비지 컬렉터(Garbage Collector)가 백그라운드에서 실행되며 더 이상 사용하지 않는 메모리를 자동으로 찾아내어 청소해 줍니다. 덕분에 개발자는 메모리 누수 걱정 없이 로직 구현에만 집중할 수 있습니다.

.NET 플랫폼과 JIT 컴파일

  • 코드를 작성하면 바로 실행 파일(EXE)의 기계어로 변환되는 것이 아니라, 일단 중간 언어(IL, Intermediate Language)로 1차 컴파일됩니다.
  • 이후 프로그램을 실제 실행하는 시점에 JIT(Just-In-Time) 컴파일러가 이 중간 언어를 해당 컴퓨터 환경에 맞는 기계어로 번역하여 실행합니다. 이를 통해 다양한 운영체제와 하드웨어 환경에서 유연하게 동작할 수 있습니다.

 

C#의 객체 지향 프로그래밍 (OOP)

C#의 가장 큰 특징은 철저한 객체 지향 언어(Object-Oriented Programming, OOP)라는 점입니다.

OOP란?
프로그램을 단순히 명령어의 나열로 보는 것이 아니라, 현실 세계의 사물을 컴퓨터 세계 속 객체로 만들고, 이 객체들을 조립하고 상호작용하게 하여 프로그램을 만드는 방식입니다.

  • 클래스 (Class): 객체를 만들기 위한 설계도나 틀 (예: 붕어빵 틀)
  • 객체 (Object): 클래스라는 틀을 바탕으로 메모리상에 실제로 만들어진 실체 (예: 팥 붕어빵, 슈크림 붕어빵)

 

4. OOP의 4대 핵심 원칙

객체 지향 프로그래밍을 제대로 활용하기 위해 반드시 알아야 할 4가지가 있습니다.

  1. 캡슐화 (Encapsulation)
    • 관련된 데이터와 기능을 하나의 클래스 안에 묶는 것입니다.
    • 외부에서 함부로 접근하면 안 되는 중요한 내부 데이터는 숨기고(정보 은닉), 필요한 기능만 밖으로 노출해 안전하게 보호합니다.
  2. 상속 (Inheritance)
    • 이미 만들어진 부모 클래스의 특성(데이터와 기능)을 자식 클래스가 그대로 물려받는 것입니다.
    • 중복되는 코드를 다시 작성할 필요가 없어 코드의 재사용성이 매우 높아집니다.
  3. 다형성 (Polymorphism)
    • 같은 이름의 명령이나 메서드가 상황이나 객체에 따라 다르게 동작하는 성질입니다.
    • (예: 공격이라는 명령을 내렸을 때, 검사는 칼을 휘두르고 마법사는 마법을 쓰는 것처럼 각자 다르게 반응함)
  4. 추상화 (Abstraction)
    • 복잡한 세부 사항은 숨기고, 프로그램에 꼭 필요한 핵심적인 특징과 기능만을 추출하여 모델링하는 과정입니다.

+ Recent posts