생성자는 객체의 필수 조건을 한 번에 완성한다

repository와 audit 계약이 모두 전달된 뒤에만 PostService가 사용 가능한 상태가 된다.

1. MemberRepository

등록·조회에 반드시 필요한 계약

2. AuditSink

항상 호출 가능한 실제 또는 no-op 구현

3. Constructor

null을 거부하고 final field 완성

4. PostService

Spring 없이도 직접 테스트 가능