예제 프로그램

면적 예제로 보는 구조체 리팩터링

사각형 면적 계산 예제는 낱개 변수에서 튜플을 거쳐 구조체로 옮길수록 코드가 말하는 의미가 선명해짐을 보여 줍니다.

리팩터링 기준 width와 height가 항상 함께 쓰인다면 별도 인수보다 Rectangle 구조체 하나로 묶는 편이 의도를 잘 보존합니다.

#[derive(Debug)]를 붙이면 println!의 {:?} 또는 {:#?}로 구조체 상태를 확인할 수 있습니다.

낱개 변수

계산은 가능하지만 인수 순서와 값의 관계가 함수 밖에 흩어집니다.

튜플

두 값을 묶지만 0번, 1번 위치의 의미를 계속 기억해야 합니다.

구조체

width와 height라는 이름이 계산 목적을 직접 설명합니다.

derive

Debug 구현을 자동으로 얻어 학습 중 내부 상태를 쉽게 출력합니다.

개선 흐름

디버그 출력
1
분산

면적에 필요한 값이 여러 인수로 흩어진 상태를 확인합니다.

2
묶기

튜플로 같이 전달하되 의미 부족을 체감합니다.

3
명명

구조체 필드로 바꿔 함수 시그니처와 호출부를 함께 읽기 좋게 만듭니다.

이 예제의 핵심은 성능 변화가 아니라 데이터 관계를 타입과 필드 이름으로 더 정확히 표현하는 일입니다.