인터뷰x하커야 iOS Software Engineering
2021.09.06
Hi! iOS Software Engineers!
하이퍼커넥트®는 독보적인 기술력을 바탕으로 빠르게 성장해왔습니다. 하이퍼커넥트®의 기술과 노하우를 지속적으로 발전시켜 전 세계 어디에서나 안정적으로 이용할 수 있는 글로벌 서비스를 제공하고 있으며, 우리가 가진 기술과 노하우를 글로벌 비즈니스 서비스로 제공하는 엔터프라이즈 사업에 진출하기도 했는데요. 오늘 인터뷰x하커야에서는 Enterprise팀 iOS 엔지니어 Xeon과 Azar팀 iOS 엔지니어 Cruz를 소개합니다!
- 본 인터뷰는 안전을 위해 비대면으로 진행되었으며 방역방침을 준수하여 제작했습니다
Hi, Hyperconnectors!
(Xeon) 안녕하세요, 저는 Enterprise팀 iOS 엔지니어 Xeon입니다.
(Cruz) 안녕하세요. Azar iOS 애플리케이션을 개발하고 있는 Cruz입니다.
Q.현재 하고 있는 일?
(Xeon) 저는 비디오와 관련된 플랫폼을 SDK(Software Development Kit)로 만드는 일을 하고 있습니다. 하이퍼커넥트®에서는 지난해 말부터 하이퍼커넥트®의 다양한 기술과 시스템을 글로벌 고객에게 제공하는 B2B 사업을 진행하고 있는데요. 그중에서도 비디오 기술과 관련된 인프라와 경험을 외부에서도 쉽게 사용할 수 있도록 솔루션으로 제공하는 작업을 담당하고 있습니다.
(Cruz) 저는 Azar의 인앱 결제와 관련된 기능을 담당하고 있습니다. Azar에서는 유저들이 더 재미있고 편리하게 Azar를 이용할 수 있도록 다양한 아이템과 구독 상품을 제공하고 있습니다. 글로벌 서비스인 Azar의 모든 클라이언트 기능은 여러 국가와 언어, 데이터를 바탕으로 의사결정을 해야 하기 때문에 A/B 테스트는 물론, 다양한 컨텍스트(Context)를 고려하며 개발해야 하는데요. 이 같은 복잡한 요구 사항이 담긴 기능을 유저들에게 빠르고 안정적으로 제공할 수 있도록 좋은 설계에 대해 고민하며 적극적인 테스트 코드 작성을 이어나가고 있습니다.
Q.하이퍼커넥트®를 선택한 결정적 이유?
(Xeon) 가고 싶은 회사의 목록을 만든 다음 세 가지 정도의 기준을 두고 비교해봤습니다. 제가 가장 중요하게 생각한 것은 ‘사용자 수가 얼마나 많은가’, ‘앞으로의 성장 가능성이 얼마나 높은가’, ‘얼마나 뛰어난 기술적 역량을 갖추고 있는가’ 하는 것이었는데요. 이 세 가지 요건 모두를 충족하고 있는 회사는 하이퍼커넥트®가 유일했습니다. 여담이지만 당시 하이퍼커넥트®에 재직 중인 후배를 만나 여러 가지 조언을 구했는데 후배가 곧 결혼을 한다고 하더라고요. ‘하이퍼커넥트®에 가면 나도 결혼할 수 있겠구나!’하는 생각에 다음날 당장 지원서를 제출했습니다. (웃음)
(Cruz) 저는 글로벌 서비스를 성공적으로 안착시킨 회사에서 더 성장해보고 싶어서 하이퍼커넥트®를 선택했습니다. 그동안 여러 스타트업을 경험했지만 글로벌 시장에서 안정적으로 운영되고 있는 서비스를 개발한 경험은 없었습니다. 또한, 당시 iOS 개발에 주로 사용하고 있던 Objective-C가 아닌 Swift의 초기 버전인 1.0으로 Azar를 개발한 것도 인상적이었는데요. 당시만 해도 매우 진보적인 행보였습니다. 이후 Swift는 iOS 엔지니어들에게 가장 많은 사랑을 받는 언어로 발전해 왔는데요. Azar는 프로젝트 초기부터 Swift 1.0으로 시작해 현재 Github 기준 96.5%가 Swift로 작성되어 있습니다. 하이퍼커넥트®의 뛰어난 통찰력이 돋보이는 부분이라고 생각합니다.
Q.B2B인 Enterprise 엔지니어링의 특징?
(Xeon) 사용자를 어떻게 정의하느냐에 따른 차이는 있지만 결국 사용자의 경험을 이끌어내야 한다는 점은 B2B 사업이나 프로덕트나 비슷한 것 같습니다. 물론, 세부적인 차이는 있어요. 프로덕트 엔지니어로 일할 때는 ‘사용자 경험이 어떨까?’를 가장 중요하게 생각했다면 지금은 ‘이걸 가져다 쓸 다른 개발자가 어떻게 하면 더 쉽게, 더 다양한 기능을 활용할 수 있을까?’를 더 중요하게 생각하고 있습니다.
Q.가장 기억에 남는 순간?
(Xeon) SDK 개발 경험이 없었기 때문에 프로젝트를 세팅하는 것부터 쉽지 않았습니다. 특히, 외부 프레임워크를 사용하는 부분을 어떻게 처리해야 할지에 대한 고민이 많았는데요. 기존에 다이내믹(Dynamic)하게 링크되었던 프레임워크를 고정(Static) 링크로 변경하는 과정이 녹록지 않았습니다. 얼마 전부터 Swift가 Static 링크 지원을 시작하긴 했지만 아직 최신 기능이라 버그도 많고 참고할 자료도 많이 부족했어요. 빌드가 계속 실패하는 상황에서 빌드 옵션을 하나씩 바꿔가며 테스트를 진행하다 보니 약 두 달이라는 시간이 소요됐습니다.
정리를 하고 보니 간단한 내용이었지만 어떤 가이드도 없이 익숙하지 않은 일을 시도한다는 것에 부담을 느꼈던 것 같아요. 힘들기도 했지만 아직 도전할 게 많다는 생각을 하게 한 값진 경험이었습니다.
Q.엔지니어로서 성장하고 있다고 느끼는 순간?
(Xeon) 기술적인 이슈가 발생했을 때 저의 판단과 결정을 스스로도 믿을 수 있고, 주변 동료들도 믿고 따라줄 때 ‘성장’이라는 단어를 떠올리게 됩니다. 또한, 보다 효율적인 문제 해결 방법을 찾기 위해 고민하는 과정 속에서 스스로 성장하고 있다는 느낌을 받곤 하는데요. 과거에는 어떤 문제를 완벽히 해결하고 구현해내는 것을 가장 중요하게 생각해왔다면, 지금은 그 문제를 어떻게 하면 더 빠르고 효율적으로 풀 수 있는지를 더 중요하게 생각하고 있습니다. 단순히 복잡도를 줄일 뿐만 아니라 여러 가지 옵션을 제안하며 보다 효율적으로 접근하려 노력하고 있습니다.
어떻게 보면 기능을 완벽하게 구현하는 것과 정해진 일정에 맞게 수행하는 것은 서로 반대되는 성질의 미션이기도 한데요. 이 두 가지를 모두를 조화롭게 충족하는 것이 엔지니어에게는 매우 중요한 일이 아닐까 싶습니다.
Q.가장 중요하게 생각하는 것?
(Cruz) 앞서 말씀드렸지만 유저들에게 지속적이고 빠른 업데이트로 긍정적인 서비스 경험을 제공하기 위해서는 좋은 설계에 대한 고민과 함께 적극적인 테스트 코드 작성이 중요합니다. 그동안 많은 서비스를 개발하면서 얻은 귀중한 교훈이기도 한데요. 결국 끝까지 살아남아 서비스되고 있는 앱은 좋은 설계에 대해 치열하게 고민하고 유지 보수 비용을 절감하는데 성공한 앱이라고 생각합니다.
저희가 테스트 코드 커버리지를 지속적으로 높여가고 있는 이유 또한 마찬가지로 Azar가 오랫동안 사랑받는 서비스가 되길 바라기 때문입니다. 현재 약 6,000개의 유닛 테스트가 작성되어 있고, Github Action을 통해 테스트를 자동화하고 있는데요. 앞으로도 더 다양하고 유의미한 테스트 작성을 지속해나갈 예정입니다.
Q.가장 보람됐던 순간?
(Cruz) 지난 4월 Azar의 글로벌 누적 매치 수가 1,000억을 돌파했습니다. 다운로드 수도 이미 5억을 넘으며 Azar는 전 세계 수많은 유저들이 사랑하는 글로벌 서비스로 자리매김했는데요. iOS 엔지니어로서 Azar의 새로운 기능을 개발하는 것도 중요하지만, 전 세계 수많은 유저들이 더 좋은 서비스를 경험할 수 있도록 UX와 성능을 개선하는 것 또한 중요하다고 생각합니다.
이와 같은 맥락에서 최근 앱 론칭 시간을 약 1초 정도 단축시킨 일이 기억에 남는데요. Azar가 매월 1억 번 실행된다고 가정하면 약 3년에 달하는 시간을 절약시킬 수 있는 성과입니다. 최근에는 Azar 매치에 소요되는 시간을 밀리초(millisecond) 단위로 개선하기 위한 노력을 이어가고 있는데요. 클라이언트에서 개선하는 이 1ms의 시간은 전 세계 유저들의 1년 이상의 시간을 절약하는 결과로 이어질 수 있습니다. 유저들의 소중한 시간이 낭비되지 않게 하는데 기여하는 것은 물론, 엔지니어링의 역량을 마음껏 펼쳐보고 결과를 얻을 수 있다는 것이 큰 보람으로 이어지는 것 같습니다.
Q.입사 당시 대비 가장 큰 변화?
(Cruz) 제가 입사했던 2017년 1월은 하이퍼커넥트®가 멀티 프로덕트 컴퍼니로 나아가기 위한 과도기를 거치고 있던 때였습니다. 지금은 여러 오피스에서 다양한 프로덕트의 담당자들이 일을 하고 있지만 당시만 해도 한 건물에 있는 모든 하이퍼커넥터들이 Azar와 관련된 일을 하고 있다고 해도 과언이 아니었습니다. Azar를 성공시킨 WebRTC 기술을 이용해 이제 막 새로운 서비스를 만들기 시작하는 단계였기 때문에 저 역시 입사 초기에는 WebRTC 기술을 활용한 신규 프로젝트를 담당했어요.
이 같은 과정을 거친 지금의 하이퍼커넥트®는 Azar, Hakuna Live와 같은 다양한 프로덕트뿐만 아니라, 전 세계 기업 고객에게 하이퍼커넥트®의 기술과 노하우를 제공하는 엔터프라이즈 사업까지 진출했는데요. 진정한 멀티 프로덕트 컴퍼니로 성장한 것이 2017년 대비 가장 큰 변화가 아닐까 싶습니다.
Q.엔지니어로서 느끼는 멀티 프로덕트 컴퍼니의 이점?
(Xeon) 하이퍼커넥트®에는 WebRTC, AI 등의 기술을 다양한 프로덕트와 프로젝트에 활용하고 지원받을 수 있도록 사내 전문 연구 기관을 두고 운영하고 있습니다. 앞서 말씀드렸던 것처럼 SDK 개발 초창기에는 Static 링크와 관련된 어려움이 많았는데요. 그때도 사내 미디어랩의 도움을 많이 받았습니다. 미디어랩에서는 WebRTC기술을 하이퍼커넥트®의 여러 서비스에서 효율적으로 사용할 수 있도록 프레임워크 단위로 제공해 주고 있는데요. 그러다 보니 SDK와 관련된 이슈에 대해서도 여러 차례 도움을 받을 수 있었습니다.
(Cruz) Azar와 Hakuna Live는 기술셋이나 UI 플로우 등에 있어서 유사한 점이 많습니다. 그래서 어떠한 문제가 발생했을 때 참고할만한 레퍼런스도 다양한 편입니다. 간혹 Azar에서 발생한 버그 이슈를 Hakuna Live팀에 공유하다 보면 이미 Hakuna Live팀에서 비슷한 버그를 해결한 경험이 있을 때가 있어요. 그래서 버그 픽스 PR내용을 참고하다 보면 보다 수월하게 문제를 해결할 수 있는데요. 이처럼 담당하는 프로덕트는 다르지만 엔지니어 간 활발한 소통과 교류로 개발 이슈와 정보를 빠르게 공유하고 있습니다.
Q.하이퍼커넥트®만의 개발 문화?
(Xeon) 하이퍼커넥트®의 대표적인 개발 문화로 '활발한 코드리뷰'와 '모듈화의 활성화'를 꼽을 수 있습니다. 활발한 코드리뷰의 장점은 여러 동료들로부터 다양한 피드백을 받으며 혼자서는 고려하지 못했을 다양한 시각을 키울 수 있다는 것인데요. 나의 개발 방향을 점검할 수 있을 뿐만 아니라, 동료가 안고 있는 문제를 해결할 수 있는 더 나은 방법을 도출하는 과정을 통해 엔지니어로서 한층 더 성장할 수 있습니다.
또한, 하이퍼커넥트®에서는 다루고 있는 기술의 영역이 워낙 넓고 다양하기 때문에 모듈화 작업도 빈번합니다. 각 프로젝트마다 복잡도가 높고 다루는 기술도 다양하기 때문에 하나의 프로젝트를 다양한 영역으로 나누어 개발하는 경우가 많은데요. 서로 연결되는 부분의 인터페이스를 설계하는 능력, 복잡도를 제어하는 능력 등을 훈련해 볼 수 있다는 점 또한 하이퍼커넥트®에서만 경험할 수 있는 개발 문화인 것 같습니다.
(Cruz) 앞서 말씀드린 것처럼 하이퍼커넥트®의 엔지니어들은 담당하는 프로덕트와 관계없이 엔지니어 간 소통과 교류가 활발한 편입니다. DevRel의 적극적인 지원을 비롯해 Engineer Meet-up, 라이트닝 토크, 스터디 그룹, 페어 코딩 등의 다양한 루트로 각종 개발 이슈와 정보 등을 공유하고 있는데요. 최근에는 신규입사자를 위해 하이퍼커넥트® 개발자라면 꼭 알아야 하는 WebRTC, 모바일 AI, 보안, DevOps 전반에 대한 교육도 진행하고 있는 것으로 알고 있습니다. 제품에 대한 이해도를 높일 수 있는 다양한 지원과 프로그램 또한 회사와 함께 성장하고 있는 것 같아요.
이 밖에도 하이퍼커넥트®에서는 국내외에서 열리는 엔지니어들의 컨퍼런스 참여를 적극적으로 지원하고 있는데요. 국내 주요 컨퍼런스는 물론이고 Google I/O, WWDC(Apple Worldwide Developers Conference), AWS re:Invent 등 세계적인 개발자 컨퍼런스에 참여할 수 있습니다. 또한, 평소 고마웠던 동료에게 고마움을 표현하고 칭찬하는 ‘Hyper Thumbs Up’도 하이퍼커넥트®의 좋은 문화로 소개하고 싶어요. 다양한 동료들과 소통하고 협업하는 데 도움이 될 뿐만 아니라, 엔지니어들의 개발 의기 또한 높여주는 것 같습니다. (웃음)
Q.함께 하고 싶은 동료?
(Xeon) 100개의 팀은 100개의 개발문화를 가지고 있다고 해도 과언이 아닙니다. 그만큼 정해진 답이 없고 어떤 상황에서든 유연할 수 있어야 하는 것 같아요. 기술 스택이나 업무방식 또한 정답이 없다고 생각하는데요. 다양한 시도를 해보는 것에 망설임이 없고 도전적이신 분과 함께 한다면 더 큰 시너지를 낼 수 있을 것 같습니다. 구체적으로는 잘 돌아가고 있는 코드를 가만히 놔두지 못하는 분(!)과 함께 일하고 싶습니다. (웃음)
(Cruz) 하이퍼커넥트®의 엔지니어들은 모바일이라는 한정된 자원에서 AR, AI, WebRTC 기술을 활용하여 유저들이 만족할 수 있는 최고의 서비스를 제공하기 위해 끊임없이 공부하며 성장하고 있습니다. 복잡하고 다양한 서비스를 개발해보셨거나, 하나의 서비스를 오랜 시간 개발하며 더 좋은 서비스를 만들기 위해 고민해 보신 분들과 함께 일하고 싶습니다. 또한, 스스로 문제를 정의하고 해결해 나갈 수 있는 분이라면 저희와 함께 재미있게 일하실 수 있을 것입니다.
Q.예비 하이퍼커넥터에게 알려주고 싶은 Tip?
(Xeon) 다양한 문제 상황을 가정해보고 그에 대한 해결 방법을 찾아보는 연습을 해보시면 좋을 것 같습니다. 예를 들면 ‘릴리즈된 앱에 크래시가 났을 때 원인을 찾는 방법’, ‘토스트 기능을 추가하려고 할 때 가장 쉬운 방법’과 같이 문제에 접근하고 그에 대한 해결 방법을 고민해 보는 것입니다. 또한, 복잡도가 높은 프로젝트의 경험이 많지 않은 분들이라면 개인 프로젝트를 충분히 개발해보실 것을 추천하고 싶은데요. 특히 기능 스펙을 개발자 차원에서 변경하는 경험이 큰 도움이 될 것입니다.
(Cruz) 저는 오픈소스 프로젝트에 참여해보시는 것을 추천하고 싶습니다. 문제해결 능력뿐만 아니라 Git 사용 능력, 커뮤니케이션 능력도 향상시킬 수 있고 이를 통해 자신의 역량을 어필하실 수 있을 거예요. 엔지니어링의 기초 역량을 탄탄히 학습할 수 있는 사이트로는 'Raywenderlich'와 'GeekForGeeks'를 추천하고 싶은데요. 채용공고의 지원자격과 우대사항을 참고해서 자신에게 필요한 영역의 지식을 학습하신다면 인터뷰는 물론이고 앞으로의 커리어에도 큰 도움이 될 것입니다.
Q.하이퍼커넥트®에서 이루고 싶은 꿈?
(Xeon) 저는 하이퍼커넥트®가 메타버스 시대의 헤게모니를 가진 회사가 될 것이라고 확신합니다. 이에 기여할 수 있도록 계속 성장하는 엔지니어가 되고 싶고요. 동료들에게는 회사 밖에서도 연락하고 만날 수 있는, 함께있으면 기분이 좋아지는 친구이자 함께 배우고 성장할 수 있는 좋은 동료가 되고 싶습니다.
(Cruz) 저의 꿈은 전 세계 인구 78억 명이 제가 개발한 소프트웨어를 한번쯤 들어보거나 직접 사용하게 되는 것인데요. 전 세계 사람들을 연결시켜주는 하이퍼커넥트®의 프로덕트를 개발하면서 제 꿈에 한 발짝 더 다가가고 있는 것 같습니다.
지금 하이퍼커넥트®는 iOS Software Engineer 채용 중!
인터뷰x하커야는 계속됩니다 🔜
🔗 채용 보기 (링크)
💌 채용 문의 (career@hpcnt.com)