구글 코리아 코딩 인터뷰 본 후기(같은 일기)

사람·2025년 9월 10일
69

회고

목록 보기
1/1

이 글은 제가 작년에 본 구글 코리아 여름 인턴 코딩 인터뷰 본 후기를 저 혼자 보려고 일기 형식으로 썼던 것입니다. 그래서 tmi 남발에 두서가 없이 난잡한 점 양해 부탁드립니다...
이땐 java에 Arrays.sort() 메서드가 존재하는지도 모르고 퀵소트를 직접 구현했을 정도로 ps 알못이었을 때라 좀 부끄럽지만 그래도 귀엽게 봐주세요 하하....


면접 보기 전까지의 과정

지난 달에 에타 학과 게시판에 현직자 선배님이 구글 여름 인턴 뽑는 중이라고 글 올려주신 걸 봤다. 될 가능성은 없다고 생각했지만 지원하는 건 무료고 ict 글로벌 인턴 준비하면서 영문 레쥬메 써둔 것도 있고 해서 걍 회사 이름만 구글로 바꿔서ㅋㅋㅋㅋ 제출했다.

무엇보다 인턴 공고글 보니까 최대한 빨리 지원해 달라고 해서 차일피일 미루는 거보다 빨리 내는 게 나을 거 같다 싶었다. 한국 기업들처럼 자기소개서 써라, 포트폴리오 내라 어쩌구 저쩌구 구구절절한 채용 절차가 없는 게 너무 좋더라. ict 글로벌 인턴십도 광탈하긴 했지만 그 짧은 시간 동안 없는 말 지어내고 플젝 부풀리느라 진이 다 빠졌는데 구글은 그런 거 하나도 없이 걍 다룰 줄 아는 기술 몇 개 선택하고 한 쪽짜리 레쥬메 하나만 띡 내도 된다. 오히려 장황한 것보다 그렇게 깔끔한 걸 더 선호한단다.

뭐 아무튼 제출하고 손가락 빨고 있었는데 한 3일쯤 뒤에 정말로 구글 직원분께 메일이 왔다.

난 솔직히 지원서를 읽기는 할까? 싶었는데 무려 3일만에 피드백이 오다니…

면접 일정 조율, 면접 언어 선택 등등 하기 위한 구글 폼이었는데 보자마자 바로 뚝딱 해서 제출했다.

그랬더니 진짜 면접 준비 안내 메일이 왔다….

설마 진짜 내가 구글 면접을 보나…?? 이왜진?

일단 보자마자 확인했다고 메일 답장 보냈는데

얼마 안 지나서 인터뷰 일정 잡혔다고 또 메일이 오는 거다….ㄷㄷ

지원서에 써 있는 내용은 진짜 별 게 없어서… 서류에서 걸러진 사람은 거의 없는 것 같다. 고작 그 정도 서류만 가지고 거르면 그건 또 그거대로 말이 안 되기 때문에… 병역 문제 비자 문제 없고 폼 제출한 사람들한테는 다 면접 기회를 준 게 아닌가 싶다.

난 딱히 한 것도 없는데 구글 인턴 면접 본다고 주변에 말하니까 다들 와 대단하다 축하한다 이래서 머쓱;;했다;;

그리고 생각보다 프로세스가 빠르게 진행돼서 놀랐다. 20일에 지원했는데 29일에 인터뷰 날짜 픽스되고 일주일 후 바로 인터뷰… 지원한 후 인터뷰 본 오늘까지 2~3주밖에 지나지 않았다.


인터뷰 준비

솔직히 처음에는 에이 내가 구글 인턴 면접을 준비한다고 되겠어? 이런 마인드였어서 별 생각이 없었다. 게다가 난 코테 준비가 거의 안 되어 있었기 때문에…

그래도 뭐라도 해야 되니까 구글링을 좀 해서 다른 분들의 인터뷰 후기를 찾아봤다.

그런데 한국 기업들의 코테 문제처럼 괴랄한 백준 골드 문제 이런 거보다 알고리즘 자료구조 기본기가 튼튼한지를 보는 문제들이 출제된다는 얘기들이 많았다. 그리고 문제를 맞혔느냐보다 인터뷰어와 어떻게 소통하는지, 어떻게 논리적으로 문제를 해결해 나가는지 그 과정을 주로 본다고 하더라.

