ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 개발자 면접 유형, 6가지 면접 유형 정리
    기타 2023. 10. 13. 06:37
    728x90

    개발자 면접에 대한 6가지 유형을 살펴 보겠습니다. 제가 작성한 글은 아니구요, 원본은 아래 링크 이구요, 해당 내용에 저의 뇌피셜을 포함해서 작성한 글입니다.

    <👩🏻‍💻 개발자 면접 유형 총정리>

     

     

    1. 온라인 코딩 테스트

     

    이메일로 문제를 주기도 하지만, 요즘은 특정 웹사이트에 로그인해서 문제를 풀게 됩니다.

    크게 2가지 유형으로 테스트가 치뤄 지는 대요.

    1~2시간 2~3문제

    3~4시간 4~5문제

    쉬운문제와 어려운 문제에 대한 시간 배분을 15~30분, 45분~1시간 정도로 놓고 문제 푸시면 적절한 시간 배분입니다.

    가능하면 쉬운 문제는 빨리 푸는게, 시간을 버는 요령입니다.

     

     

    2, 라이브 코딩 테스트

     

    인터뷰어와 함께 보통 1:1로 진행되구요, 카메라가 켜진상태의 CC(conference call)을 하면서 코딩을 합니다.

    보통 1시간이구요, 인사및 서로 소개 등에 5~10분정도 사용하고, 나머지 시간 50분 정도에 풀 수 있는 문제가 나옮니다.

    여기서는 문제를 푸는 것도 중요하지만, 문제를 어떻게 접근해 가는지 인터뷰어가 보고 있다는 점을 염두해 두셔야 합니다.

    따라서, 아무말 없이 하기 보다는, 문제를 푸는 어떤 단계별로 이야기를 하시는게 중요합니다.

    '인터뷰어한테 말한다.' 라고 인지하고 말하려고 하면, 말이 잘 떨어지지 않기 때문에...

    '혼자 문제에대해서 중얼거린다.' 라고 생각하고 말하면 조금 말하기 쉬워 집니다.

    대충 이런 것이죠. '입력값이 10^5이기 때문에, N^2 알고리즘은 쓰기 어렵겠네요.'

    '통상적으로 10^9 넘어가는 complexity이면, 원하는 시간안에 실행되지 못할 것으로 가정하니까 ...'

    이런 식으로 말하면서 푸는게 중요합니다.

     

     

    3. 코딩 과제

     

    어떤 서비스를 구현하거나, 특정 기능을 구현해 달라는 경우가, #3번 코딩 과제 에 해당합니다.

    구현하는 시간만 보면 몇시간 정도면 코딩할 양이지만, 코딩의 내용및 알고리즘등을 모른다면,

    몇일 이상이 걸릴만한 과제를 내는 것이 일반적입니다.

    따라서, 코딩 과제를 내고, 몇일 이내에 답변을 달라고 하는 경우가 많습니다.

    예를 들면, 금요일에 메일을 보내고, 월요일에 답변을 달라고 하는 것이죠.

    즉, 코딩 과제 내용을 알고 있다면, 기간 안에 코딩을 해서 보낼 수 있겠지만,

    알지 못한다면, 그 기간 동안 공부하거나, 배워서 개발하는것은 어려운 과제가 주어집니다.

     

     

    4. 기술면접 (이론 중심)

     

    여기까지 오면 앞의 인터뷰는 잘 통과하신 것이구요, 이제 면접의 중간 단계입니다.

    컴퓨터 공학의 이론적인부분, 프로그래밍 언어의 조금 깊은 부분까지 아주 넓은 분야에서 다양한 질문이 나올 수 있습니다. 출체 범위는 Computer Science학부 과정의 거의 모든 내용입니다. 이렇게 말하면 너무 넓은 분야입니다.

    좀 좁혀가는 방법을 알려 드리면, 지원한 회사의 업무및 지원한 부서에서 주로 다루는 것에 대해서 미리 공부하시는 것을 추천드립니다. 웹서비스를 개발하는 부서 에 지원했다고 가정해 봅시다.

    그러면 프로그래밍 언어대한 질문을 할 때, '자바스크립트와 타입스크립트의 차이점및 관계에 대해서 설명해주세요'

    이런 질문을 예상해 볼 수 있습니다. 원글에 있는 질문인 '브라우저에 www.google.com을 치면 페이지가 로딩되기까지 어떤 과정을 거치나요?' 도 웹서비스를 하는 팀에서 할만한 좋은 질문입니다.

     

     

    5. 기술면접 (시스템 설계 중심)

    말그대로 어떤 시스템을 설계할 수 있는지, 알아 보는 면접입니다.

    기존에 널리 알려진 서비스(유튜브, 인스타그램)들을 설계해보라고 할 수도 있구요.

    잘 알려진 서비스라면, 해당 서비스의 특정 부분을 설계를 요구할 수도 있습니다.

    여기서는 면접관이 요구하는 바가 무엇인지를 파악하는 능력이 중요합니다.

    같은 문제 여도, 클라우드를 잘 활용해서 설계를 할지? 장애대응에 초점을 맞춰서 설계를 할지?

    이런 것들이 시스템 설계에 반영되어, 같은 질문이여도, 다른 설계를 할 수 있습니다.

    이럴 때는 면접관과 적극적인 대화를 통해서, 의도를 파악하는 것이 중요합니다.

    이런식을 대화를 면접관에게 시도해볼 수 있습니다.

    '정적파일의 경우 아마존 S3를 사용하는 것이 일반적이지만, 장애에 아주 민감한 경우

    S3에만 의존하여 서비스를 어렵습니다. K8S를 통해서 멀티 클라우드(Google, Azure)를 함께 사용하는

    방법으로 시스템을 디자인하는 것이 좋아 보입니다. 이번 설계에서는 장애의 중요성을 어느정도 감안해서

    시스템을 설계하는 것이 좋을 까요?' 이런 질문을 한다면, 면접관의 답변에 따라서,

    어떤 시스템 설계를 의도한 것인지, 알 수 있습니다.

    즉 장애가 시스템 설계에서 매우 중요한지?

    k8s의 멀티 클라우드 오케스트레인션에 대해서 알고 있는지 확인하고 싶은 것인지?

    기타 면접관의 질문의도를 파악할 수 있게 되구요.

    파학된 질문 의도에 따라서, 시스템 설계를 계속해 나아간다면, 좋은 결과를 얻을 확률이 계속 올라가겠죠 :)

     

    시스템 설계 중심의 기술면접을 조금더 쳬계적으로 접근하려면, 아래글을 추천드립니다.

    <⚙️ 소프트웨어 시스템 설계 시 고려할 세 가지>

    1️⃣ 신뢰성(Reliability), 2️⃣ 확장성(Scalability), 3️⃣ 유지보수성(Maintainability) 에 대해서 잘 설명하고 있는 글입니다.

     

    그러면 마지막으로 실제와 유사한 사례를 공유하겠습니다.

    bitly와 같은 URL shortening service를 위한 시스템을 설계해 보라는 질문을 받는 다면, 아래 링크에 잘 설명되어 있습니다. 유료자료이지만, 광고 아닙니다. 무료로 열려 있는 부분만 보셔도 충분합니다.

    https://www.designgurus.io/course/grokking-the-system-design-interview

    이미지 썸네일 삭제
    Grokking the System Design Interview | The #1 Online Course

    Grokking the System Design Interview is a comprehensive course for system design interview. It provides a step-by-step guide to answering system design questions.

    www.designgurus.io

    이미지 썸네일 삭제
    Grokking System Design Fundamentals

    Grokking System Design Fundamentals is designed to equip software engineers with the essential knowledge and skills required to design large complex systems.

    www.designgurus.io

     

    시스템 설계에 대한 책들도 있지만, 개인적으로는 추천하지 않습니다. 책들은 좀 아카데믹한 면이 있구요.

    SaaS로 계속 새로운 서비스가 나오고 있는 상황이여서, 책은 올드한 서비스들을 주로 다룰 확률이 높습니다.

     

    6. 인성면접

    인성면접해서 사람의 인성을 평가 한다고 하지만, 사실은 요즘 경향은 우리팀과 이사람이 맞는 사람인지 확인하는 과정입니다.

    모든 면접이 그러하듯이, 면접에서 면접관이 하는 질문들은 그 팀(또는 회사)가 겪고 있는

    문제점이거나, 문제점과 관련이 높은 질문일 확률이 높습니다.

     

    '옆의 동료와 디자인을 함께 해야 하는대, 동료가 본인의 주장을 굽힐 생각이 없다면 어떻게 하시겠습니까?'

     

    이런 질문을 한다고 하면, 이 팀은 이 팀이 하는 일을 총괄하는 사람이 한명있고,

    나머지 사람들은 이사람의 설계및 디자인 등에 따라서, 구현하는 일을 할 수 도 있습니다.

    이런 경우에 적절한 답변을 예시로 든다면 이렇게 대답할 수 있겠죠.

     

    '해당 동료가 전체 프로젝트의 디자인을 감당할 수 있을 만큼 충분한 능력이 된다고 판단되면,

    적극적으로 해당 동료를 지지해주어서, 프로젝트 디자인을 보다 빨리 끝낼 수 있게 도와주겠습니다.'

    '하지만, 해당 동료가 전체 프로젝트를 감당할 역량이 안되거나, 일부분에 대해서만,

    본인 주장을 펼친 다면, 팀장에게 리포트 하는 등, 다른 방법을 생각해 보겠습니다.'.

    <✨ 면접에서 효과적으로 경험 어필하는 법>

    인성면접은 사실 답이 없는 면접이기도 합니다. 사실 너무나도 케바케 이기 때문이죠.

    위의 글을 읽어 보신다면, 인성 면접을 보는대 많은 도움이 되실 꺼라고 생각합니다.

    728x90
Designed by Tistory.