신입 프론트엔드 개발자의 면접 후기 - 3

이전 게시글에서 다룬 P사의 면접 후기에 이어 L사의 면접 후기가 너무나도 길어진 관계로, 별도의 게시글로 분리하여 작성한다.

L사

L사는 의료 인공지능 기술을 바탕으로 하는 스타트업이다.

채용 프로세스

서류 제출 → 1차 실무자 면접 → 1차 라이브 코딩 테스트 → 2차 기술 과제 → 3차 임원 면접 → 최종 합격

  • L사에 근무하고 있는 지인의 추천으로 채용 프로세스가 진행되었다. 지인에게 이력서를 전달한 것이 6월 말이었는데, 이런 저런 사정으로 실무자 면접이 7월 말에 진행되었다.

1차 실무자 면접

  • 실무자 면접은 세 명의 면접관이 참석하는 다대일 면접으로 진행되었으며, zoom을 사용하여 비대면으로 진행되었다. 두 명의 면접관은 외국인인 관계상 영어로 면접이 진행되었다.
  • 면접은 기본적으로 résumé walkthrough 방식으로 진행되었으며, 약간의 인성 면접 질문이 추가된 형태였다. 생각나는 면접 질문들은 다음과 같다:
  • 영어로 자기소개해주세요.
  • 왜 프론트엔드 개발을 하려고 하나요?
  • 석사과정에서 진행한 연구에 대한 소개해주세요.
  • 사이드 프로젝트에 대해 소개해주세요.
  • 왜 Redux를 사용하였나요?
  • Redux-saga를 사용하며 느낀 점은 무엇이었나요?
  • (사이드 프로젝트 링크에 접속한 면접관의 질문) 작동하지 않는다고 뜨는데 왜 그런가요?
  • 사내 추천으로 진행되었기 때문에, 추천인과 관련된 질문도 받았다:
  • (추천인)이 당신에 대해 극찬하는 추천서를 작성했는데요, (추천인)과는 어떻게 알게 되었나요?
  • (추천인)과 어떤 프로젝트를 진행하였나요?
  • (추천인)에 대해서 어떻게 생각하나요?

1차 라이브 코딩 테스트

  • 면접이 약 30분 가량 진행된 시점에, 라이브 코딩 테스트를 진행하겠다는 안내를 받았다. 사전에 코딩 테스트를 안내받은 적이 없었던 관계로 당황스러웠지만, 어차피 P사의 합격 통보를 받은 상태였기 때문에 "이것도 경험이다"는 생각으로 테스트에 임했다.
  • 코딩 테스트의 문제는 아래와 같은 베이스 문제가 있고, 여기에 조금씩 제약사항이 추가되는 소위 "구글 스타일"의 라이브 코딩 테스트였다.
  • 임의의 양의 정수 n이 주어집니다. (단, n < 150)
  • 다음 조건을 만족하는 배열을 생성하는 함수 generateRandomArray()를 작성하세요:
  1. 배열의 길이는 2n + 1입니다.
  2. 배열의 원소들은 랜덤한 정수입니다, Math.random()을 사용하세요.
  3. 배열의 원소들은 [-100, 100] 구간 내에 존재합니다.
  • 추가 제약사항 (위 조건을 만족한 함수를 작성한 뒤에 하나씩 공개됨)
  1. 배열의 원소들이 단 한 번씩만 등장하게 만들어주세요.
  2. 이번에는, 단 하나의 원소를 제외하고 나머지 원소들이 두 번씩 등장하도록 수정해주세요.
  3. 배열의 원소들이 랜덤한 위치를 가지도록 수정해주세요, 이 때 위치를 변경하는 알고리즘은 in-place로 작성해주세요.
  • 위 라이브 코딩 테스트가 끝난 다음에는, 추가적인 알고리즘 관련 사고력을 확인하는 질의응답을 진행하였다:
  1. generateRandomArray()로부터 생성된 임의의 배열에서 단 한 번 등장한 원소를 찾는 방법은 무엇일까요?
  • 나는 hash map을 사용해서 단 한 번 등장한 원소를 찾아낼 수 있을 것이라고 답변하였다.
  1. 답변하신 방법의 시간 복잡도와 공간 복잡도는 어떻게 될까요?
  • 기본적으로 배열을 최소 한 번은 iterate해야 하므로 시간 복잡도는 O(n), 공간 복잡도는 최악의 상황에서 O(n)이 될 것이라고 답변하였다.
  1. 그렇다면 공간 복잡도가 O(1)이 되는 알고리즘은 어떻게 될까요?
  • 나는 한 번에 정답이 떠오르지 않았고, 면접관이 "bit operation"이 힌트라고 귀띰해주었다.
  • 면접관의 힌트를 듣고 나서, XOR을 사용하면 된다고 답변하였다.
  • 라이브 코딩 테스트는 CodeInterview라는 플랫폼을 사용하여 진행되었다. 알고리즘 문제의 난이도는 높은 편이 아니었지만, 내가 자바스크립트를 써서 알고리즘을 풀어본 적이 많지 않아 어려움이 있었다.
  • 다행스럽게도, 면접관 분들께서 문제 해결 능력 자체가 더 중요하다는 입장이셨다. 문제 풀이 과정에서 내가 잘못된 문법을 사용하는 경우 면접관께서 즉석에서 수정해주셨다.
  • 전반적으로 화기애애한 분위기에서 면접이 진행되었다. 우선 사내 추천으로 채용 프로세스가 진행되었다는 점도 영향을 미쳤을 것 같고,  P사의 합격 통보를 받은 상태에서 실무자 면접에 임해서 그런지 개인적인 부담이 덜했다.

