[2018년 4월 17일 화요일][구글 추가 면접 통보]

구글 코리아의 채용 절차는 들었던 것보다 매우 빠르게 진행되었다.

오늘자로 결과 발표가 난 것이며 그 결과는 면접관의 평가 내용이 반반으로 나뉘어 추가 면접을 봐야 한다는 내용이었다. 다음 근무지로 발령이 난 이후에는 엄두내지 못할 일이라 생각하기에 가능한 날들 중에서 가장 좋은 날들을 골라 발신했다. 앞선 면접보다 더 여건은 안좋아졌다고 생각한다. 면접 시스템이 바뀌기 전에는 7번 정도 면접을 봤다는데 지금과 같이 면접관들의 의견에 따라 결정을 한다면 4승 3패인 경우가 합격이었지만, 지금의 면접은 정식은 4번 추가는 2번으로 4승 2패의 상황까지만 합격으로 허용할테니 말이다.

구글 면접을 보기 전까지 평온했던 일상도 지금은 매우 혼잡스러운 일들 투성이다. 이 혼잡함에서 집중력을 발휘해 문제를 풀어낼 수 있는 것도 능력이겠다. 카카오도 그렇고 구글도 그렇고 어떻게보면 깔끔하게 바로 결과가 나오지 않고 애매한 결과에서 시간이 끌리는 것이 어찌보면 기다리는 입장에서 힘들기도 하지만 다르게 생각하면 부족한 점을 인지하고 다시 한 번 기회를 얻을 수 있는 행운으로 인지할 수도 있다.

미래는 결국 내가 만들어가는 것이다. 그것이 운이라고 하더라도 결국 나의 것이다.

[2018년 4월 12일 목요일] [카카오 탈락, 구글 기다림, 네이버 전화]

지금 나는 정서적으로 매우매우 힘들다.

위의 면접 결과들과 관계없이 현 직업에서의 다음 발령지가 정해지지 않았고, 지금 일에서 크게 스트레스를 받을 일이 생겼기 때문이다. 사실 상 결과가 나오기 전까지 후회는 종착점이 없으므로 모든 생각은 위상정렬되어 과거의 후회로 한 걸음씩 나아간다.

카카오는 최종적으로 탈락했다. 부족한 내 실력에도 다른 방법을 위해 신경 써주신 팀장님께는 깊은 감사를 드린다. 결과 처리가 늦어진 것 때문에 더 신경을 쓰셨는지도 모를 일이지만 내가 그 정도의 신경을 쓸 만한 사람이 된다는 말과 내 부족한 점을 보완하기 위해서 공부할만한 것들. 조금만 더 노력하면 굳이 카카오가 아니더라도 동일한 좋은 곳들에서 일할 수 있을 것이라는 말은 정말 큰 힘이 되었다.

구글에서는 영문 성적 증명서를 요청했는데 공인인증서가 당일 없던 관계로 동사무소를 들락날락하며 겨우 제출했다. 생각해보니 내 이력서에는 학점이 적혀있지 않았다. 그걸 생각하니 참 아득해져버렸다. 진실로 간절히 원하는 수밖에 없다.

이 많은 일들로 나는 극심하게 스트레스를 받고 불안해하고 있다. 그러던 와중 검색을 통해서 네이버에도 지원하게 되었다. 피드백은 무척이나 빨라 이력서를 낸지 불과 3시간 정도만에 전화면접을 보게 되었다. 아마 곧 시작할 듯하다.

사실 잘 되더라도 모든 것이 불안하다. 항상 전력을 다해야하는 생활에 나는 어느덧 익숙하지 않은 사람이 되었다. 모두가 나 정도는 똑똑하고 더 잘하는 조직에서 경쟁을 겪어본 적이 너무도 아득하며 겁이난다. 하지만 어떤 것도 시도하지 않는 것은 영원한 후회를 남길 뿐이고, 적어도 내 자신만큼은 끝까지 나를 믿고 응원해주는 사람이 되어야지 않겠냐는 생각이든다.

[2018년 4월 5일 목요일][구글 코리아 면접]

구글 코리아의 기술 면접을 마치고 나와 약속 전에 잠깐 기록을 남긴다.

