필요성
외부 함수가 내부 표현을 알아야만 더 자연스러운 API가 되는지 확인합니다.
private 접근이 필요한 이유가 명확하고 대체 설계보다 의도가 선명할 때만 friend를 제한적으로 사용합니다.
외부 함수가 내부 표현을 알아야만 더 자연스러운 API가 되는지 확인합니다.
함수 하나인지 클래스 전체인지 최소 권한 단위로 공개합니다.
friend 관계는 상속되거나 다른 함수로 퍼지지 않는다는 점을 기억합니다.
public 함수, getter, 비friend 대안을 먼저 봅니다.
operator<<처럼 왼쪽 피연산자가 외부 타입이고 내부 출력 형식이 필요한 경우입니다.
테스트 편의나 임시 디버깅 때문에 private 상태를 넓게 열어 두는 경우입니다.
friend를 쓸 때의 기준은 더 많이 보이게 하는 것이 아니라 필요한 한 지점만 정확히 보이게 하는 것입니다.