구글코리아ㅣ아직은 코딩이 낯선 이들을 위해

김현이 구글 코리아 소프트웨어 엔지니어

구글코리아ㅣ아직은 코딩이 낯선 이들을 위해

일자

상시
유형
아티클
태그
이 아티클은 <내가 찾던 커리어 선배> 시리즈의 5화입니다.


여러 분야에 눈과 귀를 열어두고 경험해 보는 성향은 비단 개발에만 그치는 것이 아니라는 김현이 개발자. 심도 있게 개발자 커리어를 이야기하면서도 그가 즐겨하는 배드민턴 주제만 나오면 방긋 웃기도 했다. 그러나, 넓은 시야를 가진 이에게만 보이는 것이 분명히 있다. 그가 가진 밀도 있는 호기심과 호기심을 행동으로 옮기게 하는 긍정적인 실행력 그 자체만으로도 같은 길을 가고자 하는 이들에게 재미있는 영감을 줄 것이다.


세 번의 인턴에서 배운 것


‘프로그래밍’이라는 뿌리를 내리고, 여러 줄기를 뻗으며 개발을 즐기는 그는 여전히 어떤 줄기에 풍성한 잎사귀를 달아야 할지 모르겠다고 말한다. 하지만, 수많은 경험을 바탕으로 단단하게 뿌리 내린 실력은 앞으로의 완성형을 절로 기대하게 만든다.


현이 님 커리어에 대해 이야기하기 전, 현이 님이 어떤 분인지 먼저 알아보고 싶어요. 현이 님께서 소프트웨어 공학을 선택하신 이유가 궁금합니다.

저는 스마트폰이 막 출시되던 시기, 고등학생 2학년 때 프로그래밍에 관심이 생겼어요. 제가 좋아하던 스피드 큐빙을 위한 타이머 애플리케이션(이하 앱)을 개발해 보고 싶은 마음이 든 것도 그때였죠. 아직 출시되지 않은, 안드로이드 기종 대상의 타이머 앱을 개발해야겠다고 생각하고, 관련 커뮤니티(큐브 카페 회원들)와 도서를 통해 독학하며 도움을 받았어요. 누군가 원하는 제품을 내가 구현할 수 있다는 것이 재미있고 보람차서 제대로 한번 프로그래밍을 공부해야겠다고 결심했죠. ‘내 길이 바로 이 길이다’라는 확신이 있었어요. (생각지도 못한 답변이네요. 실제 배포일은 언제였나요?) 개발에 2년 조금 넘게 걸렸고, 고등학교 졸업 직전에 배포했어요.



내가 좋아하는 동시에 잘 하는 일을 찾는다는 건 정말 행운이라고 생각합니다. 현이 님께서는 실제로 처음 소프트웨어를 공부하기 시작하셨을 때 어떠셨나요?

소프트웨어라는 대주제에 들어가 보니, 제가 생각했던 것보다 훨씬 더 깊이 있고 분야도 다양해서 어떤 분야로 전문성을 쌓아야 할지 대학교를 졸업할 때까지 고민했어요. 그래서 웹/안드로이드 앱, 서버 등 여기저기 기웃거리며 다양한 방식의 프로그래밍을 알아갔어요. 그 과정에서도 모든 분야가 재밌다고 느껴지는 바람에 결정에 큰 도움이 되지 못했죠. 그렇지만, 저마다의 프로그래밍도 모아보면 공통되는 방식이 존재하기 때문에, 프로그래밍 기초를 탄탄히 잡을 수 있었어요. 가독성을 고려하는 좋은 코드를 작성하는 등의 기초 역량을 기르게 된 거죠. 


‘개발자’ 직무가 높은 관심을 받는 만큼, 그 안에서의 경쟁이 치열할 거라고 생각해요. 현이 님께서는 삼성전자, 라인 스튜디오에서 인턴 생활을 하셨는데요. 인턴으로 취업하는 과정은 어떠셨는지 궁금합니다.

