가을기 Workspace

[일본취업] PayPay 입사 지원기 - 4 2차 Tech 인터뷰 본문

커리어

[일본취업] PayPay 입사 지원기 - 4 2차 Tech 인터뷰

가을기_ 2023. 7. 14. 01:16

 

 

2차 인터뷰는 일본어로 진행된다.
1차 인터뷰가 영어였고, 이번엔 일본어로 진행된다고 하니 긴장이 되기도 하고, 
한편으론 지금까지 공부한 언어를 제대로 써먹을 수 있는 기회란 생각에 설레기도 하다.
내게 다양한 언어를 쓸 수 있다는 점은 상당히 매력적인 포인트다.

2차 인터뷰는 두 번에 걸쳐 1시간 씩 다른 사람과 진행한다고 전달받았다.
구글에서 검색을 해보면 라이브 코딩, 시스템 디자인, 자료 구조 및 알고리즘과 Java 관련 지식을 물어본다고 알려져있다.
준비를 따로 할 수 있는 영역은 아니고 평소에 쌓아둔 지식과 커뮤니케이션 스킬로 승부를 보아야 한다.

 

2차 Tech 인터뷰 1 - System Design 

많은 심리학자들이 말한다. 
공포는 그 대상이 무엇인지 모를 때 가장 증폭된다고.
우리가 시험을 보기 직전이 가장 긴장이 되는 이유는 그 시험 문제가 뭐가 출제가 될지 몰라서다. 
그리고 시험지를 받아들이고 문제가 무엇인지 알게 되는 순간 긴장은 어느정도 완화된다.

외국 회사의 System Design이라고 해서
벌벌 떨었던 나는 문제를 받아들이는 순간 안심했다. 
이정도면 1시간동안 충분히 기술토론을 해가며 풀 수 있다고.
우리가 평소에 API를 만들때 하던 고민들을 그대로 면접에서 활용하면 되었다.

문제가 무엇인지 설명할 수는 없으나, 
위의 "가상 면접 사례로 배우는 대규모 시스템 설계 기초" 책을 읽었던 것이 큰 도움이 되었다.
핵심만 짚자면 API 구현 설계를 함에 있어 기술적 요구 사항을 미리 확인해 두어야 한다는 것이다. 
API를 호출하는 빈도는 얼마나 되는지, 저장해야하는 데이터 양은 얼마인지, 조회 속도는 최대 몇 ms를 넘기면 안되는지, TPS는 얼마인지, Eventual Consistency 로 설계해도 되는 것인지 등등.
요구 사항이 확실해지면 CPU - Memory 및 Disk 의 Trade-Off를 잘 따져서 설계하면 된다.

상대가 일본분이라고 해서 까탈스럽거나 경어를 잘 못쓰는 것으로 지적받으면 어떡하나 싶었으나, 
다행히 일본어를 잘한다고 칭찬도 해주셨고 친절하게 리드해주셔서 
어렵지 않게 첫번째 인터뷰를 마무리 지을 수 있었다.
감사합니다 T상.

 

2차 Tech 인터뷰 2 - Data Structure / Algorithm / Live Coding

약간의 쉬는 시간을 가지고 그 다음 인터뷰를 진행했다.
이번 상대도 역시 일본 분이셨고, 앞서 인터뷰보다는 더 경력이 있으신 분이 인터뷰어로 참가하셨다.
이번엔 자료구조 및 알고리즘, Java 관련 질문 및 라이브 코딩이 진행되었다.

우리가 흔히 쓰고 있는 자료구조를 우리는 얼마나 잘 이해하고 쓰고 있을까. 
HashMap을 직접 구현해야한다고 했을 때 구현할 수 있는 개발자는 얼마나될까.
이러한 기본기는 평소에 튼실히 다져놔야 한다는 느낌을 받는다.
알고리즘 역시 마찬가지다. 단순히 언어 Level에서 Sort 메서드 제공한다고 
그냥 가져다 쓰다보면 시간복잡도를 깜빡하는 경우가 태반이다.
이러한 생각을 돌아보게 만드는 면접이었다.

라이브 코딩 인터뷰는 한국보다는 외국에서 많이 시행되고 있는 인터뷰다. (한국에선 쿠팡이려나?)
프로그래밍 문제 하나를 두고 인터뷰어와 후보자가 같이 풀어보는 것이다.
주의할 점은 LeetCode 등지에서 풀어본 문제라고 해서 절대로 바로 답을 말해선 안되고, 과정을 하나씩 하나씩 Step-up 해야한다.
후보자가 정답에 다가가는 과정에서 동료와의 커뮤니케이션 스킬을 보는 것이 메인이기 떄문이다.
(20분 내로 풀어야 하는 문제기에 그렇게 어려운 문제가 나오지도 않을 뿐더러, 아마 대부분은 풀어본 문제가 나오지 않을까?)

코딩 인터뷰를 준비하고 싶다면 "코딩 인터뷰 완전 분석"읽는 것이 부담을 많이 덜어줄 것이다.

 

인터뷰 후기

면접이 전반적으로 어렵지 않았다. (되려 한국보다 쉽다)
그만큼 프로덕트 개발자라면 기술보다는 커뮤니케이션이 중요하다는 반증이다. 
우리는 개발자로 일하면서 커뮤니케이션 스킬을 등한시하는 경향이 있지만, 
리누스 토발즈가 아닌 이상, Tech에만 집중하는 개발자가 아닌 한 우리는 커뮤니케이션을 잘하려고 노력할 수 밖에 없다.
이것이 한국이 아니라고 다를 것이 없고, 어느 나라던지 우리는 사람을 위해 일한다.

나는 분명히 개발자로서 면접을 보는 것이지만, 
커뮤니케이션 스킬을 어필하기 위해서, 그들과 일할 수 있다는 것을 입증하기 위해서
기술보다 언어의 중요성을 실감했다. 
우리는 결국 사람이고 내 생각을 그들이 들을 수 있는 언어로써 표현할 수 있어야하기 때문이다.

잘하는 개발자라고 어디나 갈 수 있다고 우쭐대지 말자.
중요한 건 그들과 커뮤니케이션 할 수 있는가다.

 

결과

다음날 3차 인터뷰 일정을 잡자고 안내를 받았다.

여권 정보를 보내달라고 한다.
끝이 보여간다.

Comments