IMAGE ALT TEXT HERE

(위 이미지를 클릭하면 유튜브 영상으로 연결됩니다.)
구글에서 올려준 예시 영상이다. 방향을 잡는 데 큰 도움이 됐다. 막 괴랄한 문제가 나오지 않는다는 것도 영상 속 문제를 보니까 좀 이해가 됐고.

구글 코리아 면접 후기 이분의 블로그 글도 도움이 많이 됐다!

무작정 한 번에 최상의 답을 내지 못하더라도, 인터뷰어와 소통하면서 자신의 코드의 문제를 파악하고 그걸 해결하기 위해서 어떤 알고리즘, 자료구조를 사용해야 하는지를 논리적으로 도출해 나가는 과정을 보고 싶어 하는 거 같았다. 괴랄한 문제를 지금 당장 풀어내지 못하더라도 이런 식의 논리적인 사고 흐름을 할 줄 아는 사람, 그리고 기본기가 탄탄한 사람은 인턴으로 입사했을 때 충분히 성장할 수 있다고 보는 게 아닐까?

인터뷰 후기를 이것저것 찾아보면서 아주 조금이나마 희망이 생긴 것 같았다. 왜냐면 코테 문제를 주야장천 푼 사람들은 내가 절대 이길 수가 없는데 이런 기본기는 대부분의 사람들의 이해도가 비슷할 것 같았다. 그리고 어려운 코테 문제는 푸는 방법을 모르면 아예 접근조차 어려운데 논리적인 문제 해결력 이런 건 단기간에 기르기 어렵지만 인터뷰 당일날 머리가 좀 잘 돌아가거나 나에게 잠재적인 천재성이 있다면(?) 좋은 인터뷰를 할 수도 있지 않을까 싶었다.

그래서 예전에 알고리즘 공부하면서 정리해뒀던 sorting, searching 알고리즘들이랑 스택 큐 set map 등등 자료 구조들 한 번에 모아서 컨닝 페이퍼 같은 걸 만들었다ㅋㅋ 자바로 구현해놨던 코드들이랑 시간 복잡도 다 정리해서. 그리고 자바 컬렉션에 있는 Vector Array Map Set 이런 것들 특징이랑 대표적인 메소드도 한 번 싹 훑었다. 이게 진짜 도움이 많이 됐다.

그리고 구글에서 추천해준 leetcode라는 사이트에서 미디엄 수준의 문제가 나온다길래 몇 개 찍먹해봤다. 들은 대로 막 난해하지는 않더라. 내가 아직 구현이 익숙지 못하니까 예시 코드들 구글링해가면서 이런 문제들은 이런 식으로 코딩하면 되겠구나~ 하는 감 정도만 익혔다. 백트래킹이나 dp 이런 거. 내가 지금껏 코테 문제 조금이나마 풀어보면서 느낀 게, 내가 아는 지식이 너무 부족한 상태에서 맨 땅에 헤딩을 하니까 오히려 잘못된 방향으로 코딩하면서 시간을 버리고 있는 것 같기도 했다. 그래서 이 코딩 인터뷰 준비하면서 이렇게 잘 된 코드들 리뷰하며 감을 먼저 익힌 다음에 문제 풀이를 하는 것도 괜찮겠다 싶은 생각을 했다. 마치 필사하듯이….

더 제대로 연습하고 싶었지만 시간이 얼마 없어서 일단 눈에 바르고 컨닝 페이퍼 참고하는 정도로 만족하기로 했다.


인터뷰 당일(오늘)