말씀 주신 것처럼 세 번의 인턴 생활을 경험했는데요, 그 인턴 과정을 거치면서 인터뷰의 중요성을 몸소 깨달았어요. 인터뷰는 면접자가 회사에 어울릴 만한 사람인지 알아보는 자리인 만큼, 회사 내부에서 이뤄지는 빠른 변화 안에서 논리적으로 사고하고, 새로운 프로그래밍 기술을 습득하고 사용할 수 있는 사람인지 살펴보는 것 같아요. 그래서 저는, 답변하기 어려운 질문을 받아도 ‘모른다’고 넘어가지 않고 내 나름의 근거를 갖고 자신 있게 이야기해서 설득시키려고 노력했어요. 비록 그 답이 조금은 틀리더라도 면접에서 긍정적으로 작용하는 것 같아요.

한 사례로, 삼성전자에서 인턴을 끝내고 참여한 정규직 전환 면접을 들고 싶어요. 앞서 말씀드렸던 큐브 타이머 앱을 면접에서 언급했더니, 신기술 혹은 난이도 있는 구현은 무엇이 있었는지에 대한 질문을 받았어요. 사실 첫 프로그래밍이었고, 고등학교 공부와 병행하며 제작했던 제품이었기 때문에 신기술을 적용해 볼 실력과 여유가 있지 않았어요. 당연히 마땅한 대답을 하지 못했고, 그 면접은 아쉽게 마무리됐어요. 이 경험을 토대로, 라인 스튜디오의 백엔드 인턴 면접에서 다소 나은 면접 경험을 할 수 있었어요. 미처 준비하지 못한 백엔드 관련 질문에서 당황하지 않고, 논리적으로 생각하며 타당한 근거와 함께 생각을 전하자 어느정도 제 답변을 납득시킬 수 있었죠. 단순히 아는 척을 하라는 건 아니에요. 답이 아니더라도 논리적으로 접근하고 추측해 보는 시도가 중요하다고 말하고 싶어요.


현재 현이 님은 구글 코리아에 재직 중이십니다. 직무와 산업이 입체적으로 변하면서 점차 좋은 포트폴리오와 반드시 합격하는 이력서와 같은 공식 룰이 사라지는 것 같습니다. 하지만, 현업에서 일하고 있는 선배의 레퍼런스는 분명 누군가에게 도움이 될 텐데요. 현이 님께서는 구글 코리아에 입사하기 위해 어떤 준비를 하셨나요?

대학교 4학년 때 구글코리아 채용 설명회에 참석하게 됐어요. 학기 초였고, 인턴을 알아보던 시기였기에 정규직 채용엔 크게 관심이 없었어요. 설명회에 참석하면 동일 시간대의 수업에 한해 출석 인정이 된다고 하길래 들었죠.(웃음) 그런데, 그날 아버지께서 해외 출장에서 돌아오셨고 취업 준비는 잘 하고 있냐고 물으셨어요. 뭐라도 보여드려야겠다는 생각에 마침 구글코리아 채용 설명회에 다녀왔다고 말씀드리며 지원서도 작성했어요. 그런데, 다양한 분야를 경험하며 기초를 단단하게 쌓아온 덕분인지 최종 합격이란 결과를 낼 수 있었어요. 평소 코딩 테스트와 알고리즘 대비를 해둔 것도 한몫했어요. 보통 외국계 기업의 인터뷰에서는 알고리즘 문제를 주로 출제한다고 알고 있으니 취업을 앞둔 분이라면 참고하시면 좋을 것 같아요.


선배가 전하는 코딩 테스트 공부법


코딩 테스트도 여느 시험과 다르지 않다. 자주 출제되는 유형의 문제를 최대한 많이 풀어보는 것. 그것이 시험에서 기대한 만큼의 결과를 내는 가장 정확한 방법 중 하나다.


