![[코드가 환경을 모르는 구조 4/7] 타임머신 — 시간 축을 교체한다](https://cdn.sanity.io/images/v31psllp/production/6a70f8e2c090762cbd4b1a9d470f573cbc0fc038-1684x1030.png)
4
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
이 게시물은 HR SaaS에서 시간을 교체 가능한 Port로 만들어 디버깅과 시뮬레이션을 가능하게 한 구현과 규율을 설명합니다.
핵심 아이디어
- 시간을 Clock 인터페이스라는 Port로 추상화해 Adapter 교체로 현재 시점 재정의
- HTTP 헤더(FlexTeam-Debug-DateTime)를 받아들이는 Clock Adapter로 특정 요청만 미래/과거 시점으로 실행
- Servlet 필터로 ThreadLocal에 시간 주입, 비동기 경계마다 컨텍스트 전파로 요청 단위 일관성 유지
- 환경별 활성화와 감사 로그·응답 헤더 표기로 프로덕션 안전 제어
- 규율(모든 비즈니스 코드의 Clock 주입, 리뷰 관행)이 교체 가능성의 핵심, 서드파티 라이브러리와 Kafka 재처리의 한계 존재
![[미래를 담아낸 뼈대 5/7] 코드가 환경을 모르는 구조](https://cdn.sanity.io/images/v31psllp/production/626db41a03292c4b57863b75c7bc5e755e395184-1684x1030.png)
![[코드가 환경을 모르는 구조 1/7] 코드는 무엇을, 환경은 어디서 - 다시 더 깊이](https://cdn.sanity.io/images/v31psllp/production/d7669e80f5e28954ae4a8e30b97d6d297e7f7c35-1684x1030.png)
![[미래를 담아낸 뼈대 1/7] 컴파일이 지키는 아키텍처](https://cdn.sanity.io/images/v31psllp/production/1f5ee4bdfd63e6846d79a6a0a9787e84e6e74208-1684x1030.png)