오늘 12시 반부터 첫 번째 인터뷰가 있었고, 2시 15분부터 두 번째 인터뷰가 있었다. 원래 학교 수업 듣는 중간 중간에 하려고 했는데 어차피 수업에 집중도 안 될 것 같고… 집에서 편하게 하는 게 나을 것 같아서 그냥 집에서 하기로 마음 먹었다. 근데…. 하필 오늘 아랫집에서 대공사를 하느라고 집안이 떠나갈 듯이 시끄러웠다. 결국엔 집을 나왔는데 카페에서 하긴 시끄러울 거 같고 스터디룸 대관해주는 곳도 없어서 진짜 약간 멘붕이 왔었다. 학원에까지 연락해서 잠깐 강의실 써도 되냐고 여쭤봤더니 12시 반이면 초딩들 올 시간이라고 하고… 스터디룸 있다는 근처 독서실은 갔더니 운영을 안 한다고, 대신 휴게실에서 하는 건 어떻겠냐고 하시더라…. 영어로도 면접 봐야 하는데 사람들 왔다 갔다 하면 신경 쓰일 거 같고, 너무 큰 소리 내면 안 된다니까 걱정돼서 처음에는 그냥 나왔는데, 인터뷰 시작 30분 전까지 장소를 못 찾아서 결국에는 그 독서실로 돌아가서 면접을 봤다. 근데 다행히 내가 있던 4시간 내내 휴게실에 사람이 거의 아무도 안 들어와서ㅋㅋ 나름 쾌적하게 면접 볼 수 있었다.

첫 번째 인터뷰

첫 번째는 영어 인터뷰였다. 맨 처음 메일로 받은 구글폼에서 둘 다 한국어로 할지, 한국어 한 번 영어 한 번 할지, 둘 다 영어로 할지 선택할 수 있었다. 인턴으로 입사하게 되면 영어 쓸 일이 많을 테니까 그래도 영어 조금은 한다는 걸 보여주면 좋지 않을까? 싶어서 한국어 한 번 영어 한 번으로 선택했는데 후회가 막심하다… ict 글로벌 인턴십이야 영어 실력이 중요했지만 이 구글 인턴십 인터뷰는 진짜 그냥 편한 언어 선택해서 봐도 상관 없는 거 같더라. 그걸 좀 나중에야 알았다. 그래서 바꿔 달라고 요청을 드릴까 하다가… 어차피 그 분들이 내 영어 실력 보려고 하시는 것도 아니고 의사 표시만 제대로 되면 된다고 생각해서 그냥 하기로 했다.

아무튼 첫 번째 영어 인터뷰가 시작됐는데, 시작하자마자 문제를 냅다 그냥 한 번에 영어로 쭉 읽어주셔서;; 처음에 하나도 못 알아들었다…. 나는 구글 독스에 쓰면서 설명해주시거나 문제를 보여주시거나 할 줄 알았는데 그냥 한 번 읽어주시고 끝이길래 존나 당황했다. 구글 미트에 있는 자막 기능을 켜둔 게 그나마 다행이었다… 그거 아니었으면 이해하는데 더 오래 걸렸을 것 같다. 못 알아들었다고 다시 한 번만 말씀해 달라고 했더니 그제야 테케로 예시를 보여주셨다. (혹시나 문제될까 싶어 구체적인 문제 내용은 생략합니다.) 들은 대로 진짜 straightforward한 문제…

처음에는 걍 (생략) 않을까요? 했는데 (생략)면 그땐 안 된다는 걸 뒤늦게 알았다. 그래서 어떻게 하지 하다가 (생략) 식으로 하겠다고 말씀드렸다. 아마 그렇게 하면 동작할 것 같다고 하시면서 좀 더 디벨롭해보겠냐, 바로 구현해보겠냐 하시길래 더 마땅한 게 떠오르지 않을 것 같아서 바로 구현해보겠다고 했다. 근데 내가 구글 독스 수정하는 게 인터뷰어 분 화면에는 안 보인다길래… 뭐 어떻게 해야 되나 얼타고 있다가 시간 허비했다;; 새로고침하니까 되더라… 이런 기술적인 문제가 생각보다 많은 것 같았다.

아무튼 일단 정렬해야 될 거 같아서 컨닝 페이퍼 보면서ㅋㅋㅋ 퀵소트 구현하고 나머지 부분도 뚝딱뚝딱 코딩하고 나서 그분이 이러이러하면 안 되지 않을까요? 하셔서 그거 고치고… 이 정도면 될까요? 했더니 코드에 문제가 좀 더 보이긴 하는데 시간이 끝났다면서 여기까지 하자고 하셨다.