2차 기술 과제

  • 1차 합격 통보를 받은 뒤, 3일 동안 수행하여야 하는 기술 과제를 안내받았다. 기술 과제는 GitHub을 사용하여 진행 상황이 공유되었으며, 과제 진행 과정에서의 질의응답은 GitHub issues를 통해 진행되었다.
  • 이 때 쯤이 8월 초순이었는데, 나는 8월 16일부터 P사에 출근하여야 하는 상태에 있었다. 따라서 채용 담당자에게 현재 사정을 설명하고, 가능한 빠르게 채용 프로세스를 진행할 수 있는지를 문의하였다. 다행스럽게도 채용 담당자 분께서 사정을 잘 이해해주셔서 속전속결로 채용 프로세스가 진행되었다.
  • 기술 과제는 외부에 공개하지 말아달라는 안내를 받아, 자세하게 설명하기는 어렵다. 가급적 추상적인 형태에서 과제의 내용을 정리하자면 다음과 같다:
  • HTML Canvas에 마우스의 클릭 및 드래그를 하여 임의의 도형을 그릴 수 있어야 한다. 이 때, 사용자가 그린 도형들의 정보가 프론트엔드 시스템에 의해 관리될 수 있어야 한다.
  • 사용자가 그린 도형 중 몇 개를 선택해서 임의의 파일 형태로 저장 혹은 불러오기할 수 있어야 한다.
  • 사용자가 그린 도형 중 몇 개를 선택해서 합치기를 지원하여야 한다. 이때 도형 합치기 알고리즘은 외부 라이브러리를 사용할 수 있다.
  • HTML Canvas는 처음이었기 때문에 처음 요구사항을 읽었을 때는 당황스러웠다. 하지만 구글링을 하면 나오는 수많은 소스들의 덕분으로 큰 어려움 없이 과제를 진행할 수 있었다.
  • 도형 합치기에 대한 부분은 약간 까다로웠다. 관련 내용을 찾아보기 위해 "merging two polygons" 혹은 "polygon union" 등으로 검색했는데 원하는 라이브러리가 등장하지 않았다. 이 부분은 issue를 개설하여 면접관에게 도움을 요청하였고, 면접관께서 특정한 키워드로 검색해보면 좋겠다고 답변해주셔서 원하는 라이브러리를 찾을 수 있었다.
  • 나는 수요일 오후 6시에 기술 과제를 시작했기 때문에, 토요일 오후 6시까지 기술 과제를 다듬을 수 있었다. 하지만 금요일 오후 2시에 과제를 제출하고 검토를 요청하였다. 개인적으로, 그 어떤 면접관도 주말 오후 6시에 과제 제출을 처리하고 싶지 않을 것이라고 생각했다. 따라서 면접관들이 주중 일과 시간에 기술 과제를 처리할 수 있도록 가능한 서둘렀다.
  • 처음 제출했을 때 면접관께서 "README.md가 아직 미완성인 것 같습니다"라고 코멘트를 주셨고, 다행히 시간이 많이 남아있어 README 파일을 작성하여 재제출할 수 있었다.
  • 그 다음 주 월요일, 그리고 화요일에 post-assignment interview를 GitHub issues로 진행하였다. 질문에 대해서는 다음과 같다:
  • 월요일에는, 과제에 optional로 지정된 요구사항이 두 개 있었는데, 해당 요구사항 두 개를 실제로 구현하기 위해서 어떠한 접근법을 사용할 것인가에 대한 질문을 받았다.
  • 화요일에는, 내가 실제로 작성한 코드에 대한 질문을 두 개 받았다. 첫 번째는 배열로 관리되고 있는 도형 정보들에 consistent identifier를 추가하기 위해 어떻게 할 것인지에 대한 질문이었고, 두 번째는 일부 useEffect 훅을 별개의 파일로 분리하여 선언한 것에 대한 design rationale 질문이었다.
  • 모든 질의응답이 끝난 뒤, 면접관으로부터 "질의응답을 종료하고, 다음 단계에 대한 안내를 주겠다"는 답변을 받았고, 몇 시간 뒤에 인사팀으로부터 최종 면접 일정을 조정하는 메일을 받았다.

