더북(TheBook)

4.1.1 모의 데이터베이스 설정하기

보통 인메모리 저장소를 만들려면 객체 배열을 만들어서 store라는 변수에 할당하는 방식을 쓴다. 질문뿐만 아니라 사용자, 답변 등을 저장하는 더 복잡한 저장소 구조도 같은 방식으로 만들 수 있다. 배열 대신 해시 맵을 이용하면 ID로 질문에 직접 접근할 수 있어 특정한 질문을 찾을 때마다 모든 질문 목록을 순차적으로 찾아보지 않아도 된다.

코드 4-2 질문에 대한 로컬 저장소를 만들기

use std::collections::HashMap;
...
struct Store {
    questions: HashMap<QuestionId, Question>,
}
...

러스트 문서에는 HashMap에서 호출할 수 있는 메서드가 잘 정리되어 있다. 예를 들어 insert를 사용하면 맵에 새로운 항목을 추가할 수 있다. 그러므로 다음 세 가지 메서드로 저장소를 구현해 보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.