아니 그리고… 수행 시간이 어떻게 되냐고 물어보셨는데 리스트 묶기 전에 퀵소트 한 건 까먹고 원소 5개씩 묶는 for문만 생각해서 O(N)이라고 했다;; 에라이… 하……

위에 임베드한 영상이나 다른 인터뷰 후기들 보면서 인터뷰어와 티키타카해가며 문제 푸는 그런 분위기를 생각했는데, 첫 번째 인터뷰어 분은 말씀을 거의 안 하셨다. 나도 말 안 하면 오디오가 비니까 그건 또 안 될 거 같아서 나 혼자 코드 설명해 가면서 코딩했는데 듣고는 계셨던 건지….. 피드백도 없으시고 묻는 질문에만 대답하시더라. 솔직히 별로 나와 얘기하고 싶지 않으신 것처럼 느껴졌다…… 벽 보고 혼자 떠드는 느낌. 그래서 뭔가 말 걸기도 조심스럽고 어색했다.

그리고 거기에 더해서 내 영어가 부족한 탓에 편하게 말을 못 이어가는 게 너무 답답했다. 말 한 마디 한 마디 할 때마다 생각을 해야 되니까 할 말도 안 하게 되고…. 나 영어 그래도 좀 늘었다고 생각했는데 아닌가보다^^

쩝… 잘한 건 같진 않지만 그래도 동작하는 구현 방향 생각해 낸 걸로 만족하기로 했다.

두 번째 인터뷰

두 번째 인터뷰는 한국어라 그나마 좀 마음이 편했다…^^

첫 번째와 두 번째 인터뷰 사이에 1시간이 비었는데 막간을 이용해 커피랑 초콜릿 사와서 먹으면서 마음의 준비를 했다.

두 번째 문제는 알고리즘이라기보다는 구현 문제였다. 두 번째 인터뷰어 분께서는 문제를 읽어주지 않으시고 구글 독스에 미리 써두셔서 읽고 하면 됐다. 근데 영어로 써 있어서… 솔직히 해석하는데 조금 애먹었다;; 로그 파일 입출력까지 직접 구현해야 하는 줄 알고 식겁했는데 알고 보니 그거 파싱해주는 메소드는 이미 있다고 가정하고 하는 거였다. 내 부족한 영어로 인하여…. 내가 이해를 잘 못하니까 부연 설명을 더 해주셔서 겨우 제대로 이해했다.

이해하고 보니까 이것도 대단히 어려운 문제는 아니었다. 근데 문제에 파싱 메소드의 리턴 데이터가 [(”사람1”, 5), (”사람1”, 7), (”사람2”, 5), … ] 이런 식으로 key value 형식으로 되어 있길래 나는 해시맵으로 리턴받으면 되나? 했는데 그게 아니라고 하셔서…. 뭐지 했는데 나한테 map이라는 자료구조의 특징을 말해달라고 하시더라. 그래서 그거 설명하면서 key 값이 중복될 수 있어서 해시맵에 저장하면 안 되는구나를 깨달았다.

(생략) 것이 문제의 의도였던 것 같다. 말씀해 주신 대로 클래스 정의하고 또 퀵소트 쓰고ㅋㅋ 대충 구현 마무리했다. 시간이 부족하니 퀵소트는 수도코드로만 작성해라, Map 메소드가 기억 안 나면 그냥 임의로 지정해서 해도 된다 하신 걸 보면 이 코드가 실제로 돌아가는지보다는 내가 프로그램의 전체적인 흐름을 파악하고 있는지를 중점적으로 보시려는 것 같았다.

두 번째 인터뷰를 진행하는 도중에는 내 버즈가 자꾸 연결이 끊겼다;; 지금껏 맥북에서 버즈 쓰면서 이랬던 적이 없는데 당황스러웠다. 중간에는 갑자기 인터뷰어 분 목소리가 안 들려서 나갔다 들어오기도 했다. 시간 꽤 허비했는데 이거 때문에 추가 시간 주시진 않더라ㅎ….

두 번째 인터뷰어 분은 첫 번째 분보다 훨씬 티키타카가 잘 됐고 말씀도 많이 해주셔서 좋았다. 역시 한국어여서 그랬던 것도 크고ㅎ 구현도 첫 번째보다는 훨씬 만족스럽게 한 것 같다. Map 관련 질문하신 것도 잘 대답했고 시간 복잡도도 O(NlogN)이라고 똑바로 말했다ㅋㅋ