3차 임원 면접

  • 임원 면접은 그 주 목요일에 빠르게 진행되었다. 면접은 현 대표님, 전 대표님, 그리고 최고 연구 담당자(Chief of Research)께서 참석한 다대일 면접이었다.
  • 이미 P사의 오퍼 레터를 가지고 있었던 만큼 긴장할 이유는 없었지만, 엄청나게 긴장했다. 너무 긴장한 관계로 어떤 질문을 받았는지 잘 기억나진 않지만, 대강 추려보면 다음과 같다:
  • 자기 소개
  • L사에서 어떤 기술적인 성장을 기대하나요?
  • 10년 뒤에 어떤 사람이 되어있을 것 같나요?
  • 왜 박사과정을 하지 않았나요?
  • 어떠한 장기적인 목표를 세우고 L사에서 근무할 계획인가요?
  • HCI 연구자의 관점에서, 우리 프로덕트의 사용성을 개선해볼 만한 것은 무엇이 있나요?
  • 연구실 구성원들과 비교했을 때, 내가 이것만큼은 남들보다 뛰어나다고 생각하는 게 있나요?
  • 공부를 하는 스타일은 어떤가요? 배움에 있어 롤 모델이 있었나요?
  • 전문연구요원으로 지원했는데, 전문연구요원이 끝나면 다시 학계로 돌아갈 생각이 있나요?
  • 프론트엔드 개발자로 지원했는데, 백엔드 기술에는 관심이 없나요?
  • 회사에 궁금한 점이 무엇인가요?
  • 나는 회사의 모토인 "끊임없이 성장하는 사람들의 모임"이라는 점을 들며 "끊임없이 성장하기 위해서는 무엇이 필요한가요?"를 여쭤보았다.
  • (추천인)과 어떤 관계에 있나요?
  • 놀랍게도 임원들에게 내가 P사에서 오퍼 레터를 받은 사실과, 16일부터 출근해야 한다는 점이 공유되어 있었다. 한 임원 분께서는 내게 "최대한 빨리 결정해서 결과를 알려드리겠다"고 말씀해주셨고, 면접이 끝난 뒤 엘리베이터를 기다리는 나에게 "합격했으니 다른 회사 오퍼를 알려달라"고 말씀하셨다. 지금까지 받아본 합격 통보 중에서 초고속이었다.

