본문 바로가기

개발44

3. 시스템 설계 interview 시스템 설계 interview는 두 명의 동료가 모호만 문제를 풀기 위해 협력해 그 해결책을 찾아가는 과정의 시뮬레이션이다 나의 설계 기술을 시연하는 자리이고, 설계 과정에서 내린 결정들에 대한 방어 능력을 보이는 자리이며, 면접관의 피드백을 건설적으로 처리할 자질이 있음을 보이는 자리이다 협력에 적합한 사람인지, 압박이 심한 상황에도 잘 해쳐나갈 수 있는 사람인지, 모호한 문제를 건설적으로 해결할 능력이 있는지 등을 살펴볼 수 있다 부정적 신호를 주지 않도록 주의하자 완곡함, 편협함, 오버 엔지니어링 1단계 - 문제 이해 및 설계 범위 확정 생각 없이 바로 답을 내놓지 말자 요구사항을 완전히 이해하지 않고 답을 내놓는 것은 완벽한 부정적 신호이다 올바른 질문을 하자 적절한 가정을 하자 시스템 구축에 필.. 2023. 2. 26.
2. 개략적인 규모 추정 응답 지연 값 L1 캐시 참조 : 0.5ns 분기 예측 오류 : 5ns L2 캐시 참조 : 7ns 뮤텍스 락/언락 : 100ns 주 메모리 참조 : 100ns Zippy 1KB 압축 : 10,000ns 1Gbps 네트워크 2KB 전송 : 20,000ns 메모리 1MB 순차 Read : 250,0000ns 같은 데이터센터 내 메세지 왕복 지연시간 : 500,000ns 디스크 탐색 : 10ms (1천만 ns) 네트워크에서 1MB 순차 Read : 10ms 디스크에서 1MB 순차 Read : 30ms 캘리포니아 -> 네덜란드 왕복 지연시간 : 150ms 위 응답 지연 값을 2010년에 측정한 자료로, 현재는 기술이 발전하여 유효하지 않은 값이 되었지만 지표로서 참고하긴 좋은 자료이다 위 수치들을 분석한 결과는.. 2023. 2. 19.
1. 사용자 수에 따른 규모 확장성 단일 서버 단일 서버에 사용자의 요청이 전달되는 과정 dns 서버에 mingvel.com 의 ip 주소를 요청 dns 서버로부터 mingvel.com의 ip 주소를 응답 요청 받은 mingvel.com의 ip 주소로 HTTP 요청 요청 받은 웹 서버는 html 혹은 json 응답 데이터베이스 (DB) 관계형 데이터베이스 (RDBMS) Mysql, Oracle, PostgreSQL 등등 모든 자료는 테이블, 컬럼, 열로 표현된다 SQL을 이용하여 데이터를 관계에 따라 Join 할 수 있다 비 관계형 데이터베이스 (NoSQL) Cassandra, HBase, DynamoDB 등등 키-값 저장소 (key-value store) 그래프 저장소 (graph store) 컬럼 저장소 (column store) 문서.. 2023. 2. 12.
대규모 시스템 설계 카테고리 오픈 안녕하세요 밍블입니다 해당 카테고리는 `가상 면접 사례로 배우는 대규모 시스템 설게 기초`라는 책을 읽으면서 책의 요점을 정리하고, 제 개인적인 견해를 함께 작성하고자 만든 카테고리입니다 위 책을 읽게 된 배경은 제 개인적인 생각의 변화에서 시작되었습니다 최근 애플리케이션 서비스 동향을 보면 (최근이라곤 하지만 이미 몇 년 전부터..) 서비스는 얼마나 안정적이고, 얼마나 많은 트래픽을 수용할 수 있고, 얼마나 좋은 사용자 경험을 제공하느냐 (예를 들면 요청 응답시간) 위 모든 사항들에 의해 사용자들의 선택을 받고 많은 사용자의 선택을 받은 서비스는 성장합니다 그렇게 성장하는 서비스는 많은 데이터를 확보하게 되고 그것은 곧 힘이 됩니다 따라서 그 근본이 되는 `확장 가능한 대규모 서비스` 에 대한 학습을 .. 2023. 2. 8.
반응형