그리고 이분께서는 5분 정도 남기고 질문할 시간도 주셨다. 솔직히 딱히 궁금한 게 없어서ㅋㅋㅋ 구글 밥이 진짜 맛있는지 이딴 거나 여쭤봤다;;; 쩝….


총평(?)

듣도 보도 못한 문제가 나와서 아무 것도 못하면 어쩌나 걱정했는데 그 정도의 상황은 펼쳐지지 않아서 그나마 다행이었다. 듣던 대로 정말 기본기에 충실한 문제들이었다.

면접 내내 그 흔한 지원 동기 한 번 물어보지 않으셨다. 쓰잘데기 없는 형식적인 절차 없이 본인들이 궁금해 하는 역량만을 45분동안 보려고 하는 게 느껴졌다. 여타 다른 기업 면접처럼 제가 뭘 할 줄 알아요. 저 이런 것도 해봤어요. 이러면서 뽐내는 자리가 아니라 정말 오직 CS 역량 그 하나만 보고 채용하는 것 같다. 다른 사람들의 화려한 포트폴리오를 보면 은근히 기죽을 때도 많았는데 구글은 그런 것들은 본인들이 잘 가르칠 수 있다는 자신감이 있고, 그보다 그런 지식들을 잘 받아들일 수 있는 사람인지, 그 알맹이를 보려는 것 같아서 좋았다.

이런 식의 코딩 인터뷰는 당연히 처음이었는데 생각보다 재밌었고 유익했다. 떨어지든 붙든 구글러 분들과 이야기할 수 있는 기회를 가졌다는 것 자체로 의미 있는 경험이었다. 지원하길 잘한 것 같다.

그래도 합격은 어렵겠지….? 라고 쓰지만 또 은근히 기대하고 있는 나ㅎ……

떨어지더라도 다음에 다시 도전해보고 싶다. 그땐 둘 다 한국어로…ㅋㅋㅋㅋㅋㅋㅋㅋ


이 글을 읽으시는 분들을 위해 덧붙이는 말

위 글은 제가 면접을 끝낸 당일 일기처럼 구구절절 쓴 글이라 조금은 생략된 내용이 많기에 보시는 분들을 위해 몇 마디 덧붙입니다.

1. 인터뷰가 이뤄지는 방식

위에 언급한 것처럼 인터뷰는 총 두 round로 진행됩니다. 한 round당 45분씩 진행되고, 인터뷰어 분들은 이후에 다른 분의 인터뷰 일정이 있으시기 때문에 45분이 진행되면 칼 같이 종료하십니다. 기술적인 문제가 있어서 잠시 지연됐더라도 추가 시간 같은 건 절대 주지 않습니다.

사전에 협의한 날짜와 시간에, 메일로 받은 구글 미트 링크로 접속하면 인터뷰어 분께서도 접속해 1대1로 화상 인터뷰가 진행됩니다. 코딩 인터뷰이기 때문에 코드를 작성해야 하는데, 이때 코드는 인터뷰이와 인터뷰어가 함께 접속해 있는 구글 독스에 작성합니다. 이 구글 독스는 ide가 아니기 때문에 여기에는 단순히 정답 코드만 작성하는 것이 아니라, 서로 간의 이해를 돕기 위해 그림을 그릴 수도 있고 메모장처럼 활용할 수도 있습니다. 이 구글 독스를 잘 활용하셔서 인터뷰어와 소통하며 문제 하나를 풀어나간다고 생각하시면 됩니다. 코드라는 결과보다도 45분이라는 시간 동안의 문제 해결 과정과 소프트 스킬을 보는 것이기 때문에 이 구글 독스를 잘 활용하셔야 합니다. 가능하다면 구글 독스보다 더 자유롭게 그림을 그릴 수 있는 화이트 보드가 비춰지는 곳에서 인터뷰를 보는 것도 매우매우 추천드립니다. 화이트 보드가 여의치 않다면 종이에 굵은 펜으로 그려서 화면에 보여주셔도 됩니다. (실제로 구글에서 이렇게 참여하도록 권장하고 있습니다.)

