더북(TheBook)

getCustomer 함수는 고객에 대한 고유 식별자인 p_customerID 매개변수 하나를 전달받는다. if 문은 매개변수로 전달받은 고객 식별자와 firstName 문자열로 이루어진 키가 캐시에 있는지 확인한다. 캐시에 있으면 이 고객의 모든 속성이 캐시에 있다고 가정하여 캐시에서 데이터를 가져온다. 만약 이 고객의 이름이 캐시에 없다면 getCustomer 함수는 addQueryResultsToCache 함수를 실행한다. addQueryResultsToCache 함수는 키를 전달받아 이 키와 연관된 데이터를 반환하는 SQL 질의를 수행한다. 또한, 이 함수는 다음에 getCustomer 함수가 호출될 때 재사용할 수 있도록 반환된 데이터의 복사본을 캐시에 저장해 둔다.

Caution 프로그래밍 언어에서 사용하는 배열과 마찬가지로 서버가 중단되거나 캐시가 비워지면 메모리에 있는 데이터도 사라진다. 다음번에 애플리케이션을 시작하면 애플리케이션은 getCustomer 함수에 있는 SQL 같은 문장을 실행해서 캐시에 데이터를 다시 갖다 놓는다.

캐시도 키-값 데이터 저장 구조의 한 유형이지만 이 책에서 다루는 범위를 벗어난다. 따라서 이후에 다룰 키-값 데이터베이스에 관한 내용에서는 데이터를 영구적으로 저장하는 키-값 저장 구조에 대해서만 설명하겠다.

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