최상의 답변
내가 기억하는 몇 가지 질문은 다음과 같습니다. 탈선 인터뷰 :
- 인스 타 그램 또는 일부 유형의 콘텐츠 피드를 디자인합니다. 이것은 실제로 매우 일반적입니다. 여러 회사에서 3 ~ 4 번 받았 나봐요. 꽤나 귀찮아서 더 나은 질문을하기에는 너무 게으른 면접관이 물어볼 것입니다.
- 자동 완성 기능을 디자인합니다. 또한 때때로 약간의 변형이있는이 메시지를 여러 번 받았습니다. 일반적으로 Trie 데이터 구조를 기반으로합니다. 연습하기 좋은 방법입니다!
- 메시징 버스 (apache kafka / zeromq / rabbitmq)를 디자인합니다. 인프라 지향 소프트웨어 역할을 인터뷰하는 경우 이와 같은 결과를 얻을 수 있습니다. 이것은 다양한 초점 영역과 하위 질문을 생성 할 수있는 훌륭한 도구입니다.
- LRU 캐시를 디자인합니다. 일반적으로 이중 연결 목록을 구현하여 캐시가 가득 찬 경우 가장 최근에 사용한 요소를 지속적으로 제거합니다.
- 디자인 분산 캐시. 다시, 인프라 지향적 인 역할이 될 수 있습니다. 다양한 방향으로 진행할 수도 있습니다.
- 데이터베이스 테이블 / 데이터웨어 하우스를 설계합니다. 이것은 데이터 엔지니어 중심의 역할을위한 것일 수 있지만 좋은 데이터 디자인이 매우 중요하다는 점을 감안할 때 SWE에게도 일반적입니다.
다음은 개인적으로 보지 못한 몇 가지 사항입니다. , 일반적으로 일반적으로 허용되지만 :
- URL 단축기 디자인
- 웹샵 / 전자 상거래 사이트 디자인
도움이되기를 바랍니다. 나는 상위 4 ~ 5 위가 시스템 설계 인터뷰의 대부분을 다룰 것이며, 그들이 다루지 않는 인터뷰의 경우, 연구를 통해 얻은 지식이 다양한 질문에 잘 전달 될 것임을 확신합니다.
답변
시스템 설계 인터뷰 는 설계 기술과 복잡하고 확장 가능한 서비스를 사용할 수있는 능력을 테스트합니다. 이 인터뷰에서 귀하의 성과는 귀하에게 제공 될 직책과 급여를 결정합니다. 칭찬할만한 디자인 기술이 있다면 더 높은 제안을 받게 될 것입니다. 이 인터뷰를 준비하는 데 유용한 리소스 : 시스템 디자인 인터뷰 살펴보기
몇 가지 샘플 디자인 문제는 다음과 같습니다.