더북(TheBook)

캐싱: 레디스 같은 분산 캐싱 레이어를 사용하면 백엔드 서비스의 부하를 줄이고 성능을 끌어올릴 수 있습니다. 캐싱 레이어는 사용자 프로필, 인기 트윗, 타임라인 데이터처럼 자주 조회하는 데이터를 저장하여 빠르게 찾을 수 있으며, 데이터베이스 요청 횟수도 줄일 수 있습니다.

데이터베이스: X 같은 서비스는 아파치 카산드라나 아마존 DynamoDB 같은 분산 데이터베이스를 사용하여 트윗, 사용자 정보, 팔로우, 좋아요, 리트윗 등 정형 데이터를 저장합니다. 데이터베이스는 높은 쓰기 처리량을 지원하고 낮은 지연 시간으로 데이터를 읽을 수 있어야 합니다. 데이터를 여러 노드에 분산하고 가용성을 확보하려고 샤딩과 복제 같은 기법을 활용하기도 합니다.

객체 저장소: 이미지와 동영상 등 미디어 파일은 아마존 S3 같은 객체 저장소에 보관합니다. 객체 저장소는 확장성과 안정성이 좋아 대용량 파일도 저장이 가능하며, 사용자가 데이터를 효율적으로 가져오거나 저장할 수 있도록 합니다.

메시지 큐: 마이크로서비스 간 비동기 통신을 위해 아파치 카프카 같은 메시지 큐를 사용합니다. 사용자가 새로운 트윗을 작성하면 이는 메시지 큐에 등록되고, 타임라인 서비스와 검색 서비스가 이를 받아 필요한 데이터를 업데이트합니다. 메시지 큐로 서비스 간 결합도를 낮추고, 트윗 처리 작업을 확장 가능하게 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.