2. 드리고 싶은 말씀

위에도 어느 정도 녹아 있는 내용이긴 합니다만, 제가 느끼기에 중요했던 부분을 다시 한 번 정리해 드리고자 합니다.

1) 영어로 프리 토킹이 가능하지 않다면 무조건 한국어로 면접에 임할 것.

면접에서 사용하는 언어는 라운드 별로 사전에 지정할 수 있습니다.

물론 인턴으로 입사하게 된다면 영어를 매우 매우 자주 쓰게 되므로 영어 실력이 중요하다고 합니다.

하지만 인터뷰 과정에서는 한국인이 영어 면접을 선택했다고 해서 더 좋게 봐주거나 하지는 않는다고 합니다.

전 당시에 영어 과외 4개월차라 우매함의 봉우리에 있어서 제가 영어를 잘한다고 착각하고 패기 있게 첫 번째 라운드를 영어 면접으로 선택했다가 대차게 망했습니다.

여러분들은 저와 같은 실수를 하지 마시고 본인이 가장 편한 언어로 인터뷰에 임하시길 권합니다.

2) 최대한 빨리 지원할 것.

대략적인 서류 지원 마감 날짜가 정해져 있지만 마감 날짜가 지난 후부터 서류 심사를 하는 것이 아니고 바로 바로 서류를 받아 면접 날짜를 잡아주기 때문에 최대한 빠른 시일 내에 지원하는 것이 무엇보다 중요한 것 같습니다.

그래야만 인터뷰까지 갈 확률이 더 높아집니다.

3) 무작정 문제 풀이에 덤비지 말고, 충분히 질문해서 문제 풀이의 제한 사항이나 조건을 명확히 할 것.

문제 조건이 백준 문제처럼 명료하게 주어지지 않습니다. 그렇기 때문에 문제 풀이에서 애매하거나 정해져 있지 않은 것에 대해서는 반드시 질문하셔야 합니다. 무작정 답을 내려고 하는 것이 아니라 이러한 엣지 케이스도 하나 하나 고려하는지, 그 과정에서 어떻게 소통하는지 또한 중요한 평가 대상입니다. 질문을 드리면 답을 주기도 하고, 스스로 정의해 보라고 말씀해 주시기도 합니다.

  • input data들이 서로 unique한지?
  • input data가 정수가 아닐 수도 있는지?
  • input의 범위가 어디부터 어디까지인지? 음수도 가능한지?
  • output이 어떤 순서로 출력되어야 하는지?
  • input이 정렬되어 주어지는지?

등등의 것들을 문제를 풀기 전 확인해 보고, 문제에 명확히 나와 있지 않다면 반드시 질문하시길 바랍니다.

4) 기본에 충실할 것.

https://youtu.be/6ZZX9iIgFoo?si=DmHg77FGSkmMCAXu

다음은 구글에서 업로드한 위 interview tip 영상에 언급된, 인터뷰이가 알아야 하는 자료구조와 알고리즘 목록입니다.

제가 구글 코딩 인터뷰를 준비하면서 가장 크게 느꼈던 것은 어마어마한 알고리즘 지식을 요구하는 것이 절대 아니라는 점입니다. 위에 나와 있는 기본적인 자료구조와 알고리즘에 대해서만 확실하게 숙지하시고, 어떤 상황에 그것들을 쓰는지(주어진 문제에 이 자료구조나 알고리즘이 적합한 이유가 무엇인지) 정확하게 설명할 수 있으시다면 충분하지 않을까 싶습니다.

profile
알고리즘 블로그 아닙니다.

7개의 댓글

comment-user-thumbnail
2025년 9월 11일

경험 공유 감사합니다! 재밌게 읽었어요

1개의 답글
comment-user-thumbnail
2025년 9월 11일

좋은 경험이 되셨을 것 같습니다!
잘 보고 가요

1개의 답글
comment-user-thumbnail
2025년 9월 12일

재밌게 읽었습니다!

1개의 답글
comment-user-thumbnail
2025년 9월 21일

너무 도움이 되는 글이네요...! 응원합니다. 잘 읽었습니다.

답글 달기