client와 테스트를 진행하며 추론이 잘 되지 않는 이슈가 발생하였다. 따라서 postman을 활용해 실제 추론이 잘 되고 있는지 체크하는 내용이다.
추가로 .env파일을 읽으면서 발생한 오류도 기록하였다.
클라이언트로부터 넘어오는 이미지를 ocr 처리한 결과가 정확하지 않아서 직접 해당 이미지를 받아서 처리하였다. 테스트를 위해서 base64로 인코딩 후 postman을 활용해 rust parking server로 요청하도록 하였다.

use std::{fs, io::{Read, Write}};
use base64::prelude::*;
fn main() {
let bytes = fs::read("D:\\work\\rust\\test\\base64_test\\assets\\license_plate.png").unwrap();
let encoded = BASE64_STANDARD.encode(bytes);
let mut file = fs::File::create("./test.txt").unwrap();
file.write_all(encoded.as_bytes()).unwrap();
println!("{}", encoded);
}
print로 출력하여 복붙할 생각이었는데 생각보다 너무 길어서 terminal을 넘어간다. 따라서 txt 파일로 생성하였다.
base64로 인코딩된 문자열을 얻은 후 아래 포맷으로 보내주었더니
{
"gate_id": 10,
"timestamp": 현재시간,
"img": base64 encoding 문자열
}

정상적으로 추론이 되었다.

인 메모리 캐시에 현재 입차한 차량 정보가 잘 저장이 된다.
.env에 노출되면 안 되는 데이터를 담아서 사용하는데 어느 순간 잘 안되는 이슈가 발생했다.
println!("Parking server init start!!!!!!!!");
dotenv().ok();
let db_con_str = env::var("DB_CON_STR").unwrap();
let broker = env::var("BROKER_URL").unwrap();
아래 처럼 로그를 찍었더니

위처럼 패닉이 발생했다. 상당히 당황스러웠다. 해결 방법은 정말로 어이없게도 BROKER_URL의 값 옆에 띄어쓰기가 되어 있었다...
아주 손쉽게 해결이 되어서 다행이다. 이렇게 기록을 남겨서 나중에 사소한 문제가 생겼을 때 찾아보면 좋을 것 같다.
클라와 서버간의 통신 및 로직 검증 테스트 단계에서 이슈가 발생할 수 있는 것은 당연하다. 한쪽이 확실하게 검증을 한다면 문제를 빠르게 파악할 수 있어 오히려 서로에게 윈윈이 되는 것 같다.
테스트를 진행하면서 로깅이 마음에 들지 않았다. 그리고 추론을 잘못했을 경우 인 메모리 캐시를 어떤 식으로 무효화할지 좀 더 고민해 봐야겠다.