객체 지향 설계(Object-Oriented Design), API 설계(API Design), 시스템 설계(System Design), 로우 레벨 시스템 설계(Low Level Systems Design), 프론트엔드 설계(front-end design), 제품 설계(product design) 등 다양한 유형의 디자인 인터뷰가 있습니다.
유형이 무엇이든, 이들은 모두 공통적으로 비슷한 목표를 가집니다. 즉, 특정 문제에 대해 여러분의 기술과 지식을 실용적이고 논리적인 방식으로 적용할 수 있는 능력을 평가하는 것입니다. 해당 분야에 대한 탄탄한 이해는 전제 조건이지만, 인터뷰는 암기 여부를 시험하는 것이 아니라 그 지식을 유창하고 효과적으로 사용할 수 있는 능력을 평가합니다. 디자인의 목적은 정답 맞히기(correctness)가 아니라 정리(organization) 입니다. 따라서 좋은 디자인은 정량적이고 객관적인 것이 아니라, 정성적(qualitative)입니다.
디자인에서 중요한 마인드셋은 완벽한 해답을 찾는 것이 아니라, 트레이드오프를 가진 여러 제안을 만들고 그중 하나를 추천(recommendation)하는 것입니다. 디자인 논의는 의도적으로 폭이 넓고 열린 형태로 진행되며, 아이디어를 유연하고 비구조적으로 탐색할 수 있게 합니다. 디자인 과정에서는 가능한 선택지를 평가하고, 각 선택지가 당면한 문제와 관련하여 갖는 장점과 단점을 명확히 설명하는 것이 중요합니다. 서로 다른 선택지들을 저울질한 뒤 추천안을 제시할 수 있는 이 능력은 디자인 과정에서 매우 높게 평가됩니다.
Behavioral component
인터뷰의 ‘사람’이라는 요소는 문제 해결 과정의 각 단계에서 명확하고 효과적으로 커뮤니케이션해야 성공적인 논의가 가능하다는 필요성을 만들어냅니다. 성공적인 인터뷰는 단지 그럴듯한 제안을 제시하는 것만으로 끝나는 경우가 많지 않다는 점을 기억하는 것이 중요합니다. 면접관은 여러분의 근거(justifications)를 이해하고 싶어 할 수도 있고, 여러분이 좋은 판단력(good judgement)을 갖추고 있다는 확신을 얻고 싶어 할 수도 있습니다. 즉, 목적지보다 여정이 더 중요합니다(the journey is more important than the destination).