--- kind: CONCEPT slug: messaging-inbox-jdbc-postgresql-c07 title: 커넥션을 요청하기 전에 거절하도록 고정한 테스트 topic: result-and-failure-algebra project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:messaging-inbox-jdbc-postgresql-c07 evidenceCapturedOn: 2026-09-01 assets: - key: messaging-inbox-jdbc-postgresql-c07 file: ../../../final/evidence/rendered/messaging-inbox-jdbc-postgresql-c07.svg evidence: - ../../../final/evidence/raw/messaging-inbox-jdbc-postgresql-c07.txt source: - 원본 분석 절은 final/document.md#a19-messaging-inbox-jdbc-postgresql#L581 이다. module: messaging-inbox-jdbc-postgresql --- # 커넥션을 요청하기 전에 거절하도록 고정한 테스트 한 결함이 두 파일에 기록돼 있고, 그중 하나가 그것을 막는 테스트다. 그 테스트는 거절 시점까지 고정한다 — DataSource가 커넥션을 요청받는 순간 테스트가 실패하도록 만들어 두었다. ## 관계 - **컬럼 폭은 애플리케이션 검증과 짝을 이룬다** 같은 분석 리프에서 끌어낸 규칙이다. - **같은 안전 규칙은 한 공식과 한 강제 시점을 갖는다** 같은 분석 리프에서 끌어낸 규칙이다. ## 본문 **한 결함이 두 파일에 기록돼 있고, 그중 하나가 그것을 막는 테스트다.** `JdbcInboxRepository.reserve(Connection,…)`의 javadoc과 `JdbcInboxTransactionRequirementTest`의 javadoc이 같은 결함을 각각 구현 쪽과 테스트 쪽에서 서술한다. ## 거절 시점을 데이터 소스로 고정한다 그 테스트가 "hermetic: the refusal has to happen before any connection is requested, and the data source below fails the test by being asked for one"이라고 자기 설계를 적는다. 거절이 커넥션 요청보다 먼저 일어나야 한다는 요구를, 요청받는 것만으로 실패하는 데이터 소스를 아래에 두어 검사 순서까지 고정한 것이다. ## 이 기록이 다루는 파일 범위 :::evidence key="messaging-inbox-jdbc-postgresql-c07" alt="코드베이스에서 파일 목록을 만든 출력 6줄. 이 기록이 다루는 범위가 그 목록이다." caption="코드베이스 파일 목록 — 6줄 · exit 0" zoom="true" :::