Struct vs Class

윤이령·2026년 4월 20일

struct가 “문법 의미 있는 건 C#뿐”이고,
나머지는 거의 스타일/대체 개념이다
C++ → 표현용 차이
C# → 동작 자체가 다름 (핵심)
Java → struct 없음 → class로 해결
Python → 아예 구분 안 함

C++ -> 의미(스타일) 차이

  • 코드 읽는 사람을 위한 신호
  • 기능은 동일
    • struct = public 기본
    • class = private 기본
  • 실무적으로 ->
    • struct → 데이터 묶음
    • class → 로직 있는 객체

C# -> 완전히 다른 타입

  • C#에서는 struct를 잘못 쓰면 버그 + 성능 문제 둘 다 터짐
  • 성능 / 메모리 / 동작 방식 다름
    • struct → 값 타입 (복사됨)
    • class → 참조 타입 (주소 공유)

Java -> struct 없음, class 하나로 통일

  • 전통: 무조건 class
  • 최신: record로 데이터 표현

Python -> 완전 자유형

  • 모든 게 객체 (class)
  • struct 개념 없음
  • ex)
    • dataclass → 데이터용
    • namedtuple → 가볍고 불변

0개의 댓글