TENSOR STUDIO
항상 업로드를 꾸준히 해야겠다고 생각하지만, 마음에만 그치고 꾸준히 하지 못하는 것 같다. 근데 어쩔 수 없는게, 좀 새로운 내용을 적고 싶은데, 이미 다른 사람이 올린 내용의 변주밖에는 안되니까 안적는 것도 많기는 하다. 아무튼. 음 일단 코딩 테스트 후기부터 적는게 좋을 것 같다. 사실 코딩 테스트는 일주일, 그러니까 12월 2일, 화요일날 있었는데
총 세 문제로 이루어져 있었고, 코딩 테스트 플랫폼은 구름이었다.
일단 사실 코딩 테스트를 처음 받아봤을 때, 어렵다는 느낌은 받지 못했다. 오히려 쉽다는 인상을 좀 받았는데, 일단 기본적으로 내가 예상했던 코딩 테스트 문제는 일단 자료구조 문제 하나와 그래프 순회 문제(BFS, DFS)와 같은 문제, 그리고 어렵게 나오면 동적 계획법 같은 문제가 나오지 않을까? 싶었는데, 그래프 순회 문제가 하나도 안 나왔다는 점에서 좀 특이했다고 느꼈다. 그러니까 그만큼, 올바른 자료구조를 사용하는게 너무 중요한 코테였다.
1번 문제는 문자열 치환 문제? 였는데 백준에서 비슷한 문제를 찾아보지는 않았지만 암호문을 주어지고, 대응되는 해독 규칙이 주어진 뒤, 암호문을 평문으로 해독하는 문제였다. 하지만 해독 규칙이 무한 루프에 빠질 수 있기 때문에 무한 루프에 빠지는 경우를 잘 처리해야 하는 문제였고
2번 문제는 자료구조 문제였다. 아 여기서 내가 실수를 하지 않았나 싶은데, 일단 문제는 산의 높이가 주어지고(ex: 9, 10, 3, 10, 9) 각 산에 다리를 놓는 문제인데 다리를 놓기 위해서는 각 산의 높이가 동일해야만 하고, 산 사이에 해당 산 보다 더 높은 산이 존재해서는 안 되는 문제였다.
아 이건 내가 면접에 들어가서야 내가 잘못 풀이했다고 느꼈는데, 나는 각 산의 높이를 해시 맵에 넣고, 이런 식으로 풀었는데, 다른 사람이 대답하는 것을 들어보니 스택 문제이지 않았나, 그런 생각이 그제서야 들었다.
3번 문제는 시간이 오래 걸리는 구현 문제였다. 로그 파일이 주어지고, 해당 로그 파일을 특수한 규칙을 가지고 정렬하는 문제였다. 나는 처음에 1번 2번 문제에 집중하다가 3번 문제를 제대로 못풀었는데, 아쉽긴 했다.
면접은 5명이 1조를 이뤄서 진행되었는데, 면접 전 대기시간에 간단한 문제를 풀이하고(종이에) 면접을 들어갔다.
면접은 두 차례로 진행되었는데 기술면접과 이력서 기반 면접 이렇게 두 번으로 진행되었다.
일단 기술면접에서 해당 코딩테스트 코드를 가지고 물어보는 것이 많았는데, 문제가 모두 자료구조 문제였던 만큼 막 무척이나 어려웠던 문제는 아니었지만 자료구조를 잘 사용했어야만 하고, 개발자 면접관 두 분이서 해당 자료구조를 잘 이해했는지, 잘 사용했는지 계속 물어봤다는 인상이 들었다.
일단 첫번째 문자열 치환 문제에서는 해시 셋을 사용해서 이미 도달했던 노드인지를 체크했어야 하는데, 다른 지원자 분들이 그냥 리스트를 사용했다고 했나? 아무튼 그래서 혹시 다르게 풀이한 사람이 있는지 지원자들에게 물어보고 보통은 이렇게 해시 셋, 집합을 이용해서 풀이하는 것이 맞다고 설명하거나, 하는 식의 질문이 주를 이뤘다.
구름IDE에서 코딩 테스트를 진행했던 만큼, 자신의 코드를 제대로 기억하지 못한 경우도 있었을 텐데 그러지 않게 조심해야 했고
음, 그 이후에는 특정 상황을 제시하고 그 상황에서 어떤 문제가 발생할 수 있는지 물어봤는데 동시성 제어? 관련 질문이었던 것 같다.
특정 서버에 접속하는 클라이언트가 있고, 그 서버에 접속하는 클라이언트가 너무 많이 몰려서 서버가 뻗어버리는 상황이 발생했다고 가정하고, 이런 상황에서 어떻게 해결할 수 있는지 물어봤다. 여기서 내가 카프카가지고 헛소리 좀 하다가 그게 안되면 라운드 로빈 등의 방식으로 클라이언트의 요청을 시간적으로 분산시켜야 한다고 대답했는데 이 대답이 조금 후회되기는 한다.
그래서 카프카의 구조를 알려달라는 질문에 내가 예전에 했던 프로젝트에서 4개의 EC2 인스턴스 어쩌구저쩌구 하다가 허무하게 끝났던 것 같다. 아마도 내 생각에는 이런 메시지 큐 같은 대답이 아니라 시간적 분산 등에 초점을 맞춰서 대답했어야 하지 않을까, 싶은 생각이 들기는 했다. 면접관의 반응도 그렇고, 내 옆의 분도 카프카 가지고 대답하다가 조금 핀트가 어긋났다는 대답을 들은 걸 보면…
사실 이런 기술 면접에서 Node.js나 프레임워크 등의 질문이 나올 거라고 생각해서 호이스팅과 같은 ㅋㅋ Node.js 백엔드 개발자 관련 질문을 좀 준비해 갔는데 다른 질문이 나와서 조금 당황하기는 했다.
그리고 이후에는 인성면접? 이력서 기반 면접을 진행했는데, 1분 자기소개나 지원 동기 등을 물어보지 않을까 생각했는데 그런 질문은 없었다. 그럴 수 밖에는 없었던 게, 음 일단 5명? 4명이 1조로 이뤄서 약 30분 정도 면접을 진행했는데 일단 요구했던 대답이 전부 “두문장 세문장 정도로 대답해 달라” 였다. 그러니까 대답할 시간을 많이 주지 않았고, 산술적으로 계산해 본다고 해도 한사람당 대략 6분에서 7분 정도 면접을 진행하는? 그런 식의 면접이었다. 면접결과는 바로 다음 날 오전에 나온다.
면접 경쟁률은 약 6대 1정도라고 들었다. 물론 면접이 나쁜 경험은 아니었다. 그리고 내가 부족했다는 점도 절대적으로 인정한다!! 뭔가 알더라도 제대로 알아야겠다는 생각도 들었고, 면접비 3만원 주신 것도 뭐 나쁘지 않았다. 그래도 1분 자기소개랑 지원동기, 예상 질문에 대한 대답 같은것도 열심히 외워갔는데 아예 물어보지도 않으니ㅠㅠ 좀 서운하긴 했다. 뭐 물어보셨어도 떨어지긴 했겠지만, 아쉬운 면접이었다. 내가 너무 못하더라…
면접비 받은 걸로 커피나 마셔야겠다.
한잔해~