기술 면접의 스타일은 익히 알려진 바와 같으며, 아쉬운 점은 좀 더 텐션을 끌어올려서 하지 못한 점이다. 나는 오전 10시 45분부터 면접을 시작해 중간에 점심을 얻어먹을 수 있었다. 점심이 끝나고 다시 면접이 시작되었는데 오전보다는 더 아쉬운 면접이었던 것 같다.

중간 중간 남는 시간에 질문이 있으면 물어볼 수 있어서 구글에 대해서 많이 물어봤는데 정말 좋은 회사라는 생각이 들었다. 일단 면접관을 전적으로 신뢰해주는 점이 대단하고, 주변 사람들이 모두 똑똑하다는 점, 모든 직원이 성장할 수 있도록 환경과 기회를 제공한다는 점이 매우 부러웠다. 물론 그만큼이나 입사가 쉽지 않다는 점을 알 수 있었다.

대화에서 유추한 바로는 구글은 100%의 확률로 인재를 찾지는 못하지만, 100%의 확률에 가깝게 인재가 아닌 사람을 떨어뜨리는 면접 시스템을 가지고 있다. 전 세계의 너무 많은 인재들이 구글에 지원하기에 전자는 큰 문제가 되지 않을 것 같다.

회의실을 찾으러 돌아다니면서 본 여러가지 풍경들은 또다시 많은 부러움을 느끼게 해주었다. 자신을 성장할 수 있게 만들어주는 회사를 싫어하기는 쉽지 않을 것 같다.

2018년 3월 24일 토요일 [오프라인 1차 인터뷰]

3월 22일은 인터뷰 날이었다.

21일 새벽을 지새고 제출물을 겨우 제출한 다음 서울로 향해 옷을 사고 숙소에 짐을 풀고 잠깐 잠든 후 면접 준비를 시작하기로 했다. 그러나 오전 11시 30분에 일어난 것이 큰 문제가 되었다. 급하게 택시를 타고 판교로 향해 근처 카페에서 남은 한 시간 동안 프리젠테이션을 준비했지만 시간부족으로 정말 넣지 못한 것들이 많았다.

면접관은 정말 많았다. 한 팀의 인원이 왔다고 설명을 하셨는데 긴장도 되지만 감사한 마음이 들었다. 면접은 정말 어려웠다. 나의 강점을 찾기 위한 목적이라 설명하시고 하나의 답변에서 더 어려운 답변으로 질문자의 답변이 막힐 때까지 물어보는 식이었다. 면접이 흘러감에 따라 문제가 쉬워지면서 매우 불안해졌다. 더 이상 나에게 기대하는 것이 없거나 내 수준이 낮기 때문에 쉬운 것을 물어보는 것이라는 생각이 들었다.

다행히 과제는 커트라인을 간신히 통과했지만 아쉬운 점이 너무 많았다. 모델은 너무 간단했고, 조금 더 원리에 대해서 알아보고 가는 것이 좋았다는 후회가 들었다. 나의 배경에 비해서는 잘한다는 이야기를 중간에 들었지만 세상에서 가장 무섭게 들리는 칭찬과도 같았다.

그 자리에 있던 팀원들을 보며 살면서 느껴보지 못한 부러움을 느꼈던 것 같다. 팀의 일에 대해 예상은 했지만 실제로 그것이 맞다고 생각하니 꼭 가고 싶다는 생각이다. 이런 절실함을 1년 전에라도 느낄 수 있었으면 더 좋았을 걸.

 

카카오 면접을 준비하던 중 구글 서류 합격 발표가 났다.

근 3개월이 지나서 탈락인 줄 알고 있었는데 정말 기분이 좋았다. 오프라인 면접 중 일부는 영어로 진행되어 인터뷰 연습을 위해 온라인으로 면접 연습을 도와줄 튜터를 구해보기로 했다. 시간은 없지만 주어지는 모든 기회에 최선을 다해 임해야겠다.

2018년 3월 8일 목요일 [중간결과]

오늘자로 카카오 2차 코딩테스트 합격을 전달받았다. 이제 오프라인 면접이 시작된다.

