클래스(Class)와 구조체(Struct)

황현중·2025년 11월 17일

C#

목록 보기
1/24

C#에서 클래스(Class)와 구조체(Struct)는 매우 비슷해 보이지만, 실제로는 메모리 구조부터 사용 목적까지 완전히 다른 두 자료구조입니다.
실무에서도 둘의 차이를 잘 이해해야 적절한 선택을 할 수 있습니다.


1️⃣ 공통점

  • 둘 다 사용자 정의 타입(User-Defined Type)이다.
  • 필드(Field), 메서드(Method), 속성(Property) 등을 가질 수 있다.
  • 생성자(Constructor)를 선언할 수 있다.
  • 인터페이스(interface)를 구현할 수 있다.
  • 캡슐화(Encapsulation)가 가능하다.

2️⃣ 차이점 요약 비교표

구분 클래스 (Class) 구조체 (Struct)
메모리 저장 위치 힙(Heap) — 참조 타입 스택(Stack) — 값 타입
타입 종류 Reference Type Value Type
저장 방식 변수는 주소(참조)를 저장하고, 실제 데이터는 힙에 저장 값 자체가 스택에 저장됨
할당 방식 참조 복사 (같은 객체를 가리킴) 값 복사 (완전히 독립적인 사본 생성)
상속 지원 가능 (상속 구조 설계 가능) 불가능 (인터페이스만 구현 가능)
생성자 기본 생성자, 사용자 정의 생성자 모두 가능 사용자 정의 생성자 가능하지만 기본 생성자는 선언 불가
기본값 null (참조 타입이므로) 모든 필드가 0 또는 기본값으로 초기화
언제 사용? 복잡한 데이터, 많은 기능, 상속이 필요한 경우 작고 가벼운 데이터 구조 (Vector, Point 등)

0개의 댓글