우리의 서버로 하나의 request가 들어오면 서버는 응답을 처리하기 위해 필요한 여러 API를 호출하고 데이터를 가공하여 필요한 응답을 돌려줍니다.
requset는 동시에 여러개 들어오기 때문에 우리는 request마다 어떤 작업을 수행했는지 그룹핑하여 모니터링하는 것이 필요합니다.
가장 일반적인 방법으로는 요청마다 requestID
를 생성해 할당하고 수행하는 작업마다 requestID
를 함께 기록하여 requestID
단위로 그룹핑해 확인하는 것입니다.
이러한 패턴은 Ruby on rails 나 Python Django 같은 플랫폼에서 매우 간단하게 구현할 수 있는데, 각 request는 하나의 thread에 할당되어 동기로 처리되기 때문에 requestID
와 같은 요청 정보는 thread context 에 저장하여 필요할 때 꺼내 사용하면 되기 때문입니다.