회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
[커리어 리팩토링: 개발자의 성장법] 4. 구글코리아 김현이 소프트웨어 엔지니어 인터뷰
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
[커리어 리팩토링: 개발자의 성장법] 4. 구글코리아 김현이 소프트웨어 엔지니어 인터뷰
Editor’s note
어떤 직업이든, 그 직업에 종사하는 사람들을 공통적으로 묶어주는 특징이 있지만, 막상 개개인을 들여다보면 업무 원칙이나 커리어, 성장에 관한 관점, 자신만의 노하우가 다 다릅니다. 개발자들도 마찬가지입니다. 개발을 시작하게 된 계기부터 다루는 기술스택, 도메인, 커리어와 성장에 대한 관점과 노하우 등은 모두 다릅니다. 요즘IT 기획 [커리어 리팩토링: 개발자의 성장법]을 통해 다양한 분야에 걸쳐 다양한 커리어를 다져온 개발자 한사람 한사람의 이야기를 직접 들어 보며, 이 시대 개발자들에게 다양한 성장의 길을 제안하고자 합니다. |
이번에 소개할 개발자는 4년 차 소프트웨어 엔지니어로, 일명 ‘공룡 기업’ 구글에서 첫 커리어를 시작한 김현이 엔지니어입니다. 그는 개발자라면 한 번쯤 꿈꿔볼 만한 빅테크에서 일하고 있지만, 처음부터 빅테크를 목표했던 건 아니라고 합니다. 오히려 빅테크는 너무 멀게 느껴져서 현실로 다가오지 않았다고 해요. 그러던 중 졸업을 앞두고 ‘참석하면 학점을 준다기에’ 들러본 구글코리아 채용설명회가 그에겐 터닝 포인트가 됐습니다. 우연한 계기로 지원해 뜻밖의 좋은 결과를 얻게 된 것이죠. 물론 대학 시절 틈틈이 준비한 개인 프로젝트와 3번의 인턴십 경험 등이 도움이 되었다고 합니다.
그렇게 2020년 ‘구글러’로 합류하게 된 그는 현재 서치팀에서 사용자 검색 경험을 개선하는 일에 기여하고 있는데요. 높은 자율성을 부여하기로 유명한 구글답게, 그는 일과 삶에서 본인만의 균형을 찾아가는 중입니다. 업무 외에도 사내 배드민턴 동아리 ‘Gmash’를 직접 운영하며, 매주 구글러들과 활발히 교류하고 있죠. 이번 인터뷰에서는 구글 엔지니어로서 어떤 하루를 보내고 있는지, 앞으로 어떤 개발자가 되고 싶은지 그의 성장법을 들어봤습니다.
김현이 구글코리아 소프트웨어 엔지니어
첫 프로그래밍: 고등학교 2학년(2012년) 첫 언어: 자바(Java)로 처음 안드로이드 앱을 만들었고, 여전히 가장 좋아하는 언어라고 한다. 좋아하는 장비: 모니터 특이사항: 고등학생 때 독학으로 큐브 타이머 앱을 제작했으며, 가장 좋아하는 운동은 배드민턴으로 현재도 사내 배드민턴 동아리 ‘Gmash’에서 활발하게 활동 중이다. 대학 전공: 소프트웨어학과
주요 활동 이력: 삼성전자와 라인 스튜디오 인턴을 거쳐 현재 2020년부터 구글코리아 서치 팀에서 소프트웨어 엔지니어로 활동하고 있다. 회사에서는 본업 외에도 배드민턴 동아리 ‘Gmash’를 이끌며 구글러 간 교류에 힘쓰고 있다. 2023년 코딩 테스트에 필요한 핵심 지식을 담은 책 [취업과 이직을 위한 프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편]을 집필했다. |
Q. 현재 어떤 팀에서 일하고 계신가요? 구글 엔지니어의 하루는 어떻게 흘러가는지 궁금해요.
저는 서치(Search)팀 소속이에요. 구글은 잘 아시다시피 서치가 가장 유명한 제품이라 서치라는 조직 자체도 되게 큰 편인데요. 저희 팀은 사용자들이 어떻게 하면 정보를 더 쉽게 찾을지 고민하면서 여러 가지 피처를 개발하고 있습니다. (쉽게 말해 프론트엔드 영역이라고 보면 될까요?) 맞아요. 구글의 서치는 그 오랜 역사만큼 방대한 양을 자랑하는데요, 저는 그중에서도 가장 프론트엔드에 가까운 작업을 하고 있어요. 그렇다고 해서 프론트엔드만 다루는 건 아니고 백엔드도 함께 관여하고 있습니다.
제 하루는 생각보다 단순하게 흘러가는데요. 우선 점심쯤 출근해서 해야 할 업무를 진행하다가, 한 4시쯤에 동료들과 배드민턴을 치러 가요. 배드민턴이 끝나고 업무할 게 남아 있으면, 다시 사무실에 복귀해 저녁이나 밤까지 더 일하는 편이에요. 저는 저녁형 인간이라서 제 사이클에는 이게 잘 맞더라고요. 사내 배드민턴 동아리는 제가 만든 건데, 자율 출퇴근 제도로 업무 시간을 유연하게 설정할 수 있다는 장점 덕분에, 꾸준히 참여할 수 있게 됐어요.
Q. 듣던 대로 정말 자유로운 분위기네요. 일하는 팀의 구성은 어떻게 되나요? 개발자가 아닌 직군과는 어떻게 일하는지도 궁금해요.
현재 진행 중인 프로젝트에서는 같이 일하는 디자이너나 프로젝트 매니저, 개발자들이 해외에 있어요. 그래서 일주일에 1번씩 오전 7시에 화상 미팅을 진행하면서 협업하고 있죠. (오전 7시요?) 아무래도 시차 때문에 서로 시간을 맞추다 보니 그렇게 됐어요. 일주일에 1번 화상 미팅으로 해야 할 일이나 의견을 조율하고, 평소에는 메일이나 문서로 협업하고 있어요.
개발자가 아닌 직군과 일할 때도 크게 다른 점은 없는 것 같아요. 다만 어떤 프로젝트가 있을 때 처음부터 방향성에 대해 다 같이 자유롭게 얘기하는 편이에요. 예를 들어, 프로젝트 매니저가 처음부터 끝까지 기획해서 알려주거나, 디자이너가 완성된 결과물을 넘기는 것이 아니라 이 프로젝트가 어떤 방향으로 가면 좋겠는지 서로 얘기하면서 합의점을 찾아요. 그리고 합의된 내용에서 자신의 역할을 찾아서 하는 거죠. 미리 역할을 딱 정해놓기 보다는 너나 할 것 없이 의견을 내고, 할 수 있는 일들을 하나씩 맞춰나가는 것 같아요.
Q. 앞서 해외팀과 협업한다고 하셨는데, 구글에서 일하려면 영어 실력은 얼마나 중요한가요? 모든 업무를 영어로 진행하시나요?
우선 기본적으로 메일이나 문서는 영어로 작성하고, 회의는 외국인이 참석할 땐 영어로, 없으면 그냥 편하게 하죠. (웃음) 사실 영어권이 아닌 곳에서 일하는 직원들도 많거든요. 그래서 영어가 네이티브 급이 아니어도 많이 포용해 주는 분위기예요. 그런데 미국팀과 일하는 경우도 꽤 있어서 그들과 원활하게 소통하려면 영어 실력이 중요해지는 것 같아요. 정리하면, 구글에 입사하기 위한 영어 실력은 그렇게 높지 않아도 괜찮아요. 그런데 입사 후 잘 살아남기 위해서는 영어가 중요합니다. 저도 입사 후에 일하면서 많이 늘었어요.
Q. 영어 면접이 따로 있죠?
영어 면접은 최소 한 번 이상 있는데, 면접 난이도가 높은 편은 아니었던 걸로 기억해요. 저도 영어를 잘하는 편은 아닌데도 충분히 이해할 수 있는 수준의 질문들이었어요. 물론 이건 영어에 관한 이야기지, 질문이 쉬웠다는 뜻은 아니에요. 제 생각엔 영어를 능숙하게 다루는 것보다도 면접 내용을 어떻게 잘 이끌어 나가는지가 훨씬 중요한 것 같아요.
Q. 면접 얘기가 나온 김에 코딩 테스트는 어떻게 준비하셨나요?
일단 코딩 테스트를 준비할 때는 기본적인 알고리즘에 어떤 것들이 있는지 파악하는 게 가장 중요해요. 그렇게 알고리즘을 어느 정도 공부한 다음 최대한 많은 문제를 풀어보는 거죠. 이미 코딩 테스트로 유명한 ‘백준’이나 ‘프로그래머스’에선 알고리즘별로 문제를 분류해서 볼 수 있으니 그런 걸 이용해 봐도 좋고, 시중에 테크 기업 기출 문제도 많으니 틈틈이 풀어보는 것도 추천해요. 그리고 결국 그걸 응용할 줄 알아야 하니까, 각 알고리즘별 기본 개념도 놓치지 말아야 하고요.
Q. 작년에 코딩 테스트 문제 풀이 전략에 관한 책도 집필하셨는데, 어떤 책인지 간단히 소개해 주세요.
아직 책을 내기엔 부족한 실력이지만, 운 좋게도 출판사 길벗과 인연이 닿아 집필하게 됐는데요. [취업과 이직을 위한 프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편]이라는 책입니다. 사실 개발자가 코딩 테스트를 처음 준비할 때 어디서부터 어떻게 시작해야 할지 많이 막막하거든요. 공부해야 할 분량이 너무 많기도 하고요. 그래서 딱 한 권으로 취업용 코딩 테스트 알고리즘과 자료구조들을 정리할 수 있는 책이 있으면 좋겠다고 생각했죠. 자바 편을 집필한 이유는 제 첫 언어가 자바이고, 가장 애정하는 언어이기도 해서 더 즐겁게 작업할 수 있을 것 같았기 때문이에요.
Q. 구글코리아에 입사하게 된 배경도 궁금해요. 원래 빅테크에 관심이 있으셨나요?
사실 구글에 지원한 건 제가 미리 준비했던 게 아니라 우연한 계기였어요. 졸업 전 학교에서 열린 채용설명회에 구글코리아가 왔었거든요. 그때 전 빅테크 취업에 관심이 있다기보단 수업 출석으로 인정해 준다고 해서 갔어요. (웃음) 구글이라고 딱 들었을 때, 나를 뽑아줄 것 같지도 않고 왠지 멀게 느껴졌거든요. 크게 현실로 다가오지 않았죠. 그런데 집에 가니 아버지께서 취업 준비는 잘하고 있냐고 물어보시더라고요. 얼떨결에 오늘 구글 채용설명회에 다녀왔고, 한 번 지원해 볼 거라고 말씀드렸죠. 그래서 지원하게 된 거예요.
사실 저도 최종 합격까진 크게 기대하지 않았거든요. 대신 인턴 생활을 비롯해 틈틈이 준비해 온 코딩 테스트나 알고리즘 공부가 많은 도움이 됐어요. 그리고 개인 프로젝트도 꾸준히 진행해 와서 어느 정도 준비된 상태로 지원할 수 있었던 것 같아요.
Q. 이 인터뷰를 보시는 분들 중에 구글 또는 빅테크에 관심 있는 분들이 많을 것 같은데, 어떻게 준비하면 좋을까요?
개발자가 되는 여러 경로가 있겠지만, 제 경우에는 다양한 프로젝트 경험을 해본 것이 가장 유효했던 것 같아요. 많은 기업의 채용 과정은 서류, 코딩 테스트, 면접으로 진행되는데, 일정 수준 이상의 코딩 테스트 실력을 갖추면 그 이후에는 ‘내가 가지고 있는 프로그래밍 실력과 지식을 어떻게 잘 증명해 내는가’가 관건이에요. 이때 접근성이 가장 좋은 방법이 바로 개인 프로젝트를 해보는 것이라고 생각했어요.
개인 프로젝트를 하면 이력서에 훌륭한 개발 흔적을 남길 수 있어요. 물론 프로젝트를 한두 번 하고 경쟁력 있는 이력서를 작성하겠다는 욕심을 버려야 해요. 처음에는 당연히 기초적인 수준의 프로젝트로 시작하겠지만, 프로젝트를 거듭해 나갈수록 점점 더 프로젝트에 포함되는 내용이 많아지고, 기술의 깊이가 깊어지겠죠. 그 모든 과정을 통해 성장하고, 이렇게 쌓아온 지식이 탄탄한 기초가 되어 면접에서도 자신감을 높여줄 거예요.
Q. 그럼에도 모르는 질문이 나오면 어떻게 하나요? 현이 님은 어떻게 대처하셨나요?
당연히 면접에서 나오는 질문을 모두 사전에 대비할 수는 없어요. 저도 면접 과정에서 모르는 질문을 굉장히 많이 받았어요. 내가 알고 있는 내용에 관한 질문이 나오면 좋겠지만, 그렇지 않은 경우가 더 많죠. 이럴 때는 여러 프로젝트를 통해 쌓아 올린 지식과 경험으로 ‘나는 논리적인 판단을 내릴 수 있는 사람’이라는 것을 보여줘야 해요.
“정답은 잘 모르겠지만 질문에서 제시된 상황에서는 A 방식으로 구현하는 것이 가장 좋을 것 같다. 다른 방법으로는 B가 있겠지만, 각각 이러한 장단점이 있다.”와 같이 문제를 논리적으로 파악하고, 그에 대한 해법을 찾아가는 모습을 보여준다면, 질문에 대한 답을 알고 있었는지를 떠나 아주 논리적인 개발자라는 좋은 인상을 심어줄 수 있을 거예요.
“사이드 프로젝트 경험이 있으면, 내가 어느 분야에 강점이 있는지 보여줄 수 있는 기회가 돼요.”
Q. 프로그래밍은 언제부터 시작하셨어요? 원래 관심이 있으셨나요?
처음 프로그래밍을 시작한 건 고등학교 2학년 때예요. 사실 프로그래밍에 관심이 있었다기보다는 제가 중학생 때부터 좋아했던 ‘루빅스 큐브’ 때문에 우연히 하게 됐어요. 이 큐브를 얼마나 빠르게 맞출 수 있는지 시간을 재는 타이머가 따로 있는데, 검색해 봤더니 웹사이트에만 있고 스마트폰 앱은 아직 없더라고요. 그래서 “앱이 왜 없지? 없으면 내가 한번 만들어볼까?”라는 생각에 무작정 안드로이드용 큐브 타이머 앱을 만들기 시작했어요. 앱을 만들기 위해 프로그래밍에 관심을 갖게 된 거죠.
Q. ‘앱이 없으니 내가 만들어볼까’로 이어졌다는 게 인상적이네요. 처음부터 끝까지 독학하신 건가요?
우선 프로그래밍 관련 지식이 전혀 없으니, 독학으로 책이나 영상 등을 찾아보면서 하나씩 따라 만들었어요. 그 당시 활동하던 큐브 카페가 있는데 회원들에게 이런 앱을 만들고 있다고 자랑했죠. 그랬더니 이런 기능도 넣어달라는 댓글이 막 달렸어요. 사람들이 좋게 반응해 주니까 앱을 더 잘 만들고 싶더라고요. 그렇게 재미가 붙어서 고등학생 시절 내내 큐브 타이머 앱 만들기에 몰두했던 것 같아요.
Q. 최종 배포도 하셨어요?
고등학교를 졸업하면서 구글 플레이스토어에 배포했어요. 지금은 앱이 없지만 당시에는 5,000회 이상 다운로드를 기록해서 나름 만족스러웠던 기억이 나요.
Q. 대학에선 소프트웨어학과를 전공하셨어요. 졸업 후 진로는 앱 개발자로 정하셨나요?
앱 개발자가 되겠다는 생각은 딱히 없었어요. 어느 분야로 갈지 고민은 됐는데, 당시 특별히 선호하는 분야가 없었거든요. 배우는 대로 다 재밌다고 느끼던 때라 웹이나 앱, 백엔드나 프론트엔드 이런 건 크게 고려하지 않았던 것 같아요. 그저 배울 수 있다면 최대한 다양하게 경험해 보고 싶었는데, 그 과정에서 총 3번의 인턴을 하게 됐어요. 분야도 모두 달랐고요.
Q. 분야가 어떻게 달랐나요?
첫 인턴으로 2016년에 삼성전자 무선사업부에 한 달 정도 있었어요. 그때 한창 VR이 나왔을 때라 VR 브라우저에 기능을 넣는 걸 했어요. 그 다음엔 2019년에 게임을 만드는 라인 스튜디오에서 프론트엔드로 웹 게임 개발을 두 달 동안 했죠. 그리고 2020년에 다시 라인 스튜디오에서 백엔드를 두 달간 맡았어요. 이렇게 분야를 다르게 한 이유는 특별히 선호하는 분야가 없기도 했지만, 우선 다양한 경험을 쌓으면 어디서 어떤 채용 공고가 나더라도 골고루 지원해 볼 수 있지 않을까 싶어서였죠. 제 나름의 준비였어요.
Q. 정말 프론트엔드, 백엔드 가리지 않고 다양하게 경험하셨네요. 지금은 어떤 언어를 자주 쓰세요? 요즘IT 독자 질문으로 ‘소프트웨어 엔지니어가 되기 위해 꼭 필요한 기술 스택이 있다면 어떤 건가요?’라고 물어보셨어요.
첫 언어를 자바로 시작했는데 여전히 자바를 많이 써요. 그 외엔 C++, 타입스크립트까지 3개를 자주 쓰고요. 사실 소프트웨어 엔지니어가 되기 위해 어떤 특정 기술 스택이 꼭 필요하다고 말할 순 없을 것 같아요. 물론 분야별로 대표적인 기술 스택들이 있지만, 저는 그 스택도 필수는 아니라고 생각해요. 그냥 자기가 하고 싶은 분야에서 마음에 드는 스택을 어떤 것이든 시도해 보는 게 중요한 것 같아요. 좀 마이너한 스택이라도 상관없고요.
예를 들어, 하나의 스택을 잘 이해하고 있으면 다른 스택으로 넘어가기도 훨씬 쉬워져요. 서로 다른 기술 스택이어도 분명 공통점이 있으므로, 다양한 기술 스택을 경험해 보는 게 좋습니다. 여러 기술 스택을 다뤄보다 보면 공통점과 차이점이 분명히 느껴질 거예요. 거기서 공통점이 바로 해당 분야의 핵심 지식이고, 차이점이 각 스택의 장단점을 결정지어요. 사실 소프트웨어 엔지니어에게 요구하는 점이 해당 스택을 사용해 봤는지도 있겠지만, 그것보다 기본적으로 그 스택을 얼마나 이해하고 있는지, 관심과 이해도가 더 중요해요.
Q. 기술 스택 선택에는 정답이 없겠군요. 그렇다면 개발자로서 본인만의 원칙 같은 게 있을까요?
조금 거창하게 들릴지도 모르지만, 저는 좋은 코드가 좋은 제품을 만든다고 생각해요. 제 좌우명이기도 하죠. 여기서 좋은 코드는 효율성은 당연히 전제로 깔고 가고, 가독성이 좋아야 해요. 읽기 쉬운 코드는 나중에 다른 기능을 추가하거나, 수정이 필요할 때 어디를 수정해야 하는지 빠르게 파악할 수 있어서 쉽게 바꿀 수 있어요.
그 코드를 누가 봐도 ‘이건 뭘 작동하게 하는 코드구나’라고 쉽게 알 수 있어야, 제품도 오래가고 개발자도 더 성장해 나갈 수 있다고 생각해요. 디자인 패턴, 소프트웨어 아키텍처 등의 개념도 결국 코드를 깔끔하고 확장성 있게 다루기 위한 방법이죠. 가독성이 좋은 코드를 작성하는 것이 무엇보다 중요하다고 봅니다.
그래서 저는 마음에 들지 않는 코드는 과감히 지우고 다시 쓰는 편이에요. 사실 코드를 쓰다 보면 왠지 다시 쓰고 싶은데, 이때까지 쓴 게 아까워서 붙잡고 있는 경우도 많아요. 그런데 다시 쓰고 싶다는 생각 자체가 이미 그 코드를 쓰는 동안 더 나은 해결책을 찾아냄으로써, 내 스스로가 발전했다는 증거라고 생각해요. 물론 다시 쓴 코드가 더 별로일 수도 있는데, 나중에는 그 코드가 더 유리한 상황도 얼마든지 생길 수 있어요. 그렇게 경험하다 보면 점점 더 가독성 좋은 코드를 쓸 수 있게 되는 거죠.
Q. 주변에 개발자를 꿈꾸는 친구들이 많을 것 같은데 그 친구들에게 자주 받는 질문은 무엇이고, 어떻게 답변해 주시나요?
주로 ‘사이드 프로젝트를 꼭 해야 하냐’고 묻더라고요. 학교에서 하는 프로젝트 외에 개인 프로젝트나 팀 프로젝트를 해야 하는지에 관한 건데, 저는 꼭 해봐야 한다고 말해요. 왜냐면 학교에서 하는 프로젝트 수업은 시간에 쫓기는 경우가 많거든요. 기능 구현에만 급급하기 때문에 충분히 고민해서 좋은 코드를 작성하기 어려워요. 그렇게 되면 코드는 엉망인데, 기능은 돌아가니까 ‘난 이걸 만들 수 있는 거야’라고 착각할 수 있어요.
그래서 저는 따로 시간을 내서 개인이나 팀 프로젝트를 해보라고 해요. 직접 프로젝트 주제를 정하고 코드에 대해 깊게 고민해 보는 거죠. 팀 프로젝트라면 같이 하는 사람들에게 피드백도 받을 수 있고요. 사실 학생이나 취준생들은 아직 경력이 많이 없잖아요. 이때 사이드 프로젝트 경험이 있으면, 내가 어느 분야에 강점이 있는지 보여줄 수 있는 기회가 돼요.
그리고 프로젝트를 할 땐 다양한 분야로 넓게 경험해 보면 좋아요. 아직 경력이 없기 때문에 일명 ‘제너럴리스트’가 되어보는 것이죠. 저는 웹이나 앱, 안드로이드, 서버 등 한 분야에 제한을 두지 않고 도전했기 때문에, 친구들에게도 그렇게 해보라고 권해요. 사실 각 분야가 겉으로는 독립적인 것처럼 보여도, 코드를 쓰다 보면 생각보다 겹치는 부분도 많거든요. 어느 한 분야에만 속하는 게 아니라, 소프트웨어의 전반적인 공통 개념이 적용되는 거예요. 그래서 프로젝트 분야는 넓고 다양하게, 코딩은 네이밍부터 효율성, 소프트웨어 구조, 확장성, 가독성 등을 신경 쓰면서 작성해 보면 좋아요.
“어떤 프로젝트를 맡더라도 내 역할을 잘하는 개발자가 되고 싶어요.”
Q. 이번에는 ‘개발자 커리어’에 관한 얘기를 해보려 합니다. 현재 주니어 개발자에서 미드레벨 개발자로 성장하고 계신데, 개발자에게 커리어란 무엇일까요?
사실 미드레벨뿐만 아니라 공통적인 부분인 것 같은데, 결국은 ‘프로젝트’라고 생각해요. 내가 어떤 프로젝트에서 무슨 역할을 맡았는지, 내가 낸 임팩트가 얼마나 컸는지가 곧 커리어가 되는 거죠. 이제 시니어 레벨로 갈수록 프로젝트 규모가 커지고, 내 역할이 가진 임팩트도 함께 커지겠죠? 대신 주니어 레벨은 프로젝트 규모는 작겠지만, 차근차근 경험을 쌓아간다는 관점에서 그것도 충분한 커리어가 될 수 있다고 생각해요. 아까 개인 프로젝트를 많이 해볼수록 좋다고 말한 것도 같은 맥락이고요.
Q. 그렇다면 개발자로서 성공적인 커리어를 쌓아가려면 어떤 것이 중요할까요?
어떤 프로젝트에서든 자신의 역할을 잘 해내야 하고, 더 잘 해낼 수 있도록 스스로의 역량을 향상하는 자세가 중요하겠죠. 그러기 위해선 우선 자신의 분야에 관한 전문성과 논리적 사고, 소프트웨어에 관한 전반적인 이해도가 높아야 하고요.
또 다른 한 가지는 리더십인데요. 사실 꼭 개발자로서가 아니더라도 커뮤니티나 동아리, 스터디든 그 팀을 운영하는 리더(임원진)의 역할을 해봐야 한다고 생각해요. 리더가 되면 우선 상황을 바라보는 시각부터 달라지더라고요. 개발자로서 프로젝트를 진행할 때도 전반적인 큰 틀을 보고, 다른 직군과 원활히 소통할 수 있는 개발자가 좋은 커리어를 이어갈 수 있을 거라고 생각합니다.
Q. 작년에는 ChatGPT의 등장으로 개발자의 미래를 두고 여러 논쟁이 있었어요. 과연 미래에는 AI가 개발자를 대체할 수도 있을까요?
ChatGPT나 Gemini와 같은 인공지능은 개발자들이 어떻게 활용하느냐에 따라 그 효용성이 무궁무진한 것 같아요. 프로그래밍할 때 특정 작업을 하기 위해 패턴처럼 사용하는 코드들이 있는데, 이를 Boilerplate 코드라고 해요. 이 코드들은 그저 특정 패턴에 따라 작성하는 것들이라 귀찮을 때가 많은데 인공지능을 활용하면 금방 생성해 낼 수 있죠.
또 내가 쓴 코드가 좋은 코드인지 체크해 보고 싶을 때도 AI를 활용할 수 있어요. AI에 코드 리뷰를 맡기면 잘한 점과 개선할 점을 알려줄 거예요. 물론 코드는 프로젝트 맥락에 맞게 작성되어야 하므로, 100% 신용하면 안 되고 참고용으로만 쓰길 권장해요.
이렇게 인공지능을 잘 활용하면 프로젝트 진행 속도를 높이거나 코드 작성에 도움을 받을 수 있는데, 그래도 개발자를 완전히 대체하기는 힘들 것 같아요. 가장 큰 이유로 AI는 우리가 쓰는 코드를 잘 모른 채로 답변할 수밖에 없기 때문인데요. 굉장히 제한된 정보를 가지고 답변해야 해서 추상적인 아이디어 정도는 줄 수 있지만, 내 프로젝트에 적합한 코드인지 판단하는 건 결국 사람의 몫이죠. 그래서 AI가 개발자를 대체할 수 있는 영역은 일부라고 생각해요.
Q. 이제 4년 차 ‘구글러’이신데, 앞으로 어떤 개발자가 되고 싶나요? 목표를 이루기 위해 노력하고 있는 것들이 있다면요.
저는 어떤 프로젝트를 맡더라도 내 역할을 잘하는 개발자가 되고 싶어요. 그래서 회사 안에서도 해보고 싶은 일이 있다면 이것저것 많이 시도해 보는 편이에요. 프론트엔드, 백엔드 어느 한 곳에 치우치지 않고 경험하고 있죠. 아직까진 재밌고 관심 있는 분야가 많아서, 여러 분야에서 활약할 수 있는 개발자가 되고 싶습니다. 그리고 어떤 일이든 책임감 있게 끝까지 해내는 게 목표에요.
올해는 책임감을 갖기 위해 문서화를 좀 더 꼼꼼히 해보려고 노력 중입니다. 그래서 작은 일이라 굳이 문서화가 필요 없는 일도 간단하게 한 페이지라도 남겨두고 있어요. 이렇게 문서화하니까 대충 남겨둘 수가 없어서 좀 더 신경 써서 작성하게 되더라고요.
그리고 회사 외적으로도 글을 좀 써보려고 해요. 개인 사이트나 블로그도 운영해 보고 싶어서 틈틈이 만들고 있습니다. 이왕 시작한 거 재밌게 만들어 보고 싶어요. 사실 제가 이것저것 두루 해보는 걸 좋아해서 어찌 보면 너무 전문성이 떨어지는 게 아닐까 고민한 적도 있는데요. 그래도 아직은 이게 저한테 가장 잘 맞는 것 같아요. 언젠가 정말 몰입할 수 있는 전문 분야가 생기기 전까지는 두루두루 넓게 배우는 ‘제너럴리스트 개발자’로 성장해 보고 싶습니다.
김소희 에디터 sohee@wishket.com
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.