-
개발자의 책상(2) 머신러닝 엔지니어 조건우Team 2021. 8. 11. 14:56
알고리마 팀인터뷰 시리즈, 누군가의 책상 (2) : 머신러닝 엔지니어 조건우
인터뷰에 앞서 건우 님의 책상으로 간다. 누군가 곁에 왔다는 것도 모르고 그는 살짝 입을 벌린 채 몰입하고 있다. 어깨를 가볍게 두드린다. 아하하- 멋쩍게 웃고는 건우 님이 일어선다. 책상 위에 널린 수학 공식으로 가득 찬 이면지들, 쿠버네티스 도서, 빈 물통, 에어팟. 화면에는 프론트엔드 코드들. 열정과 몰입, 두 단어가 누구보다 잘 어울리는 개발자 건우 님을 만났다.
막내와 머신러닝
안녕하세요, 건우님. 자기 소개 부탁드려요.
머신러닝 엔지니어로 6개월째 일하고 있는 알고리마 막내, 조건우입니다. 머신러닝 R&D가 핵심 업무에요!
AI 기술 스타트업의 머신러닝 엔지니어. 핵심이잖아요. 어떤 R&D를 맡고 계신가요?
지금 하고 있는 건 두 가지인데요. 하나는 그림심리 분석입니다. 그림을 보고 아이들이 어떤 마음으로 이 그림을 그렸을까, 분석하는 AI 모델을 개발하고 있습니다. 분노, 우울, 기쁨 세 가지를 구별하는 것이 목표에요. 컴퓨터비전(CV) 태스크고 현재는 EfficientNet, ShakeNet 두 모델을 앙상블해서 성능을 실험하고 있는 중이죠. 모델 구축이 끝나면 심리상담 모바일 앱을 만들어볼 예정입니다.
다음은 이모지 추천 모델인데요. 댓글 등 문장을 읽고 가장 적합한 이모티콘을 추천해주는 인공지능이죠. 완전 자연어처리(NLP) 태스크네요. 감성 분석이 핵심이고요. 지금은 BERT 모델을 한국어에 맞추고 압축한 Distil KoBERT 모델을 쓰려고 준비 중입니다. 음, 확정은 아닌데요, 개발 이후에는 저희 AI 교육용 소프트웨어 이지딥 실습으로 들어가지 않을까 싶네요.
멋져요. 이전에 맡았던 업무 중 특별히 기억에 남는 것이 있나요?
인공지능 교육용 콘텐츠를 위해 만들었던 반응형 그래프 개발이요. "아이들이 어려운 인공지능도 눈으로 보면서 쉽게 이해할 수 있는 실습이 있었으면 좋겠다." 이게 요청사항이었어요. AI 알고리즘에 관한 높은 이해도, 입력 데이터와 모델이 상호작용하도록 연결하는 것, 이 결과를 애니메이션 형태로 보여주는 프론트. 세 가지가 주요 과제였죠.
머신러닝을 프론트에 구현하기 위해 tensorflow.js 프레임워크를 익혔어요. 구글의 티쳐블 머신을 보면서 가볍게 클론 코딩한 뒤에 최적화한 모델을 적용했습니다. 그래프 구현을 위해 rechart 라이브러리, canvas API 등도 정신 없이 익혔죠. 나중에는요, 제가 욕심이 나서 모바일 환경에 맞춰 구현하고 인터넷 연결이 끊겨도 페이지를 이용할 수 있는 기능까지 추가했어요. 프론트 코드들을 많이 써야 해서 저한테는 또 새로운 도전이었죠. 거의 구글일체 삶을 살았는데요, 완전 재밌기는 했어요. 결과물도 나름 만족스럽고. (결과물 보기)
성장, 성장, 성장
점심시간, 건우 님은 빠르게 점심을 먹고 햇살이 쏟아지는 라운지에 앉아 머신러닝 강의 영상을 튼다. 요즘 그가 새로이 파고드는 분야는 GNN. 그래프 형태 데이터를 분석하는 인공신경망 네트워크다. 얼마 전에는 모든 직원을 모아두고 GNN 세미나도 열었다.
강의를 보는 건우 님에게 비전공자 동료가 찾아온다. 이제 남은 점심시간은 강의 시간이다. 빈 회의실로 들어가 화이트보드를 그래프로 채우며 인공신경망의 기본 구조와 가중치, 경사하강법, 역전파를 설명한다. 목표는 쉽게 말하기. 알아듣게 전달하기. 정확하게 알려주기.
지난 6개월, 건우 님은 알고리마와 함께 성장하셨나요?
어마어마하게요. 학교에 다니다 회사에 들어와서요, 처음에는 아무것도 모르는 상태였다고 해도 이상하지 않았거든요. 지난 6개월은 정말 시야가 넓어지는 시간이었죠. NLP, 강화학습, 추천, GNN 등 단순히 머신러닝 분야의 지식이 넓어진 것뿐만 아니라 백엔드, 프론트엔드, DevOps에 관한 기본 지식도 늘어났습니다. 분야를 따지지 않고 개발자들끼리 함께 고민하고 배운 것을 나눴거든요. 음, 저는 인간적인 면에서도 개인적으로 성장했다고 느껴요.
사람으로서도 성장했다니 좋네요. 특히 어떤 부분에서 스스로 성장했다고 느끼시나요?
사실 처음 들어왔을 때만 해도, 인공지능을 어떻게 쉽게 가르치지? 회의적이었어요. 저는 수학으로 인공지능에 입문했거든요. 수학 이론을 모르고 어떻게 인공지능을 배운다는 거지? 하는 생각. 그런데 일하다 보니 마인드가 조금 바뀌었어요. '이지딥' 콘텐츠를 함께 만들어나가는 사람들 영향이 컸죠. 공부도 개발도 나 혼자 독고다이로 할 수 있지만, 제가 이걸 말로 쉽게 설명할 수 있어야 100% 이해했다고 말할 수 있다는 점을 깨달았거든요. 공부했던 지식을 쉽게 설명하려다 보니 오히려 이해도도 높아졌고요.
일하는 방식도 달라졌어요. 원래 저는 혼자 모든 걸 안고 가려는 경향인데요, 이제 좀 나누게 됐어요. 대충한다는 게 아니에요! 책임감은 더 강해졌어요. 다만 주도적으로 프로젝트를 진행하다 시간 같은 면에서 혼자 감당할 수 없는 일에 NO라고 말할 수 있게 됐다는 거에요. 영욱(대표)님도 그걸 싫어하지 않으시거든요. 논리적인 근거만 있다면 오히려 지지해준다는 느낌도 받았어요.
알고리마에서 개발자로 일한다는 것
알고리마의 어떤 점이 건우 님의 성장에 이토록 영향을 줬을까요?
회사에서는 개인 성장을 위해 지원을 아끼지 않잖아요. 업무 관련 교육비가 나오고 원서 등 관련 서적 구매도 아낌없이 지원해 주죠. 아 또, 혼자 모델을 돌려보다 보면 아쉬운 점이 컴퓨터 성능인데요. 한계가 있으니까. 알고리마에 들어와서 비싼 GPU를 요청하니 곧바로 사주셨어요. 한 번도 안 된다, 못 산다 이런 거 없이. 그래도 이건 부차적이고요, 진짜 장점은 이거에요. 동료들.
앞서 사전 인터뷰에서도 알고리마 장점을 묻는 말에 개발자들을 한 분 한 분 다 언급하셨잖아요. 동료들 자랑 좀 해주세요.
여기가 제 첫 직장인데요, 한동안은 개발자들이 다 이런 줄만 알았다니까요. 체력 괴물들이 불타는 에너지로 개발하는. 사무실에는 개발 몬스터들이 상주하잖아요.
굳이 하지 않아도 되는 공부를 개발자들은 '야크 쉐이빙'이라 부르는데요, 보통 부정적이 의미로 쓰이기도 하지만 알고리마 개발자들이 이걸 워낙 좋아해요. 이게 어쨌든 개발 공부고 쌓이다보면 어느 순간 실제 일과 맞물려 가기도 했죠. 우리는 멈추지 않고 야크 쉐이빙을 거듭한 뒤에 이걸 또 공유해요. 말해주지 않으면 모르잖아요.
그러다보니 개발세미나도 활성화됐죠. 세미나는 일로 안 쳐줄 수도 있을 텐데 회사에서 세미나를 엄청 장려해요. 당장 개발자인 영욱 님부터 개인의 성장이 곧 회사의 성장이라고 생각하는 사람 같아요. 세미나에는 백, 프론트, 머신러닝 안 가리고 모두 모여서 새로 공부한 걸 나눠요. 제가 최근에 한 세미나 주제는 http protocol, Async Sync vs Non Blocking Blocking 입니다. 꼭 머신러닝 엔지니어 아닌 것 같네요. 그래도 개발자들 다 듣는 것, 말하는 것 모두 적극적으로 참여하니 무슨 공부를 해도 아주 신나요.
모여서 일하다 보면 부딪칠 때도 있을 텐데, 마찰 없이 사이 좋게 지내시나요?
원래 제가 듣기로는 백엔드랑 프론트엔드가 전쟁을 벌인다고 했거든요. "이거 해달라" 하면 "못 한다" 하고 서로 싸운다고. 저희는 필요한 할 말을 다 하면서도 배려를 해주는 느낌이에요. 개인적으로는 평소 사무실 분위기가 워낙 화목한 편이라 오히려 피드백도 편하게 할 수 있었어요. 일을 가능한 잘게 쪼개 깃헙 이슈로 등록하고 원하는 걸 가져가 처리하는 특유의 방식도 도움이 됐고요.
조건우 보유사
어느 날 아침, 회사에 오니 사무실 한쪽 벽이 수식으로 가득 채워져 있었다. 이 일을 벌인 사람은 알고리마 누구나 다 안다. 건우 님이다. 수식을 보는 것만으로도 어질어질한 비개발자 동료들이 장난처럼 따지고 드니, 그는 "아주 간단한 기초 식이에요. 대게 재미있는데, 설명 들어보실래요?" 하고 받아쳤다. 진심이었을 거다. 요즘 들어 사람들끼리 농담처럼 붙인 알고리마 별칭이 있다. 조건우 보유사.
이렇게 끊임없이 공부하는 동력이 궁금해요. 건우 님이 생각하는 좋은 개발자는 어떤 사람일까요?
음, 공부를 열심히 하는 건 당연히 가져야 하는 소양일 테고요. (한참 고민하고는) 정말 좋은 개발자는 이해한 것을 쉽게 설명할 수 있는 개발자 같아요. 공부한 것을 남에게 베풀려고 하는 사람이요. 그런 개발자들은 내가 공부한 지식을 풀어 말할 수 있을 때 비로소 자기 것이 된다는 사실을 알테죠.
알고리마에서 함께하고 싶은 개발자 역시 '좋은 개발자'겠군요.
맞아요. 공부한 것을 공유하기 좋아하는 사람이면 너무 좋죠. 그렇지만 무엇보다 개발 자체가 너무 좋은 사람, 본인의 일을 즐기는 사람이어야죠. 그런 분들과 함께 공부하고 성장하고 개발하고 싶습니다.
머신러닝에 빠져들게 된 계기를 물으니 건우 님은 "공식들이 수학적으로 아름다워서요" 하고 대답한다. 건우 님에게 어울리는 책상의 형태를 고민해 보는 동안 그는 이곳저곳 자리를 넘나들며 개발을 이어간다. 동료들 옆자리로 다가와 토론하다 빈 책상에 앉아 노트북을 만진다. 곧 그에게 맞는 책상의 형태란 따로 없다는 것을 깨닫는다. 늘 공부하고 성장하는 건우 님에게는, 그가 머무는 모든 곳이 개발자의 책상이다.
글 장대청 사진 박완우
<알고리마 채용> 알고리마에서는 '건우'님과 함께 성장하며 AI 에듀테크 시장을 이끌어갈 개발자를 기다립니다.
'Team' 카테고리의 다른 글
PM의 책상 (1) 최정현 (0) 2021.09.10 개발자의 책상(3) 백엔드 엔지니어 이상훈 (0) 2021.08.27 (New!) DBM 용혜림, FE 이루다, PM 최소은 (0) 2021.08.13 (New!) 야생의 PM 소병현 (0) 2021.08.06 개발자의 책상(1) 백엔드 엔지니어 김재용 (0) 2021.08.06