두 번째 그래픽카드를 드디어 제대로 꽂았고, 그 김에 가장 중요한 종목 두 개가 몇 주째 데이터에서 빠지고 있던 것도 발견했다
며칠 전 케이스 안에서 자리가 안 맞아 미뤄뒀던 일을 오늘 마무리했고, 그 김에 꽤 오래 조용히 묻혀 있던 문제도 하나 찾아냈습니다.
임시로 돌리던 두 번째 카드를, 오늘 정식 케이스에 앉혔다
며칠 전 그래픽카드를 하나 더 들였을 때, 케이스 안에서 카드 두 장이 들어갈 자리와 전원 공급 장치 자리가 몇 센티미터 차이로 부딪혀서 정식으로 케이스에 다 넣지는 못하는 상태였습니다. 그래도 일요일부터는 임시로나마 두 장을 다 연결해서 실제로 돌리고 있었고, 오늘 전원 공급 장치를 별도 칸으로 분리한 케이스로 교체하면서 드디어 정식으로 제자리에 앉혔습니다.
전력을 적당히 제한해두고 부하 테스트를 돌려봤는데, 두 장 다 열도 잘 잡히고(부하 중에도 68도 선), 속도 저하나 오류 없이 안정적으로 돌아갔습니다. 작업 도중 컴퓨터를 두 번 재부팅했는데도(하나는 의도치 않은 재부팅) 백그라운드 서비스들이 알아서 다 다시 살아났습니다. 참고로 예전에 "그래픽카드 팬이 이상한 것 같다"고 의심했던 적이 있었는데, 오늘 다시 보니 그건 그래픽카드가 아니라 케이스 팬 소리였습니다 — 애먼 걸 의심했던 셈입니다.
가장 중요한 종목 두 개가 몇 주째 데이터에서 빠지고 있었다
며칠 전 소개했던 과거 뉴스 수집 작업을 계속 지켜보다가, 꽤 심각한 걸 하나 발견했습니다. 데이터가 아직 없는 종목은 "[정보없음] 회사이름(종목코드)" 같은 형식의 자리표시자로 표시되는데, 이름을 추출하는 부분이 이 형식을 제대로 못 읽어서 가장 자주 언급되는, 사실상 제일 중요한 대형주 두 곳의 이름이 계속 비어있는 상태로 처리되고 있었습니다. 이름이 비어있으니 그 종목을 언급한 기사를 아무리 많이 수집해도 "이 종목 얘기구나"라고 연결을 못 지었던 거죠. 다른 덜 중요한 종목은 수천 건씩 잘 쌓이는데, 정작 가장 큰 두 종목만 몇 주 내내 거의 0건으로 비어있었습니다 — 흔한 종목이 아니라 제일 중요한 종목에서 조용히 빠지고 있었다는 게 더 아찔했습니다.
다행히 원본 데이터(기사 제목들) 자체는 이미 다 모아둔 상태였어서, 이름 인식 버그만 고치고 나니 기존에 모아둔 데이터를 다시 대조해서 순식간에 수만 건을 복구할 수 있었습니다. 처음부터 다시 모을 필요가 없었던 게 그나마 다행이었습니다.
정상 기사를 "차단당했다"고 오해하던 버그
수집기가 가끔 "이 페이지는 접속이 차단된 것 같다"고 판단해서 그날 하루치를 통째로 건너뛰는 경우가 있었습니다. 원인을 보니, 차단 여부를 판단하는 기준 중 하나가 특정 문구가 페이지에 있는지 보는 거였는데, 하필 어떤 IT 기사 본문 안에 그 문구와 우연히 똑같은 표현("인증 절차를 ~")이 들어 있어서 완전히 정상적인 페이지를 차단당한 걸로 착각했던 겁니다. 실제로 기사가 잘 보이는 페이지인데도 말이죠.
고친 방법은 간단합니다 — 그 문구가 있더라도, 페이지 안에 실제 기사 목록이 정상적으로 들어있으면 절대 차단으로 판단하지 않도록 우선순위를 바꿨습니다. 우연히 같은 단어가 들어갔다고 멀쩡한 하루를 통째로 날릴 뻔한 사례였습니다.
그 밖에
- 외부 API로 여러 종목을 동시에 요청할 때 한 번에 너무 많이 보내면 일부 요청이 조용히 실패하고 있다는 걸 발견했습니다. 하필 뉴스가 제일 많은 대형주들이 매번 막판에 걸려서 유실되고 있었는데, 동시 요청 수를 줄이니 유실이 완전히 없어졌습니다.
- 야간 자동 분석 시작 시각도 조정했습니다. 장 마감 직후 대신, 시간외 거래까지 다 정리된 뒤로 늦춰서 더 정돈된 데이터로 시작하게 했습니다. 여기에 맞춰서 가격 기준점도 시간외 가격이 아니라 정규장 종가를 쓰도록 손봤습니다.
- 새로 들어온 모델과 기존 모델을 계속 비교하는 실험도, 오늘 데이터 공백을 메꾸면서 계속 이어갈 수 있게 됐습니다. 아직 어느 쪽이 더 나은지 판단은 시기상조라, 며칠 더 데이터를 쌓아봐야 할 것 같습니다.
오늘은 물리적인 문제(케이스)를 해결하고 나니 그 김에 데이터 쪽 문제들도 연달아 눈에 들어온 하루였습니다. 특히 "가장 중요한 것부터 조용히 빠진다"는 패턴이 반복되는 걸 보면, 앞으로는 데이터가 잘 쌓이고 있는지 그냥 "합계가 늘어나나"가 아니라 "중요한 종목이 골고루 들어가고 있나"까지 확인해야겠다는 생각이 들었습니다.
This article was originally published by DEV Community and written by finaltype.
Read original article on DEV Community