우리 부서는 24시간 근무 특성 상 휴무 대체인력이 필요해 한 달 전에 미리 연가 일정을 정하는 관계로 조정이 필요해 당장 면접일을 답하지는 못했다. 내일 아침에는 내가 면접을 볼 수 있는 날을 정할 수 있을 것 같다.

기분이 좋으면서도 매우 불안하다. 대강의 개요를 알기 위해서 잡 플래닛과 같은 곳에서 정보를 찾아도 내 상황과 비슷한 것이 없어 힌트조차 찾을 수 없다. 그저 2차 코딩테스트를 기반으로 추정할 수 있을 뿐이다.

이와는 관련없이 나는 매우 들뜨고 설렌다. 수능 이후 9년 만에 처음으로 힌트없는 깜깜이 도전에다,  다른 지원자들보다 지원 제약이 많은 나에게 주어지는 정말 몇 없는 기회이기 때문이다.  나에게 기회를 주셔서 정말 감사하다는 생각마저 든다. 개발 분야 사람들을 기술적으로 마주하는 일은 진실로 오랜만이라 무조건 결과를 잘 낼 수 있도록 최선을 다할 생각이다.

2018년 3월 6일 화요일 [결혼]

누군가와 함께 평생을 산다는 건 매우 어려운 일이다.

자신의 개성과 자유와 사생활보다 가족이 높은 우선순위를 가지게 되니 돈을 벌어도 온전히 내 것이 아니고, 쉬는 시간도 온전히 내 것이 아니게 된다. 만약 이 둘 다가 부족한 사람이 결혼까지 하게 된다면 개인으로서의 삶은 종말을 맞이했다고 볼 수 있다. 이것을 이해하지 못하는 사람의 결혼은 그 결과가 명백하다고 볼 수 있다.

결혼 날짜를 잡으니 멀리에서 흐릿하게 보이던 결혼이 점점 현실로 달려오는 것이 느껴진다. 생각과 움직임의 단위는 개인에서 가족으로 커진다.

내 결혼 생활의 가치는 서로 기댈 수 있는 행복한 가족을 만드는 것이다. 행복한 가족을 위해서 내가 해야할 것은 무엇일까. 내 자신을 높이는 것도 중요하지만 선배들 중에는 그것에 너무 집중한 나머지 가족과 멀어진 사람들이 많다. 가족에만 헌신하는 것도 정답은 아닌 것으로 보인다. 삶의 어떤 부분에서 행복을 찾을지 생각을 오랫동안 해봐야 할 것 같다.

지금의 우리는 결혼할 나이가 되어서 결혼을 하는 것이지 어떤 목표를 가지고 결혼을 하는 것은 아니다. 정말 오랜 시간을 함께 있어보니 배우자로서도 정말 좋은 사람이라는 생각이 들어 결혼을 하는 것이다. 그래서 결혼은 좋지만 그 이유는 모호하다.

만약 우리가 100살까지 살 수 있다면 우리는 70년을 함께 사는 것이 되는데, 그 동안 우리가 무엇을 할 것인지도 모호하다. 길다고 생각했던 연애도 이 기간에 비하면 10%에 불과하다. 그래도 큰 걱정이 들지 않는 것은 우리는 아무것도 하지 않아도 서로 같이 있을 때 언제보다도 마음이 편하기 때문일 것이다.

 

2018년 3월 4일 일요일 [카카오 2차 코딩테스트]

요즘 IT 기업은 외국 트렌트를 따라가는지 원래부터 그랬는지 공채라는 것이 없고 포지션이 나올 때마다 채용하는 상시 채용 방식을 두는 곳이 좀 많아보인다.

카카오 채용에서 신기했던 부분은 인재풀에 데이터를 등록하면, 자동으로 가장 적합한 포지션을 추천해주는 점이다. 나는 코드잼 같은 대회 사이트만 해오던터라 추천기술파트를 추천받았다. 17년 카카오 대회에서 본선 진출자는 서류와 1차 코딩 테스트가 면제되어 바로 원격면접이 시작되었다.

추천기술파트는 원격면접이 없고 2차 코딩테스트를 한다고 연락이왔다. 원하는 날짜와 시간을 알려주면 그 때부터 24시간동안 코딩테스트를 볼 수 있다고 했다. 면접 문제는 2~3개 선을 준다고했다. 테스트 2~3일 전에 전화로 테스트 안내와 사전 지식을 조금 묻는데, 나는 유다시티와 코세라에서 배운 것을 제외하면 해당 부서에 필요한 기술을 가지고 있지는 않았다.

