[루닛Job담 #2] 세상에서 가장 가치있는 개발, 의료 AI | 루닛 스코프 백엔드팀

루닛 채용팀
Lunit Team Blog
Published in
13 min readNov 9, 2022

Conquer Cancer through AI.

인류가 그동안 풀지 못한 난제인 ‘암’을 해결하겠다는 일념으로 불철주야하는 루닛. 하지만 의료와 AI의 만남이 다소 어렵게 느껴질 수 있을 것 같아, 루니션이 직접 각 팀을 소개하려고 해요.
루닛이 하는 일 그리고 루니션이 의료 AI 회사에서 무슨 일을 하는지 궁금했다면 앞으로 ‘루닛JOB담’을 통해 루닛과 좀 더 친해져요!

두 번째로 소개할 팀은 루닛 스코프 제품을 개발 중인 백엔드 팀입니다.

*루니션 (Lunitian): Lunit+ Martian의 줄임말로 ‘암’이라는 행성을 정복하기 위해 노력하는 루닛 멤버들을 지칭한다.

세상에 가치있는 솔루션 개발?

🗨️ 우민님 안녕하세요👋 먼저 자기소개와 지난 커리어 패스를 간략하게 소개 부탁드려요.

루닛 온콜로지(종양학) 그룹의 백엔드 팀에서 ‘루닛 스코프(AI 병리분석 솔루션)’ 제품을 개발하고 있는 박우민입니다. 반갑습니다! ‘루닛 스코프’는 방대한 양의 조직 슬라이드와 암세포를 학습해 면역항암제 치료 반응을 정확하게 분석하는 제품입니다.

루닛에 합류하기 전에는 4G 이동통신 코어망 서버를 개발했었고, 멘탈헬스케어 기업에서 우울증 등과 같은 뇌 질환 진단 및 치료를 위한 솔루션도 개발했었습니다.

🗨️ 루닛에 오신 특별한 이유가 있나요?

저는 항상 ‘제 일로 하여금 사회에 큰 가치를 줄 수 있는지’가 중요하다고 생각했었어요. 그리고 루닛의 미션인 ‘인공지능 솔루션을 통한 암 정복’이 도전해 볼 만한 충분히 가치 있는 일이라고 생각했습니다.

지원 당시 루닛이 스타트업이라는 점도 굉장히 끌렸는데요. 큰 그림을 그리고 넓고 다양한 업무를 하는 것을 좋아하는 성향인데 루닛에서 꼭 해보고 싶더라고요. 아! 그리고 신기하게도 회사 창립기념일과 제 생일이 같은데, 이 부분도 아주우우 미세하게 작용했던 것 같습니다.(하하)

[ Product Development in Oncology Group, Backend Engineer 우민님 ]

어서 와 백엔드 엔지니어들아, 의료 AI 기업은 처음이지?

🗨️ 의료 AI 기업에서 백엔드 엔지니어는 무엇을 경험할 수 있나요?

‘백엔드 개발자가 의료 분야에서 어떤 일을 할 수 있어?’ 궁금하신 분들이 많으실 텐데요. 의료 데이터라는 민감한 데이터를 다루기 때문에 개발과 인프라 측면에서 보안과 관련된 것들을 심도 있게 경험할 수 있어요. 그리고 무엇보다 생명을 다루기 때문에 정확하고 신뢰도 높은 데이터를 만드는 게 중요한데요. 이에 초점을 맞춰 세밀하게 개발하는 것도 경험할 수 있어요.

그리고 ‘의료 지식도 있어야 하지 않을까?’ 걱정하시는 분들도 꽤 있을 텐데요. 물론 의료 AI 기업이라 의학 용어들을 사용하는 경우가 종종 있어요. 하지만 개념이 무엇인지 이해하면 되는 정도라 어렵지 않아요. 저는 오히려 용어를 배우는 재미가 쏠쏠합니다. 항체나 항원이 뭐였는지 학교에서 배웠던 것들을 다시 한번 되뇌어 보는 것도 재미있고, 뭔가 특별한 사람이 된 것 같다는 느낌도 들어요. 또 모르는 용어는 사내 의사 선생님들에게 자유롭게 물어보기도 하고요. 이것 또한 다른 회사에서는 경험하기 힘든 점인 것 같아요.

🗨️ ‘루닛 스코프’를 개발하는 과정에서 힘든 점은 없나요?

루닛에서 개발되는 제품들이 진단 또는 치료 목적으로 사용되기 때문에 지켜야 할 지침, 표준, 규제 등이 매우 많아요. 임상시험과 기술 검증도 해야 하고요. 그래서 사용자가 실제로 제품을 사용할 때까지의 과정이 일반 소프트웨어에 비해 길고 험난해요.

하지만 이런 과정들을 다 거치고 ‘루닛 스코프 유럽 CE 승인과 같이 내가 개발한 제품에 대한 기사가 났을 때의 성취감은 굉장히 커요. 내가 진짜 의미 있는 제품을 만들고 있구나라는 자부심도 생기고, 일에 더 집중할 수 있는 동기부여도 돼요.

👉 기사 보러 가기

[ ‘루닛 스코프’ 관련 기사의 헤드라인들 ]

Kotlin과 Python으로 서버를 개발 중인 스코프 백엔드 팀

🗨️ 많은 기업이 Java로 개발하고 있다고 들었어요. 루닛은 어떤 언어를 사용하는지 궁금해요.

제가 입사하기 전 루닛에서는 Java랑 Spring Boot를 사용하고 있었고, 2021년 초 제가 입사하고 나서부터 Kotlin을 본격적으로 사용하기 시작했습니다. 현재 저희 팀에서는 Kotlin과 Python 두 가지 언어를 이용해서 서버를 개발하고 있어요.

Java가 여전히 많은 회사에서 사용되고 있는 좋은 언어임이 틀림없지만, 여러 세대를 거쳐오면서 기능 향상과 문제 해결을 위한 새로운 언어들이 제안되고 있어요. 그중 하나가 Kotlin인데요. Kotlin에서는 Java와 동일한 framework와 도구들의 사용이 가능해요. 그래서 Java로 만들어진 소프트웨어들을 Kotlin으로 쉽게 변환할 수 있죠. 또 Kotlin은 Null 안정성이라는 특징을 가지고 있고, 함수형 프로그래밍이나 동시성 프로그래밍이 가능하기 때문에 Kotlin을 사용하고 있습니다. 하지만 Kotlin의 한계도 있어요. 예를 들어 GPU를 이용한 빠른 연산이 필요하거나 third-party 라이브러리가 필요한데 Kotlin을 이용할 수 없을 때는 Python으로 해결하고 있습니다.

대용량 데이터 처리와 Deep Zoom Imaging

🗨️ 루닛에서는 대용량 데이터 처리가 기술적인 챌린지라고 들었어요.
백엔드 팀에서는 어떻게 해결하고 있나요?

사용자인 의사들이 루닛 스코프 제품을 사용할 때 대용량의 암세포 조직 슬라이드 이미지와 분석 결과를 정확하고 빠르게 조회할 수 있어야 하는데요. 이를 가능하게 하는 것이 저희 팀의 챌린지입니다. 게다가 최근 제품이 다양하게 늘어나고 있고 사용자 수 또한 많아지고 있어서 굉장히 중요한 챌린지가 되었어요.

저희 팀에서는 이러한 기술적 챌린지를 극복하기 위해 AWS와 GCP Cloud와 같은 클라우드 서비스를 적극 활용하고 있습니다. 보통 암세포 조직 슬라이드 이미지의 용량이 최대 10GB로 용량이 크다 보니 네트워크상에서 업로드하고 다운로드할 때, 그리고 이미지 처리를 할 때 큰 리소스가 필요하거든요. 이를 클라우드 서비스로 처리하고 있어요. 클라우드상에서 이미지들을 빠르고 효율적으로 전달하고 있고, 이를 위해 현재 서버를 개발하고 인프라를 구축하고 있어요.

저희가 직면한 또 다른 챌린지 중 하나는 ‘Deep Zoom Imaging’ 기능의 성능 향상인데요. 이미지 분석 요청이 오면 암세포 슬라이드 이미지 중 필요한 부분만 타일링해서 실시간으로 전달하고 있어요. ‘어떻게 하면 더 빠르게 파일에 접근해 타일링해서 전달할 수 있을까’를 고민하고 있습니다. 데이터 처리 속도가 곧 제품의 성능이기 때문에 ‘1ms라도 줄이자!’라는 마음가짐으로 업무에 임하고 있습니다.

[ 루닛 스코프 제품을 개발중인 우민님 ]

큰 그림을 그리는 루닛 백엔드 엔지니어

🗨️ 기술적인 챌린지를 열심히 극복하고 계신데요.
백엔드 팀에서 새로운 프로젝트를 통해 이뤄낸 것들이 있으면 공유해 주세요.

개발도 중요하지만, 개발 후 운영도 중요해요. 제품을 만든 후 어떻게 운영해야 하는지, 어떻게 고객에게 안정적인 시스템을 제공할 수 있을지 운영 관점에서도 많이 고민하고 있고 새로운 결과도 내고 있습니다.

예를 들어 AWS나 GCP에 제품을 배포할 때 예전에는 수동으로 구축했었는데 현재는 Terraform을 이용해서 코드로 인프라를 관리하고 있어요. 인프라를 코드화하고 배포 시 코드를 실행시키면 인프라가 한 번에 설치되도록 했어요. 이렇게 운영하니 코드로 계속 확인할 수 있어서 유지 보수 측면에서 큰 도움이 됐습니다.

이처럼 개발만으로 해결하지 못할 때 인프라를 함께 고려하다 보면 해결될 때가 있고 좀 더 안정적으로 제품을 운영해 나갈 수 있어요. 그 과정에서 팀원들과 개발 측면과 운영 측면을 함께 고민하다 보면 더 큰 그림을 그릴 줄 아는 백엔드 엔지니어로 성장할 수 있는 것 같아요.

글로벌 바이오 기업 Guardant Health와의 협업 🌎

🗨️ 온콜리지(종양학) 그룹은 ‘Guardant Health’와 협업을 활발히 하고 있잖아요. 어떤 프로젝트를 함께하고 있나요?

글로벌 바이오 기업 Guardant Health에서 개발한 서비스가 있는데요. 여기에 루닛은 여러 바이오마커에 대한 세포 조직 슬라이드 이미지를 분석하는 모듈을 통해 분석 결과를 제공하려고 합니다. 현재 서비스 개발과 함께 연동에 필요한 인프라나 인터페이스에 대해 활발하게 논의하고 있고요.

* Guardant Health : 혈액검사와 같은 액체 생검 분야 전 세계 1위인 바이오 헬스케어 기업으로 70개 이상의 글로벌 제약사와 협업을 맺고 있다.

[ Guardant Health 로고 ]
[ Guardant Health와 회의 중인 우민님 ]

🗨️ 프로젝트를 진행하시면서 느낀 점은요?

어떤 목표를 달성할 때마다 Guardant Health로부터 Milestone Fee를 받기로 했는데요. 저희 팀이 개발한 것들이 회사 매출로 바로 나타나는 거죠. 회사의 성장과 매출에 기여한다는 것을 직접 경험할 수 있다는 게 크게 와닿는 것 같아요.

Guardant Health와의 모든 의사소통은 영어로 진행되는데요. 늘 긴장되고 어렵긴 하지만 글로벌 엔지니어로서의 역량을 높일 수 있는 기회라고 생각하고 있고요. 사내에 루니버셜이라는 영어 수강 프로그램을 수강해서 영어 스피킹 능력을 열심히 끌어올리고 있습니다.

*루니버셜 : 루니션을 위한 1:1 영어 원어민 수업. 루닛에서 직원들의 교육비 일부를 지원하고 있으며, 업무 시간에 자유롭게 수업을 들을 수 있다.

배려를 기반으로 한 체계화

🗨️ 백엔드 팀 온보딩 세션을 위한 문서를 봤는데, 굉장히 자세하게 설명되어 있더라고요. 이게 우민님 아이디어였다고 들었어요.

사실 백엔드 개발자 분위기는 다른 분야의 개발자보다는 조금 딱딱한 것 같아요. 그래서 팀원분들의 성향을 온보딩 세션에서 먼저 소개해 준다면 분위기도 부드러워지고, 뉴비들이 더 빨리 팀에 스며들 수 있을 것 같아 아이디어를 내봤어요.

온보딩 세션 이외에도 제품을 안정적으로 운영하기 위해 프로젝트 관련 문서들도 세세하게 작성하고 있어요. 문서화가 잘 되어 있으면 문제가 생겼을 때 빠르게 대응할 수 있기 때문인데요. 또 다른 팀과 협업할 때도 저희가 만든 결과물과 산출물을 문서로 공유하면 의견이 명확하게 전달되고 커뮤니케이션도 효율적으로 할 수 있어요.

🗨️ 들어보니 효율적으로 일하고 계신 것 같아요. 백엔드 팀의 업무 방식을 자세히 공유해 주세요.

팀 내에서 2주 단위로 목표를 세우고, 끝난 뒤에는 발전이 필요한 점, 우리가 잘한 점 등을 공유하며 회고하는 시간을 가지는 스프린트를 진행하고 있어요.

저희 팀 특성상 재택근무가 잦은데요. 어떻게 하면 소통을 더 잘 할 수 있을지 고민하다 도입하게 되었어요. 덕분에 자유로운 근무 환경에서도 원팀으로서 끈끈하게 유지될 수 있는 것 같아요.

그리고 스프린트를 통해 새로운 업무를 경험하기도 하는데요. 계속 같은 일만 담당해 새로운 일을 경험해 보지 못하고 있다면 다음 스프린트 때 새로운 일을 나누어 기초를 함께 단단히 다지고 팀원들 개개인의 경험을 넓히고 있습니다.

[ 팀의 로드맵을 그리고 있는 우민님 ]

🌈 무지개 같은 루닛 스코프 백엔드 팀

🗨️ 최근에 팀 워크숍을 진행하셨다고 들었어요.

조직문화팀에서 진행해 주신 워크숍에서 eDisk라는 성향 검사를 진행했는데요. 팀원들 성향이 다 다르고 뿔뿔이 흩어져 있더라고요(하하). 성향은 전부 다른데 딱 하나 공통점이 모두 책임감이 굉장히 강하세요. 그래서 업무를 나눌 때도 팀원분들 모두 적극적이고 갑자기 해야 하는 일이 생기면 ‘제가 할게요’라고 말씀해 주셔서 항상 든든하죠. 책임감을 중심으로 각자의 장점들이 모여 큰 시너지를 내는 팀인 것 같아요.

배움에 대한 열정 + 열린 마음

🗨️ 면접관으로서 루닛 백엔드 엔지니어가 되기 위해서는 어떤 것들이 필요한가요?

개발과 운영을 동시에 하고 있기 때문에 우선 인프라나 운영에 대한 기술을 배우고 싶은 분들이면 좋겠고요. 그리고 새로운 기술을 배우고자 하는 열정이 있으면 좋을 것 같아요. 팀원들이 트렌디한 기술에 관심이 많아서 공유하고 의견을 많이 나누고 있거든요 대부분 스타트업의 마인드를 가지고 있어서 새로운 기술 도입에 적극적인 편이기도 하고요.

[ 서로의 아이디어를 자유롭게 공유하는 루닛 백엔드팀 ]

🗨️ 루닛 스코프 백엔드 팀의 채용 프로세스는 어떻게 되나요?

과제 ► 기술 면접 ► 임원 면접 순서로 진행됩니다. 기술 면접 때는 수행했던 과제에서 어떤 고민을 했는지, 어떻게 만들었는지, 어떻게 발전시킬 수 있는지에 물어봐요. 그리고 이전 회사에서 했던 프로젝트가 있다면 해당 프로젝트에 대해 중점적으로 질문해요.

🗨️ 루닛에서 백엔드 엔지니어가 되기 위해서 의료 쪽 경험이 필요한가요?

전혀 없어요. 의료 AI 회사라고 해서 의료 지식을 알 필요는 없는 것 같고요. 신규 입사자를 위한 온보딩도 하고 있어서 배움에 대한 의지만 있다면 걱정 안 해도 될 것 같아요. 물론 의학 용어에 대해 낯섦은 있을 수 있지만 용어의 개념 정도만 배워 나간다면 개발 업무를 하는 데 큰 문제가 없을 거예요.

👉 루닛 채용에 대해 더 궁금하다면 Click!

[ 인터뷰 중이신 우민님 ]

서로를 믿고 담담하게, 하지만 빠르게

🗨️ 마지막으로 우민님께서 지금까지 느꼈던 루닛만의 매력은 무엇인가요?

루닛은 명확한 비전이 있고 비전에 맞게 빠르게 성장하고 있는데요. 그 와중에 개선이 필요한 부분은 적극적으로 개선하고 시스템을 체계화하고 있어요. 몇몇 어려운 챌린지가 있지만 리더분들이 어떻게 돌파할 수 있을지 고민을 굉장히 많이 하고 있고요. 서로를 믿고 담담하게, 하지만 빠르게 성장해나가는 기특한 회사인 것 같습니다. : )

👉 그렇다면 루닛 프론트엔드 팀은 어떤 일을 할까?

--

--