소개
Tailwind Traders의 엔지니어로서, 회사에서 고객에게 주가 정보를 제공하는 새로운 웹 사이트를 시작하려고 한다는 사실을 알게 되었습니다. 최근에 인턴이 새 애플리케이션에 대한 웹 사이트 프로토타입을 만들었고, 선임 설계자는 이제 솔루션에 참가하여 이를 향상시키도록 요청했습니다. 여기서는 주식 가격 정보 업데이트를 구현하도록 앱을 업데이트하지만, 서버에서 데이터가 변경될 때만 클라이언트와 서버 간에 통신할 수 있도록 합니다.
프로토타입 아키텍처
서버 프로토타입에는 두 가지 함수가 있습니다.
함수 이름 | 트리거 형식 | 설명 |
---|---|---|
getStocks | Azure Cosmos DB | 서버는 데이터베이스의 주식 테이블에서 모든 데이터를 읽고 클라이언트가 요청할 때마다 해당 데이터를 HTTP 응답으로 반환하는 일을 담당합니다. |
setPrice | 타이머 | 데이터베이스의 데이터를 변경하는 함수는 타이머 트리거에서 실행됩니다. 이는 백 엔드 시스템에서 변경 내용 수신을 시뮬레이션합니다. |
프로토타입으로, 인턴이 매분 업데이트되는 타이머 함수를 사용하여 재고 피드를 시뮬레이션했습니다. 클라이언트 웹 사이트는 거의 실시간 데이터를 표시하기 위해 5초마다 /api/getStocks
API 엔드포인트에서 모든 주식을 요청합니다. 이 클라이언트 요청은 효율적이지 않습니다. 서버에서 데이터를 끌어오는 대신 서버가 새로운 주식 정보를 푸시하는 것이 더 효율적입니다.
수행해야 할 작업
이 모듈에서 학습할 내용은 다음과 같습니다.
- 프로토타입을 실행합니다. 정기적으로 모든 주식에 대해 서버를 폴링하는 클라이언트 애플리케이션을 봅니다.
- 애플리케이션 개선: SignalR Service를 사용하여 실시간 업데이트에 가까운 제품에 변경 내용을 연결된 클라이언트에 브로드캐스트하는 서버리스 Azure Functions 앱을 구현합니다.
- 메시지를 가져오고 표시하려면 SignalR에 연결하도록 클라이언트 JavaScript 웹 애플리케이션을 업데이트합니다.