생성자는 객체의 필수 조건을 한 번에 완성한다
repository와 audit 계약이 모두 전달된 뒤에만 PostService가 사용 가능한 상태가 된다.
필수 계약을 한 번에 결합
Constructor
MemberRepository
등록·조회에 반드시 필요한 계약
AuditSink
항상 호출 가능한 실제 또는 no-op 구현
Constructor
null을 거부하고 final field 완성
PostService
Spring 없이도 직접 테스트 가능