시험 문제는 고전적 형식의 어려운 알고리즘 문제라고 예상하고 있었는데 그런 건 아니었다. 실무와 조금은 관련이 있어보이는 문제가 나왔고 완전한 정답을 내는 문제들은 아니어서 24시간이 적어보이지는 않았다. 짧게 쉰 시간들을 빼면 20시간 정도는 한 것 같은데 결과물은 스스로봐도 별로였다. 빠른 코딩보다는 좋은 접근법을 생각하느냐와 잡 에러처리를 하는 것이 중요했기 때문에 추가로 더 시간을 얻어도 큰 의미는 없을 것 같았다. 하루 푹 자고 난 지금에서야 조금 다른 방향으로 문제가 보인다.

2018년 2월 28일 화요일 [세대 차이]

나는 나보다 10살에서 20살 정도 많은 분들과 같이 근무를 하다보니 자연스럽게 다른 세대의 문화나 가치관을 접할 기회가 많았다. 다행히도 나는 하대를 당하기 보다는 존중받으며 같이 근무했기 때문에 비교적 상세한 이야기와 설명을 함께 들을 수 있었는데, 그 중에서도 가장 놀라운 것은 나보다 나이가 많은 사람들의 성문화이다.

처음에 이것은 단편적이고 소득 수준이나 생활 환경에 따라 다르다고 생각했으나, 몇 년 동안 전혀 다른 장소와 조직에서도 동일한 이야기들을 접하며 앞의 가정은 틀렸으며 가장 상관관계가 높은 조건이 나이라는 생각을 가지게 되었다.

이것의 발단은 외로움과 성적 욕구다. 이는 결혼 여부와도 무관해 돌싱과 기혼 모두에게 해당한다. 흔히 결혼 생활이 행복하면 그렇지 않다고 생각하지만, 고요하고 안정적인 생활로서의 일탈 또는 가족의 화목함으로는 채울 수 없는 개인적인 욕구가 존재하며 이것이 다른 곳으로 눈을 돌리는 계기가 된다는 것이다. 우리에게 이것은 ‘외도’라고 불리는데, 내 머릿속의 이미지인 ‘사랑과 전쟁’에서와 다른 점은 이것이 가정을 박살내거나 두 집 살림과 같은 막장으로 나아가는 것이 아닌 짧은 만남이라는 점이다.

20년 전 시트콤인 ‘웬만해선 그들을 막을 수 없다’의 등장인물이 이것에 대한 비유를 한 적이 있는데, 완곡히 말하면 현재의 안정성은 최우선으로 사랑하는 것이지만 일탈적인 요소 또한 필요하다는 것이다. 이런 욕구를 가진 사람들이 기혼자를 찾아나서는 것 또한 잠깐의 관계가 현재의 안정성까지 흔들어놓을 위험으로 발전하는 것을 두려워하기 때문이다.

따라서 기혼자이면서도 매력적인 사람은 최적의 만남 상대로 찍혀, 남녀를 가리지 않고 온갖 찝적거림의 대상이 된다. 다시 말해 미혼인 젊은이는 위험하고 자신이 넘볼 수 없는 것으로 생각하지만, 서른 살이 넘은 기혼자에 대해서는 경험이 많아 안전하며 자신이 어떻게 해볼 수 있는 상대라고 생각하는 것이다. 세대마다 주고받는 음담패설의 수위를 살펴보면 상한선이나 적극성에 대해서는 비례성을 어느 정도 확인할 수 있다. 하지만 세대를 막론한 진리는 될놈될이지 메리트가 1도 없는 사람이 추근거리는 것은 스팸메일만도 못한 짜증이며 이것 또한 범죄에 해당한다.

