자원 낭비로 판단한 측정 하나를 완전히 껐고, 그 과정에서 테스트가 실거래 원장에 가짜 기록을 남기고 있던 걸 찾아 정리했습니다.
self-ρ 측정을 전면 퇴역시켰다
self-ρ는 같은 모델을 같은 입력으로 다시 돌려서 결과가 얼마나 안정적인지 재는 측정입니다. 배치 끝, 오후 시간대, 월 1회 전체 재현 등 여러 자리에서 자동으로 돌고 있었습니다.
그런데 LLM 샘플링 온도 자체가 결과를 흔드는 변수라는 걸 다시 확인하고 나니, 이 측정을 계속 자동으로 돌리는 게 자원 낭비라는 결론이 나왔습니다. 온도 하나로 결과가 갈리는 걸 알면서 같은 자리에서 반복 측정을 도는 게 의미가 약하다는 판단입니다.
그래서 오늘 이 측정으로 들어가는 모든 자동 진입점을 스위치 파일 하나로 한꺼번에 끄는 구조를 만들어 배포했습니다. 배치 뒤에 붙던 실행, 오후창 실행, 월간 전체 재현, 관련 경보까지 전부 이 스위치를 거쳐가게 바꿨습니다.
코드는 지우지 않았고, 수동으로 필요할 때 돌리는 경로는 남겨뒀습니다. 나중에 다시 필요해지면 스위치 파일 하나만 지우면 원상복구됩니다.
다만 이 측정에 의존하던 판정이 몇 개 있었습니다. 하드웨어 교체나 모델 교체를 검증할 때 쓰던 비교 기준선 같은 것들인데, 이제 상시로 쌓이는 시계열이 없어서 나중에 그런 판정이 필요해지면 그때 따로 소규모로 재보는 방식을 새로 설계해야 합니다.
테스트가 실거래 원장을 오염시키고 있었다
오늘 진행한 코드 리뷰 후속 작업 중에, 특정 테스트들이 실제 서비스가 쓰는 거래 기록 파일에 가짜 행을 실제로 쓰고 있었다는 걸 확인했습니다.
테스트 실행 전후로 파일 내용을 비교해보니 실제로 바뀌어 있었습니다. 그동안 테스트가 끝날 때 나던 오류를 "상주 프로세스가 같은 파일에 동시에 쓰다가 생기는 일시적 충돌" 정도로 오인하고 넘어갔던 부분이었습니다.
이 발견이 걸리는 이유는, 다른 감시 장치 하나가 이 파일의 최근 기록을 보고 "정상적으로 살아있는지"를 판단하는 데 쓰고 있었기 때문입니다. 가짜 행이 섞여 있으면 그 판단 자체가 흐려질 수 있습니다.
수선은 테스트가 실제 파일 대신 격리된 임시 위치에 쓰도록 바꾸는 방향으로 했습니다. 그리고 그동안 섞여 있던 가짜 행을 걸러내서 원장에서 제거하고, 지우기 전 상태는 따로 백업해뒀습니다.
NXT 프리장 시세 캡처를 새로 붙였다
개장 전 시간대에 움직이는 시세를 살펴볼 수 있는 새 거래소 경로가 있는데, 여기서 나오는 시세를 실계좌 조회로 받아와 기록만 해두는 기능을 오늘 새로 만들었습니다.
상위 종목을 대상으로 개장 전 시간대에 여러 차례 짧게 조회해서 저장하는 방식입니다. 아직은 기록만 하고 실제 주문에는 쓰지 않습니다.
다음 주부터 며칠간 이 기록이 얼마나 안정적으로 쌓이는지, 그리고 실제 개장 시세와 얼마나 가까운지를 지켜본 뒤에, 더 오래 써도 될지 판단할 예정입니다.
그 외
거래 캘린더가 1년 뒤 시점부터는 날짜 범위를 벗어나 요일만 보고 개장/휴장을 잘못 판단하던 지점이 있었는데, 범위를 훨씬 멀리 늘려서 고쳤습니다. 2028년 총선일 휴장도 함께 반영했습니다.
성능 측정용 배치의 표본 종목 수를 늘리고 타임아웃 여유도 넉넉하게 늘려서 다시 돌리는 작업도 오늘 지시받아 진행했습니다. 이 배치 자체의 튜닝 내용은 오늘 올린 다른 글(27B dense 모델 튜닝(새 창), 35B MoE 모델 튜닝(새 창))에서 따로 다뤘습니다.
앞으로
오늘은 "계속 자동으로 돌리는 게 맞는가"를 다시 따져 하나는 끄고, 반대로 새로 필요해진 건 하나 붙인 하루였습니다.
self-ρ 퇴역은 결정이 끝났고, 원장 오염 건도 격리와 정리가 끝났습니다. NXT 프리장 캡처는 이제 막 켜졌으니 다음 주에 실제로 며칠 쌓인 기록을 보고 다음 단계를 판단할 차례입니다.
!["[260926] self-ρ 측정 전면 퇴역과 테스트발 원장 오염 발견"](https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2rfu17pss2tu118lkk68.png)



!["[260925] 뉴스 수집 범위 실시간화와 보조 카드 안전장치 배포"](https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fibmjiil2r7ftj4ahqly1.png)


!["[260922~260927] 안전장치를 겹겹이 쌓고, 전제를 다시 검증한 한 주"](https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff2wh1c9v3z72p19jqfxn.png)
!["[260928] R9700 Backup GPU - Wiring Self-Healing In and Rechecking the Concurrency Bump"](https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3nccwp7nogp812vlxm1h.png)