멤버 경계

클래스 설계: 멤버를 어디에 공개할지 정하는 일

클래스 안에 넣을 후보가 생기면 먼저 값인지 행동인지, 외부 약속인지 내부 보조인지, 잘못 바뀌면 불변식이 깨지는지 묻습니다.

클래스 멤버 공개 판단 순서

1. 객체의 상태 여부

값이 객체마다 달라지고 직접 바꾸면 위험하면 private 후보입니다.

2. 외부 의존 행동 여부

호출자가 사용해야 하는 기능이면 검증을 포함한 public 함수로 둡니다.

3. 내부 계산 보조 여부

구현 편의를 위한 함수는 공개하지 않고 교체 가능한 내부로 남깁니다.

private data

상태 보호

age, speed, balance처럼 유효 범위가 있는 값은 직접 대입을 막습니다.

public method

안전한 약속

setAge(), brake()처럼 검증 뒤 상태를 바꾸는 경로만 공개합니다.

helper

구현 세부

출력 포맷, 계산 보정, 내부 검사처럼 바뀔 수 있는 코드는 외부 약속에서 숨깁니다.

object

메시지로 상호작용

다른 객체는 필드를 만지지 않고 공개 함수 호출로 요청을 보냅니다.