시작은 단순했습니다. 먼저 Python으로 화면을 만들어봤습니다.
- 5x5 그리드
- 탭은 1개만 있는 구조
기능은 최소였지만 결과는 분명했습니다.
그 상태에서도 랙이 심했고, 컴퓨터 부하가 컸습니다.
문제는 “조금 더 최적화하면 되지 않을까"가 아니었습니다.
제가 실제로 풀어야 하는 문제의 스케일이 달랐습니다.
왜 스케일이 핵심이었나
제가 필요한 건 수십 종목 감시가 아니라 수백~1천개 규모 감시였습니다.
여기서 핵심은 “전부 자세히 보기"가 아니었습니다.
핵심은 신호 증류였습니다.
- 전체 장을 먼저 넓게 본다
- 그다음 단계에서 “지금 봐야 할 것"만 필터링한다
즉, 필터는 첫 단계가 아니라 두 번째 단계였습니다.
첫 단계(전체 장 스캔)가 버벅이면, 두 번째 단계는 시작조차 할 수 없습니다.
그래서 Rust를 선택했다
기술 선택 기준도 자연스럽게 바뀌었습니다.
- 한 화면이 “돌아가느냐”
- 기능이 “몇 개 있느냐”
이 기준이 아니라,
- 전체 장 스캔이 반복 가능하냐
- 스캔에서 후보 압축까지 흐름이 끊기지 않냐
를 기준으로 보게 되었습니다.
Python 프로토타입은 문제를 확인하는 데에는 충분했지만,
제가 원하는 워크플로우(전체 장 -> 신호 증류)를 안정적으로 굴리기에는 한계가 있었습니다.
그래서 Rust로 갔습니다.
Rust를 선택한 이유는 “더 멋져 보여서"가 아니라,
전체 장에서 어떤 것을 봐야 할지 정하고, 그 뒤에 필터를 적용하는 실제 운영 흐름을 버틸 수 있게 만들기 위해서였습니다.