현이 님께서 저자로 참여하신 도서 <취업과 이직을 위한 프로그래머스 코딩 테스트 문제 풀이 전략 : 자바 편>이 올해 2월 발행됐습니다. 한 권의 책을 마무리하는 작업이 결코 쉬운 일이 아닌데요. 책을 써야겠다고 결심하신 계기가 무엇이었나요?

제가 안드로이드 앱 개발로 프로그래밍을 시작한 만큼 자바가 제 메인 언어예요. 지금은 안드로이드에 코틀린을 주로 활용하지만 당시에는 모두 자바로 개발했어요. 자바를 제대로 다룰 줄 알면 다른 언어로 확장하기도 편하고, 방대한 내장 라이브러리가 있기 때문에 코딩 테스트를 치르는 데 편한 언어라는 걸 홍보하고 싶었어요. 많은 사람이 자바를 학습하고, 실제 코딩 테스트는 C++이나 파이썬 등 다른 언어로 응시하곤 하거든요. 또, 프로그래밍을 처음 시작하는 사람은 좋은 코드와 그렇지 않은 코드를 구분하기 힘들어요. 일단 좋은 코드를 접하는 것부터 어렵죠. 그래서, 자바를 이용해 코드를 잘 작성하는 방법을 알려주고 싶다는 마음도 있었어요. 평소에 해오던 것처럼 제 블로그에 글을 작성할까 생각했는데, 길벗 출판사에서 저자를 모집한다는 공고를 보고 지원했어요.


책을 쓰시는 과정에서 방향성에 대한 고민이 많으셨을 것 같습니다. 그럴 때마다 어떻게 도움을 받으셨나요?

코딩 테스트의 기초를 다루는 도서다 보니 주변 비전공자 친구들에게 도움을 받았어요. 전공자 시선과 비전공자 시선에 차이가 있으니까요. 방향성에 고민이 생길 때면 확실히 속도가 늦어지더라고요. 그럴 때마다 길벗 윤경 님께서 큰 힘이 되어 주셨어요. 늘 제 질문들에 적합한 답을 주셨고, 특히 동기부여를 굉장히 잘해 주셨어요.(웃음) 윤경 님 덕분에 매번 마음을 다잡을 수 있었어요. 


해당 도서를 특히 추천하는 대상은 누구인가요? 

초기에 목표로 잡았던 대상은 코딩 테스트는 처음 접하지만, 자바는 조금 다룰 줄 아는 사람이었어요. 학교를 다니면서 코딩 테스트를 준비하기 쉽지 않지만, IT 기업에 취업하고 싶다면 코딩 테스트는 거의 필수 관문이에요. 그렇기 때문에 아직 테스트를 준비하지 않은 전공생에게도 추천하고 싶어요. 한국은 자바로 백엔드가 구성된 곳이 많은 만큼 자바를 공부하는 사람이 적지 않지만, 자바를 잘 다루지 못한다는 이유로 코딩 테스트만을 위한 다른 언어를 공부하는 사례도 종종 있어요. 그런데, 오히려 프로그래밍에 익숙해지고 실력을 키우는 데 비효율적인 방식이라고 생각해요. 본인의 메인 언어와 코딩 테스트로 학습하는 언어가 같다면 언어에 대한 이해도도 더욱 높아질 거예요. 하나의 언어에 능숙해지면 다른 언어 습득이 비교적 빨라지기도 하고요. 자바를 메인 언어로 사용하시는 사람이 이 책을 통해 코딩 테스트는 물론, 자바를 다루는 스킬이 한 층 더 성장할 수 있었으면 해요.


코딩 테스트를 잘 치르기 위한 팁 혹은 효율적인 공부법을 몇 가지 말씀 부탁드려요. 

