사용자가 특정 트윗이나 트윗 타임라인을 조회하려고 요청하면 다음 과정을 거칩니다.
1. 클라이언트가 GET /tweets/{tweetId} 또는 GET /users/{userId}/tweets 경로로 필요한 정보를 담아 GET 요청을 보냅니다.
2. 트윗 서비스가 요청을 받아 사용자 인증과 권한을 확인합니다.
3. 트윗 서비스가 데이터베이스에 트윗 ID나 사용자 ID를 보내 이와 맞는 트윗을 찾아 달라고 요청합니다.
4. 데이터베이스가 반환한 트윗에 미디어 파일이 포함되어 있다면 객체 저장소에서 해당 파일을 가져옵니다.
5. 조회한 트윗과 미디어 파일을 합쳐 클라이언트에 응답으로 보냅니다.
규모가 큰 사용자와 서비스를 대상으로 하는 시스템에서는 성능이 매우 예민한 주제입니다. 성능을 어떻게 끌어올리느냐가 상당히 중요한 과제라고 할 수 있는데요. 캐싱 레이어를 추가하여 성능을 높이는 방법은 그중 하나라고 할 수 있습니다. 그래서 다음 절에서는 캐싱을 자세히 살펴봅니다.