소개

완료됨

Tailwind Traders의 엔지니어로서, 회사에서 고객에게 주가 정보를 제공하는 새로운 웹 사이트를 시작하려고 한다는 사실을 알게 되었습니다. 최근에 인턴이 새 애플리케이션에 대한 웹 사이트 프로토타입을 만들었고, 선임 설계자는 이제 솔루션에 참가하여 이를 향상시키도록 요청했습니다. 여기서는 주식 가격 정보 업데이트를 구현하도록 앱을 업데이트하지만, 서버에서 데이터가 변경될 때만 클라이언트와 서버 간에 통신할 수 있도록 합니다.

프로토타입 아키텍처

서버 프로토타입에는 두 가지 함수가 있습니다.

함수 이름 트리거 형식 설명
getStocks Azure Cosmos DB 서버는 데이터베이스의 주식 테이블에서 모든 데이터를 읽고 클라이언트가 요청할 때마다 해당 데이터를 HTTP 응답으로 반환하는 일을 담당합니다.
setPrice 타이머 데이터베이스의 데이터를 변경하는 함수는 타이머 트리거에서 실행됩니다. 이는 백 엔드 시스템에서 변경 내용 수신을 시뮬레이션합니다.

프로토타입으로, 인턴이 매분 업데이트되는 타이머 함수를 사용하여 재고 피드를 시뮬레이션했습니다. 클라이언트 웹 사이트는 거의 실시간 데이터를 표시하기 위해 5초마다 /api/getStocks API 엔드포인트에서 모든 주식을 요청합니다. 이 클라이언트 요청은 효율적이지 않습니다. 서버에서 데이터를 끌어오는 대신 서버가 새로운 주식 정보를 푸시하는 것이 더 효율적입니다.

수행해야 할 작업

이 모듈에서 학습할 내용은 다음과 같습니다.

  • 프로토타입을 실행합니다. 정기적으로 모든 주식에 대해 서버를 폴링하는 클라이언트 애플리케이션을 봅니다.
  • 애플리케이션 개선: SignalR Service를 사용하여 실시간 업데이트에 가까운 제품에 변경 내용을 연결된 클라이언트에 브로드캐스트하는 서버리스 Azure Functions 앱을 구현합니다.
  • 메시지를 가져오고 표시하려면 SignalR에 연결하도록 클라이언트 JavaScript 웹 애플리케이션을 업데이트합니다.