2023/09 3

가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 2장(개략적인 규모 추정)

2의 제곱수 모든 프로그래머가 알아야 하는 응답지연 값 메모리는 빠르지만 디스크는 아직도 느리다. 디스크 탐색은 가능한 피하라 단순한 압축 알고리즘은 빠르다. 데이터를 인터넷으로 전송하기 전에 가능하면 압축하라 데이터 센터는 보통 여러지역에 분산되어 있고, 센터들 간에 데이터를 주고 받는데에 시간이 걸린다. 통신할 때, 데이터를 압축하거나, 용량을 줄이는 것에 대해는 와닿는다. 예를 들어, 이미지를 저장하는데, 클라 -> 서버 -> 이미지서버라면, 2번의 통신에 용량이 큰 이미지가 들어갈 것이다. 용량이 큰 이미지는 클라이언트에서 바로 이미지 서버로 전송하는 것이 더 효율적일 것이다. 가용성에 관계된 수치들 고가용성(High availability)는 시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될..

스카우터를 활용한 서비스 성능 최적화

개요 우리팀에서는 APM 툴 스카우터을 사용하고 있다. 특히 스카우터의 XLog 기능과 알람 기능을 유용하게 사용하고 있다. 어느날, 오래된 프로젝트에서 deprecated 된 API들을 정리하는 일을 하는데, 존재하는 API가 500개가 넘어가고, 여기서 현재 사용중인 API을 체크하는일은 생각만 해도 막막했다. 쉽게 하는 방법이 없을까? 생각하다가 스카우터의 Summary 기능을 알게되어 사용해보았다. 사용법 먼저 스카우터에 접속한다. 전체 머신 기준으로 보려면 위 이미지 기준 Real에서 오른쪽 클릭을 한다. 주로 보는건 Service , SQL, API CALL이다. 스카우터 설정에 따라 다를수도 있지만 아마 대부분 아래와 같을 것이다. Service : 현재 프로젝트에서 호출하고 있는 API S..

가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 1장 (사용자 수에 따른 규모 확장성)

단일서버 모든 컴포넌트가 서버(머신,인스턴스) 1대에서 실행되는 경우이다. 여기서 컴포넌트란 웹, 앱, 데이터베이스, 캐시를 뜻한다. 1. 사용자는 도메인 이름을 이용하여 웹사이트에 접속 (이름 서비스는 DNS 서버에서 IP로 변경) 2. IP 주소로 HTTP 요청 전달 3. 요청을 받은 웹서버에서 HTML 페이지나 JSON 형태의 응답 데이터베이스 사용자가 늘면, 컴포넌트를 분리하기 시작한다. 대표적으로 데이터베이스 서버와 웹서버를 분리한다. - 데이터베이스 서버는 용량 및 처리량이 크기 때문에 서버 분리 우선대상 어떤 데이터베이스를 사용할 것인가? 전통적으로 관계형 데이터베이스와 비관계형 데이터베이스로 나눠진다. 워낙 많이 들어본 내용이기 때문에 간단하게 정리하고 넘어간다. (자세한 내용은 https..

728x90