struct: 기본이 public
class: 기본이 private
struct: 기본이 public
class: 기본이 private
struct: 단순 데이터 묶음(POJO, POD)용
class: 캡슐화, 기능/행동이 있는 객체용
내부적으로 동적 배열 사용
임의 접근(O(1)) 가능
중간 삽입/삭제는 느림(O(n))
메모리가 연속적
내부적으로 이중 연결 리스트 사용
임의 접근 불가, 순차 접근만 가능(O(n))
중간 삽입/삭제 빠름(O(1))
메모리 불연속적
동적 문자열, C++의 std::string과 유사
가변 문자열, 메모리 할당 있음
해시 기반 불변 문자열
비교 속도 빠르고 메모리 절약됨 (이름 기반 식별자용)
로컬라이징(다국어 지원)용 텍스트
UI 표시용 문자열
정의 : 현실 세계의 객체를 모델링해 데이터(속성)와 기능(행동)을
하나의 단위로 묶어 표현하는 프로그래밍 패러다임
핵심 개념: 코드의 재사용성, 유지보수성, 확장성을 높이는 구조적 사고방식
같은 인터페이스로 서로 다른 동작을 구현
예: 가상 함수, 오버라이딩
정의 : 동일한 자료형의 데이터를 연속된 메모리 공간에 저장하는 자료구조
특징 : 인덱스를 통한 빠른 접근(O(1))
크기 고정 AND 삽입/삭제 비효율적
프로세스: 실행 중인 프로그램의 인스턴스 (독립된 메모리 공간 가짐)
스레드: 프로세스 내에서 실행되는 작업 단위 (메모리 공유)
비유: 프로세스는 집, 스레드는 그 안의 사람들
스레드는 자원 공유로 빠르지만 동기화 이슈 있음
프로세스는 안정적이지만 전환 비용이 큼
원인 : 함수의 무한 재귀 호출 / 지역 변수의 과도한 메모리 사용
해결방법 : 재귀 종료 조건 확인 / 반복문으로 대체
/ 지역 변수 대신 동적 할당(new, malloc) 사용
데이터의 종류와 크기를 정의
메모리에서 어떻게 저장되고 연산되는지를 결정
예: int, float, bool, char
데이터를 저장할 수 있는 이름 있는 메모리 공간
프로그램 실행 중 값 변경 가능