면접관은 실제로 무엇을 채점하는가
합격한 답변과 떨어진 답변은 결론이 다르지 않다
같은 문제, 같은 아키텍처 다이어그램을 그리고도 한 사람은 붙고 한 사람은 떨어지는 경우를 많이 봤습니다. 최종 그림이 거의 똑같은데 결과가 갈리는 이유는 그 그림에 도달한 과정에 있습니다. 면접관이 실제로 채점하는 건 다이어그램이 아니라 다이어그램이 나오기까지의 대화입니다.
첫 번째 기준 — 스스로 질문을 던지는가
1장에서 강조했듯, 좋은 답변은 요구사항을 확정하기 전에 먼저 묻습니다. 그런데 더 미묘한 차이가 있습니다. 설계 중간중간에도 스스로에게 질문을 던지는지를 봅니다. "이 캐시가 다운되면 어떻게 되지?", "이 샤드 키를 쓰면 어떤 데이터가 한쪽으로 쏠릴까?" 같은 질문을 면접관이 묻기 전에 스스로 꺼내는 사람과, 질문을 받아야만 그제서야 생각하는 사람은 완전히 다른 인상을 남깁니다. 전자는 이 시스템을 운영해본 적이 있거나 최소한 운영하는 상상을 하고 있다는 신호이고, 후자는 그림을 그리는 데만 집중했다는 신호입니다.
두 번째 기준 — 트레이드오프를 스스로 말하는가
"Redis를 캐시로 쓰겠습니다"로 끝내는 답변과 "Redis를 캐시로 쓰겠습니다. 대신 캐시와 DB 사이에 일시적으로 데이터가 어긋날 수 있다는 걸 감수하는 겁니다. 이 서비스에서는 그 정도 지연이 괜찮다고 판단했습니다"로 끝내는 답변은 같은 결론, 다른 점수를 받습니다. 이 책의 모든 챕터에서 반복해서 "트레이드오프"라는 단어를 쓴 이유가 여기 있습니다. 이 인터뷰에서 만점 설계란 존재하지 않고, 존재하는 건 트레이드오프를 인지하고 선택한 설계와, 트레이드오프의 존재 자체를 모르는 설계뿐입니다.
다음은 실제로 면접관들이 머릿속으로 굴리는 평가 기준을 단순화해 코드로 옮겨본 것입니다. 정답을 맞히는 채점기가 아니라, 무엇에 가중치를 두는지를 보여주기 위한 것입니다.
def score_answer(answer):
score = 0
if answer.asked_clarifying_questions:
score += 2
if answer.did_estimation:
score += 1
if answer.identified_bottleneck:
score += 3 # 병목을 스스로 찾아내는 것에 가장 큰 비중
if answer.explained_tradeoff:
score += 3 # 트레이드오프를 스스로 설명하는 것도 동일한 비중
if answer.diagram_is_correct:
score += 1 # 다이어그램 자체는 상대적으로 비중이 작다
if answer.handled_pushback_well:
score += 2 # 면접관의 반박에 방어적이지 않게 대응하는가
return score이 가중치에서 눈여겨볼 부분은 diagram_is_correct의 비중이 가장 작다는 겁니다. 아키텍처 다이어그램이 교과서적으로 완벽해도, 병목을 스스로 짚지 못하고 트레이드오프를 설명하지 못하면 낮은 점수를 받습니다. 반대로 다이어그램이 다소 단순해도 왜 그렇게 그렸는지, 어디가 약점인지를 명확히 설명하면 훨씬 높은 점수를 받습니다.
세 번째 기준 — 반박에 어떻게 반응하는가
면접관이 "이 설계라면 트래픽이 10배로 늘면 어떻게 됩니까"처럼 일부러 압박하는 질문을 던질 때가 있습니다. 이건 당신의 설계에 구멍이 있다는 뜻이 아닐 때가 많습니다. 오히려 압박 질문에 무너지지 않고 "이 부분은 지금 설계로는 힘듭니다, 이렇게 바꿔야 합니다"라고 침착하게 재조정하는 능력을 보려는 겁니다. 자기 설계를 방어하는 데만 급급해서 명백한 약점을 인정하지 않는 태도가, 실은 처음에 제시한 설계에 약점이 있었다는 사실보다 더 나쁜 신호입니다.
네 번째 기준 — 우선순위를 정할 줄 아는가
40분은 모든 걸 다 다루기에 짧은 시간입니다. 좋은 지원자는 이 시간 안에서 무엇이 중요하고 무엇이 부차적인지 스스로 판단해서 시간을 배분합니다. 채팅 시스템을 설계하면서 로그인 화면 UI 디자인을 논하는 데 5분을 쓰는 지원자는 없어야 합니다. 반대로 병목이 될 게 뻔한 지점(팔로워 5천만 명인 계정의 fan-out 같은)을 지나치듯 언급만 하고 넘어가면, 그 부분이 이 문제에서 가장 중요한 지점이라는 걸 못 알아본 것으로 보입니다. 이 판단력은 암기로 얻어지지 않습니다. 이 책에서 다룬 네 가지 사례 문제를 실제로 시간을 재고 풀어보는 연습이 가장 빠른 길입니다. 아는 개념의 개수보다, 제한된 시간 안에 무엇을 먼저 말할지 고르는 감각이 이 인터뷰의 실제 시험 범위입니다.