struct checklist

구조체는 도메인 데이터를 이름 있는 타입으로 고정한다

튜플보다 의미가 분명해야 할 때 구조체를 정의하고, 인스턴스 생성과 필드 접근, 업데이트 문법, 소유권 이동 여부를 함께 읽습니다.

1

타입 이름

User, Color, AlwaysEqual처럼 묶음 자체의 의미를 타입 이름으로 먼저 정합니다.

2

필드 구성

일반 구조체는 email: String처럼 이름과 타입을 적어 순서 의존을 줄입니다.

3

인스턴스 생성

구조체 이름 뒤 중괄호에 필드 값을 넣고, mut이면 점 표기법으로 값을 바꿀 수 있습니다.

4

재사용 문법

필드명과 변수명이 같으면 축약하고, ..user1은 남은 필드를 기존 인스턴스에서 가져옵니다.

형태별 선택 기준

named fields

필드 의미가 중요하고 읽는 사람이 user.email처럼 이름으로 접근해야 할 때 사용합니다.

tuple struct

Color(i32, i32, i32)처럼 같은 모양의 튜플을 서로 다른 타입으로 구분하고 싶을 때 씁니다.

unit-like

저장할 필드는 없지만 특정 타입에 트레이트 구현을 붙이고 싶을 때 struct AlwaysEqual;처럼 둡니다.

소유권까지 같이 확인

구조체가 String을 필드로 가지면 인스턴스가 그 데이터를 소유합니다. ..user1로 새 인스턴스를 만들 때 소유 타입 필드가 이동되면 원본 인스턴스를 더 이상 온전히 사용할 수 없습니다.

핵심 답안 문장

구조체는 관련 데이터를 하나의 타입으로 묶고 각 필드에 이름을 부여해 의미를 명확히 하는 문법이며, 인스턴스 생성과 업데이트 문법에서는 필드 값의 소유권 이동 여부를 함께 고려해야 합니다.

struct field instance shorthand ..update ownership