위의 잘못된 가정을 옳다고 보더라도, 이 선 마저 지키지 못하는 사람들이 더욱 큰 문제를 만들어낸다.  위의 행동과 언어가 세대의 선을 넘는 순간 그것은 완전히 다르게 해석된다. 성희롱을 피해자 중심으로 해석하는 것이 바로 이 때문으로 보여지는데, 기성 세대의 가치관으로 20대에게 말하고 행동하는 것은 20대에서는 명백한 성희롱이 된다. 여기서 문제는 개인과 가정의 일탈 행위에서 전혀 다른 영역으로 함께 선을 넘어간다. 가장 심하게 말할 수 있는 난잡한 성생활과도 다른 범죄의 영역이 된다는 말이다.

불행히도 이것을 구별하지 못하는 사람들이 많아보인다. 자신의 딸 정도 되는 사람에게 추근덕거리는 것으로도 모자라 권력과 위계를 통해 욕망을 달성하려고 하는 사람은 세대 문화와 관련없는 그저 추악한 사람이다. 자신의 언행이 불쾌하다는 지적에 ‘그걸 왜 그렇게 받아들여’라고 생각하는 사람 또한 마찬가지다. 분명 그것이 농담이 되는 모임과 자리는 존재하지만 모든 자리와 사람들에게 받아들여지는 것은 아니다. 둘 다 상대방의 감정을 고려하지 않는다는 점이도 동일하다.

연일 뉴스의 최상단을 차지하고 있는 것은 바로 미투 운동으로 모든 영역에서 폭로가 일어나고 있다. 가해자의 입장에서 증거없는 수십년 전의 일을 부정함으로써 현재의 이득을 유지하지 않는 이유는 부정으로써 밝혀질 최근의 사건이 더욱 큰 손실을 가져올 것이기 때문이다. 그 행동을 할 당시의 가치관을 그대로 유지하고 현재까지 살아왔다면 그것은 다른 세대에 대해서도 여전히 행해져왔다는 말이 된다.

나는 현재는 이것이 ‘성’이라는 범위에서 남성 가해자를 중심으로 일어나고 있지만 결과적으로는 광범위적으로 모든 영역에서 세대간의 폭력으로 인한 문제들로 뻗어나갈 것이라 생각한다. 물론 그에 대해 필요한 것은 적극성과 지속적인 관심이다.

[Competitive Programming] – 연습문제 2장 <작성중>

2.3.8)

최대 힙에서 두 번째로 제일 큰 수가 루트의 자식이 아니라면, 루트와 해당 노드의 거리는 최소 2이며, 경로 내에 최소 하나의 다른 노드가 있다. 최대 힙의 성질에 따라 이 노드는 2번째보다 큰 수이므로 가정에 모순으로 두 번째로 제일 큰 수는 반드시 루트의 자식이다. 세 번째로 큰 수의 경우는 두 번째로 큰 노드가 루트의 왼쪽 자식인 경우 그 노드의 왼쪽 자식인 경우이면 루트의 오른쪽 자식보다 크더라도 최대 힙의 성질을 만족하므로 반드시 루트의 자식일 필요가 없다. 세 번째로 큰 수의 경우 가능한 경우는 루트의 자식이거나, 루트의 자식의 자식인 경우 뿐이다.

2.3.9)

최대 힙을 사용하는 경우는 O(n)의 시간이 든다. 최소 힙을 사용하는 경우는 재귀적 탐색 중 v보다 큰 값의 노드부터는 탐색할 필요가 없지만 최악의 경우는 결국 O(n)이다.

2.3.10)

n을 k개 단위로 나누어 정렬을 할 때 시간 복잡도는 O(n log k)이다. 이후 각 (n / k)개의 부분에서 최솟값을 뽑아내는 것은 O(n / k)이고, 이것을 k개 반복하면 O(n / k * k) = O(n)이다.

따라서 시간복잡도는 O(n + n log k)가 된다.

2.3.11)

 

C++ STL next_permutation

C++ STL 중 <algorithm>에 포함되어 있는 next_permuation은 배열의 시작과 끝을 입력받아 현재 배열보다 알파벳 순으로 바로 다음의 순열을 생성한다. 리턴 값은 next_permutation이 존재하면 1, 존재하지 않는 마지막 순열이면 0을 리턴하며 인자로 넣은 배열의 값을 변경하는 식으로 새로운 순열을 만든다. UVa 문제 146번이 여기에 해당하며 예제 코드는 다음과 같다.