개발

[에이전트] 만료됐다고 지우지 않는다, valid_until을 d_day로 바꾼 이유

jykim23 2026. 7. 15. 12:03
반응형

필드 이름 valid_until d_day 개명 만료 자동삭제 아님 중립 카운트다운 네이밍 정책

부제: 필드 이름 하나가 정책을 잘못 설명하고 있었다

기억에 "언제까지 유효한가"를 붙이고 싶었다.
부상 회복 예정일, 목표 마감일, 일시적인 계획 같은 건 시간이 지나면 의미가 바뀌니까.
그래서 만료 시점을 담는 필드를 하나 뒀고, 처음엔 이름을 valid_until이라 지었다.
bi-temporal 데이터베이스에서 흔히 쓰는 개념을 그대로 가져온 것이다.

이름이 정책을 잘못 말하고 있었다

valid_until이라는 이름은 이렇게 읽힌다.
"이 시점이 지나면 시스템이 이 기억을 무효화한다."
자동으로 유효성이 꺼지고, 아마 삭제도 되겠구나 하는 뉘앙스다.

그런데 우리 정책은 그게 아니었다.
만료됐다고 해서 그 기억을 즉시 지우지 않는다.

실제 동작은 이렇다.

  • 시간이 지났다는 것만으로는 아무 일도 안 일어난다.
  • 저장 공간이 꽉 차 어쩔 수 없이 뭔가 지워야 할 때, 그때 만료된 기억의 삭제 우선순위를 조금 높일 뿐이다.
  • 그리고 만료 시점은 컨텍스트에 주입돼, 에이전트가 "이건 지난 계획이네" 하고 대화나 판단에서 참고한다.

즉 이건 시스템이 강제하는 유효성이 아니라, 에이전트가 참고하는 중립적인 카운트다운이었다.

그래서 이름을 바꿨다

이름과 동작이 어긋나면, 다음에 코드를 여는 사람이 오해한다.
valid_until을 보고 "아, 이거 지나면 자동 삭제되는구나" 하고 그에 맞춰 다른 코드를 짤 수 있다.
실제로는 안 그러는데 말이다.

그래서 valid_untild_day로 바꿨다.
"시스템이 강제하는 유효 기한"이라는 함의를 지우고, "그냥 D-day까지 남은 중립적 앵커"라는 뜻으로.
동작은 그대로, 이름만 동작을 정확히 말하게 고친 것이다.

정리

  • 기억에 만료 시점을 담는 필드를 valid_until로 명명 (bi-temporal DB 관용어)
  • 그러나 우리 정책상 만료 = 즉시 삭제가 아님 — 공간 압박 때 도태 우선순위만 살짝 높이고, 값은 컨텍스트에 주입돼 에이전트가 참고
  • valid_until은 "시스템이 자동 무효화한다"는 오해를 부름 → 이름이 정책을 잘못 설명
  • 동작은 그대로 두고 이름만 d_day(중립 카운트다운) 로 변경

이름은 동작을 정확히 말해야 한다.
이름이 실제와 다른 걸 약속하면, 그 이름을 믿은 다음 사람의 코드가 어긋난다.
네이밍은 취향이 아니라 정책의 일부다.

반응형