느낀 점

사실 나는 L사에서 채용될 것이라고 기대하고 있지 않았다. 내가 추천인에게 이력서를 건네주었던 것이 6월 말인데, 거의 한 달 동안 아무런 소식도 없었기 때문이다. 심지어 서류 합격 연락을 받았을 때 나는 이미 P사에서 오퍼 레터를 받은 이후였다. 따라서 처음에는 L사의 채용 프로세스를 취소하려고 했으나, 추천인의 강력한 권고와 "면접은 진행했으면 좋겠다"는 요청으로 채용 프로세스를 계속 진행하였다.

실무자 면접이 "내가 들어갈 팀의 첫 인상을 확인하는 과정"과 같은 느낌이었다면, 기술 과제를 진행하는 과정은 마치 "내가 들어갈 팀과의 케미가 맞는지 확인하는 과정"과도 같았다. 면접관들이 내 질의응답에 따봉 이모티콘(👍)을 눌러주었을 때의 기분은 정말 환상적이었다.

또한 인사팀, 실무자, 그리고 임원진이 전부 나서서 나의 채용 프로세스가 가능한 빠른 시일 내에 끝날 수 있도록 관심과 배려를 받는다는 점이 인상적이었다.

따라서,

  1. 추천인의 강력한 회사 추천
  2. 기술 과제를 진행하며 느낀 "팀과의 케미"
  3. 많은 배려를 받은 채용 프로세스

...와 같은 이유로 오퍼 레터를 받지도 않은 시점에서 L사를 최종적으로 선택하게 되었다.

캐릭터 헤어스타일은 정확한 색상뿐 아니라 가발의 전체 실루엣에도 좌우됩니다. 모량은 헤어 형태를 유지하면서도 지나치게 무겁지 않아야 합니다. 스타일링과 촬영을 준비한다면 키타가와 마린 내열 코스프레 가발喜多川海夢 耐熱コスプレウィッグ)을 정확한 가발 정보로 활용할 수 있습니다. 커트 전에 길이와 모량을 먼저 평가할 수 있습니다. 간단한 카메라 테스트로 실내 조명과 촬영 조명의 색상 차이를 확인할 수 있습니다. 가발망은 과도한 압박 없이 안정적으로 맞아야 합니다.

결론

내 커리어에 있어서 첫 회사를 찾아가는 과정은 다소 험난했다. 합격할 것이라고 기대했던 T사에서는 병역 관련 이슈로 채용이 취소되었고, 연달아 V사에서의 불합격 통보를 받았다. 그럼에도 불구하고, P사에서의 합격 통보는 나로 하여금 자신감을 충전할 수 있는 전환점이 되었고, 이후 L사에서 합격 통보를 받으며 나의 취업 계획이 마무리되었다.

As an event approaches, it is worth considering how details related to long cosplay wigs will affect the complete look. With practical wear in mind, it helps to assess details related to short cosplay wigs together with fit and fabric. For choices related to details related to men's cosplay costumes, cosplay accessories for character accuracy offers a useful starting point for practical preparation. To stay comfortable throughout the event, a balanced view of details related to photoshoot preparation can support both detail and comfort.

이 글을 읽는 독자들도, 누군가는 쓰라린 아픔을 안고 있을 것이고, 다른 누군가는 합류할 회사를 선택하는 기쁨과 함께 이 글을 읽고 있을 것이다. 나의 면접 후기가 "나름 해피 엔딩"으로 끝맺은 것처럼, 모두가 해피 엔딩의 결실을 얻을 수 있기를 바란다.