코딩 테스트에서 출제되는 알고리즘이 생각보다 많지 않아요. 출제되는 문제 유형도 정형화 되어 있고요. 그래서, 기초 이론을 학습하고 다양한 문제를 풀어보는 방식으로 코딩 테스트를 충분히 대비할 수 있어요. (학생 때 수학 선생님께서 말씀하시던 이야기와 비슷하네요.) 맞아요.(웃음) 무조건 문제를 많이 풀어보는 게 중요해요. 코딩 테스트에서 나오는 웬만한 알고리즘은 책에 다 담겼어요. 물론 이 책이 아니더라도 인터넷에서 문제와 정답을 볼 수 있어요. 그런데, 입문자의 경우 어디서부터 공부하고 준비해야 하는지 확인하기 어려운데요. 이 책에서는 학습 순서에 따라, 주로 나오는 주제를 체계적으로 학습하면서 단계적으로 상세한 문제 해설도 볼 수 있어요. 그리고, ‘예쁜 코드’를 보여드릴 수 있도록 노력했어요. (‘예쁜 코드’라고 하면 정확히 어떤 의미인가요?) 코드를 읽었을 때 쉽게 이해되는, 가독성 높은 코드라고 생각해요.


개발자로 인정받는다는 의미


업계에서 인정받는다는 것은 무엇을 의미할까? 높은 연봉과 직급 그리고 대다수의 입에 오르내리는 명예로움일 수도 있겠다. 하지만, 김현이 개발자는 조금 다른 인정을 소망한다. 하나의 분야에서 정통한 전문가가 되는 것. 그리고, 그 전문성에 모두가 고개를 끄덕이는 것.


현이 님을 소개하는 글에서 인상적인 문구를 발견했어요. 바로 현이 님의 좌우명인데요, ‘좋은 코드가 좋은 제품을 만든다’는 문장이죠. 현이 님은 앞으로 어떤 개발자가 되고 싶으신가요? 그리고 계신 커리어의 청사진이 궁금해집니다. 

인정받는 개발자가 되고 싶어요. 개발자로서 인정받기 위해선 충분한 전문성이 있어야 하는데, 저는 이것저것 관심을 갖다 보니 아직 부족한 것 같아요. 한 분야에 깊게 파고들어 전문성을 키우고 적어도 한국에서는 인정받고 싶어요. 아직은 여러 분야를 경험해 보는 일이 재미있기 때문에, ‘이 분야가 내 길이다!’라는 확신이 들 때까지 기다리고 있어요.


앞으로 새롭게 도전해 보고 싶으신 영역이 있나요? 저는 개인적으로 원티드 아티클 필자를 추천해 드립니다.(웃음)

여러 사람의 도움 덕분에 책이 무사히 출판됐지만, 저자로서 내용 측면에서 아쉬운 점이 몇 가지 있어요. 그래서, 글 쓰는 연습을 더 하고 싶어요. 말씀 주신 원티드 아티클이나 개인 블로그에 글 쓰는 연습을 계속 하려고 해요. 회사에서 업무 할 때 다른 구성원들에게 내 생각을 매끄럽게 말하며 의견을 설득시키는 작업에도 글쓰기가 도움될 것 같기도 하고요.


인터뷰가 아닌, 친한 동료 개발자와 한바탕 수다를 나눈 것 같네요. 마지막으로, 더 하고 싶으신 말씀 있으실까요?

좋은 코드를 만들기 위한 노력은 계속해야 한다고 생각해요. 원하는 기능을 구현하는 데서 그치는 것이 아니라, 제대로 설계를 마친 후에 다음 기능을 얼마나 더 쉽게 추가할 수 있는지 등의 심도 깊은 고민을 이어가야 해요. 저도 이 부분을 항상 신경 쓰고 있어요. 



▶ <내가 찾던 커리어 선배> 시리즈 보러 가기



CREDIT
글ㅣ박효린 원티드 콘텐츠 에디터
사진ㅣ최호근 포토그래퍼


발행일 2023.05.10