애플리케이션 쿼리 정의

애플리케이션 쿼리 정의 (Defining application queries)

호텔 애플리케이션의 데이터 모델 설계를 쿼리 우선(query-first) 접근 방식으로 시작해 볼게요. 애플리케이션의 사용자 인터페이스 설계는 쿼리 식별을 시작하는 좋은 산출물이 되는 경우가 많아요. 프로젝트 이해관계자와 대화했고 UX 디자이너가 주요 사용 사례에 대한 UI 설계나 와이어프레임을 만들었다고 가정해 볼게요. 아마 다음과 같은 쇼핑 쿼리 목록이 있을 거예요.

출처: Defining application queries

본문

  • Q1. 주어진 관심 지점 근처의 호텔 찾기.
  • Q2. 주어진 호텔에 대한 정보(이름과 위치 등) 찾기.
  • Q3. 주어진 호텔 근처의 관심 지점 찾기.
  • Q4. 주어진 날짜 범위에서 예약 가능한 객실 찾기.
  • Q5. 객실의 요금과 편의 시설 찾기.

쿼리를 전체로 설명하는 대신 간단한 번호로 참조할 수 있다면 종종 유용해요. 여기 나열된 쿼리는 Q1, Q2 등으로 번호가 매겨지며, 이 예제 전반의 다이어그램에서 이렇게 참조돼요.

애플리케이션을 성공시키려면 고객이 호텔에서 예약을 할 수 있게 하는 것이 확실히 필요할 거예요. 이는 예약 가능한 객실 선택과 손님 정보 입력 같은 단계를 포함해요. 따라서 개념적 데이터 모델의 예약(reservation)과 손님(guest) 개체를 다루는 쿼리도 확실히 필요할 거예요. 여기서도 데이터가 어떻게 쓰이는지 고객 관점뿐만 아니라, 하류 사용 사례에서 데이터가 어떻게 조회될지도 생각해야 해요.

아마 자연스럽게 예약과 손님 기록을 저장할 테이블 설계를 먼저 하고, 그 다음에 그것들에 접근할 쿼리를 생각하기 시작하고 싶을 거예요. 쇼핑 쿼리를 논할 때 이미 비슷한 긴장감을 느꼈을 수도 있어요. "그런데 호텔과 관심 지점 데이터는 어디서 왔지?" 걱정하지 마세요, 곧 알게 될 거예요. 사용자가 예약에 어떻게 접근할지 설명하는 몇 가지 쿼리는 다음과 같아요.

  • Q6. 예약 번호로 예약 찾기.
  • Q7. 호텔, 날짜, 손님 이름으로 예약 찾기.
  • Q8. 손님 이름으로 모든 예약 찾기.
  • Q9. 손님 세부 정보 보기.

모든 쿼리는 아래 그림의 애플리케이션 워크플로 맥락에서 보여줘요. 다이어그램의 각 상자는 애플리케이션 워크플로의 한 단계를 나타내며, 화살표는 단계 간 흐름과 관련 쿼리를 나타내요. 애플리케이션을 잘 모델링했다면, 워크플로의 각 단계는 후속 단계를 "잠금 해제"하는 작업을 완료해요. 예를 들어 "POI 근처 호텔 보기" 작업은 애플리케이션이 여러 호텔과 그 고유 키에 대해 알게 해 줘요. 선택한 호텔의 키는 호텔의 상세 설명을 얻기 위해 Q2의 일부로 사용될 수 있어요. 객실을 예약하는 행위는 손님과 호텔 직원이 나중에 다양한 추가 쿼리를 통해 접근할 수 있는 예약 레코드를 만들어요.

호텔 쿼리

이 자료는 Cassandra, The Definitive Guide에서 각색한 내용이에요. O'Reilly Media, Inc. 발행. Copyright © 2020 Jeff Carpenter, Eben Hewitt. All rights reserved. 허가를 받아 사용했어요.

더 알아보기 (Learn more)