iOS팀 이안 & 톰
에반 • 피플팀에서 채용을 담당하고 있어요
안녕하세요. 채널팀에서 채용을 담당하고 있는 에반입니다 :)
오늘은 iOS팀 인터뷰를 진행했습니다. 인터뷰이는 이안과 톰 입니다.
이안 : 채널톡에 iOS 엔지니어로 21년 4월에 합류해서 즐겁게 개발 중인 이안이라고 합니다. 현재 채널톡 앱과 SDK를 개발하고 있고, 요즘엔 앱의 전화연동 부분을 개발하고 있어요.
톰 : 안녕하세요. 22년 2월에 채널에 합류한 톰입니다. 저는 B2C 신사업에서 iOS 앱을 담당하고 있고, SwiftUI, TCA 로 재밌게 개발하고 있습니다.
이안 : 채널톡의 iOS 팀은 현재 9명으로 구성되어 있고, 저희 팀이 개발하는 부분은 세 가지로 나눠볼 수 있어요.
먼저 채널톡 매니저들이 사용하는 앱스토어에 올라가는 앱이 있고, 고객사가 사용하는 SDK, 그리고 신사업으로 준비 중인 B2C 앱 이렇게 크게 세 개의 파트로 나뉩니다.
그리고 저희 팀원들은 최신 기술을 공부하고 적용하는 것을 좋아합니다. 물론 최신 기술이라고 무작정 적용하는 것은 절대 아니고요. 기술을 도입할 때는 이 기술이 우리 프로젝트에 정말 필요한가, 필요하다면 어떻게 적용하면 좋을까 고민하고, 팀원들 간에 세션을 자주 진행하기도 하는 등 많은 토의 끝에 최대한 합리적인 의사결정을 내리려고 합니다. 덕분에 도전적인 개발을 하면서도 프로젝트의 기술적 퀄리티까지 잘 챙기고 있어요.
이안 : 신입으로 들어오긴 했는데, 1년 미만으로 다녔던 전 회사가 있었어요. SI 회사였는데 클라이언트와 직접 커뮤니케이션까지 해야하는 곳이었어요. 그러다보니, 개발에만 온전히 집중하기는 힘들었고 다른 곳에 에너지를 많이 쓰게 되더라구요. 의견을 내기도 어려웠구요. 신입 개발자는 좀 더 주도적으로 일 할 수 있는 곳을 가야되겠다는 생각을 했고 이직할 곳을 탐색하기 시작했어요.
그러다가 채널톡을 알게 되었어요. 유튜브를 통해 ‘무엇이든 물어보세요’ 라는 이름으로 온라인 채널톡 채용설명회를 하더라고요. 그걸 듣게 되었는데 도전적인걸 좋아하는 팀이라는 거에 가장 끌렸어요. 그리고 현재 iOS 팀 리드인 잼이 ‘채팅 리팩토링’ 에 대해 이야기해줬는데 그 스토리도 너무 와닿았어요.
채널톡이라면 주도적으로 개발할 수 있고, 배울 것도 많겠다는 확신이 들어서 바로 지원하게 됐었습니다.
톰 : 채널톡에 합류하기 전에 기술적인 성장이 느리다고 느끼고 있었고, 그러던 시점에 아기도 태어나서 다음 단계에 대한 고민이 많았어요.
이직을 생각하던 시점에, 채널톡에서 제안이 왔고 그렇게 채널코퍼레이션이라는 회사를 알게 되었습니다. 국내의 챗봇시장을 거의 독점하고 있었고, 해외시장 확장성에 대한 기대감이 컸고, B2B 제품이지만 엔드유저까지 고민을 하다보니 B2C 영역까지 경험할 수 있을 것 같아 일의 재미도 있을 것 같았어요.
그리고 회사 문화가 매우 매력적이라 느껴진 것이, 업무시간과 공간에 대해 자유롭더라구요. 애기가 있다보니, 그게 가장 매력적으로 끌렸습니다. 오버커뮤니케이션을 지향한다는 것도 성장에 대한 고민을 해소할 수 있을 것 같아 지원을 했고 지금도 잘 다니고 있어요 :)
톰 : 제가 입사 했을 때에는 온보딩 체계가 잘 잡혀있었고, 팀원들이 신규입사자를 적극적으로 챙겨주는 것이 느껴졌어요. 특히 입사전부터 입사날까지 제가 환영받고 있다는 느낌을 받았어요. 집으로 예쁜 레터링 케잌과 꽃을 받았었고, 입사날에는 모니터에 포스트잇으로 채널팀원들이 적어 준 환영인사가 붙어있었어요.
그리고 첫 PR(Pull Request)에 모든 팀원들이 바쁜 와중에도 코드 한줄 한줄 리뷰를 달아주셔서 100개가 넘었 던 것이 기억이 남아요. 의도한 건 아닌데, 새로오신 분들이 계실 때마다 한줄이라도 더 자세하게 리뷰하다 보니 전통이 된 것 같다고 하시더라고요.
이안 : 채널톡은 현재 RxSwift , ReSwift, WebSocket , WebRTC 등의 기술스택을 쓰고 있어요. 모든 코드가 Swift 로 되어 있어요. 또한, 의존성 관리 도구로 Needle을 사용하고 있어요. UI는 100퍼센트 코드베이스로 그리며 UIKit(SnapKit, Texture)를 사용합니다. 현재는 조금씩 SwiftUI를 도입하고 있어요. 메인 아키텍쳐는 VIPER 패턴을 사용중이에요.
톰 : B2C 신사업에서는 SwiftUI, TCA로 개발 중이고, Tuist 로 프로젝트를 관리하고 있습니다. 현재는 채널톡이 아닌 신사업에서 더 최신 기술들을 쓰고 있는데, 점진적으로 채널톡 기존프로덕트에도 도입하려는 것들도 있고 이미 도입 중인 부분들도 많습니다.
이안 : 의존성 주입 구조를 완성시켜야 하고, 채널톡 앱에도 모듈화를 적용해야 해요. 제 생각에는 이들이 가장 중요한 과제에요. 제가 작업하고 있어서 말씀을 먼저 드린것 같기도 합니다 (ㅎㅎ) 또, 채널톡에는 Bezier라는 이름의 디자인시스템이 있는데, 지금은 UIKit으로 작업되어 있어요. 머지 않아 라이브러리로 공개할 수 있도록 SwiftUI로도 준비하고 있어요.
톰: 이번에 채널톡 최소버전을 iOS 14.0으로 올리면서 UIKit에서 SwiftUI로 자연스럽게 넘어갈 수 있도록 준비하고 있어요. 몇몇 화면은 이미 SwiftUI로 개발이 된 상태고, 효율적으로 적용하는 것을 고민중이에요.
이안 : 저는 진심으로 iOS팀에 대한 만족도가 높아요. 현재 9명으로 팀이 구성되어 있는데, 팀원간 도움을 요청하면 적극적으로 도와주는 분위기가 형성되어 있습니다. 팀 분위기도 정말 좋은데, 곧 저희 팀 소풍을 가요. 작년 소풍에는 팔당댐에 있는 예쁜 카페에도 가기도 했고요, 저번 가을엔 가평으로 워크샵도 다녀 왔습니다. 이번 소풍도 너무 기대되네요~
톰 : 저도 이안이 말해준 내용에 공감해요. iOS 팀원이 9명이나 있다는 것도 좋은데, 신기하게 각자 잘하는 영역이 조금씩 다르다보니 거기서 오는 시너지가 대단한 것 같아요.
저희 회사는 스스로 일을 찾아서 하는 것과 자유로운 개발문화를 선호하는데 저희 팀원들 모두 책임감이 정말 강하다보니, 정말 급한일이 있을 때 안심하고 다녀 올 수 있기도 해요. 아이가 있어서 무슨일이 생길지 모를 때가 많은데 이런 자율성이 보장되어 있다는게 업무에 집중이 가능하게 해주는 요소라 생각해요. 출근시간과 근무장소에 제약이 없다는 것도 큰 몫을 하고 있고요.
이제 1년 조금 넘게 다녔는데, 다시 돌아보면 출근 때문에 스트레스 받은 적이 없었던 것 같아요. 그만큼 일에 집중할 수 있는 환경에서 일한다는 증거겠죠? :)
이안 : 다른 팀 인터뷰에서도 다들 이야기 해주시던데, 코드리뷰 문화가 정말 좋아요. 저희 iOS팀은 주로 월요일에 팀회의가 있어요. 그 때 새로운 테스크가 생기면 담당자를 지정하고, 코드리뷰 할 사람 3명도 같이 지정해요. 그리고 3명 중 2명 이상의 approve가 나오면 merge 할 수 있어요. 코드리뷰 담당자로 지정 된 사람 외에도 원하면 언제든지 리뷰할 수 있어요.
톰 : iOS 팀에는 유닛이라는 단위의 작은 마이크로 팀이 있어요. 이 유닛은 2-3명으로 구성되는데요, iOS 프로젝트에 어떤 것을 적용하면 더 좋을까? 로 모인 스몰 팀입니다. 예를 들면, 프로젝트의 구조를 개선하려 모일수도 있고, 저희는 채팅 앱이므로 채팅 경험을 개선하려고 모일수도 있고, SDK를 개선하기 위해서도 모일수 있고요.
iOS 리드인 잼이 유닛을 만들 때, 받는 테스크에만 집중하는게 아니라, 목적을 정하고 스스로 테스크를 내는 주도적인 팀을 만들기를 원했어요. 그래서 유닛이 담당하는 세부분야를 나눌 때에도 팀 리드가 알아서 나누는게 아니라 팀원들 의견을 기반으로 정하고 있어요. 개개인이 하고 싶은 개발, 관심있는 부분에 대해 적극적으로 의견을 반영해요. 최초에 유닛을 계획하고 구성할 때부터 다같이 의견을 나눴었어요.
이안 : iOS 개발자 채용 과정은 서류지원 → 코딩테스트 → 과제 → 인터뷰 순으로 진행되고 있어요. 코딩테스트는 기본만 잘 하면 통과 할 거라고 생각하고 응용력을 요구하는 문제들이 많이 나오는 것 같아요. 시간도 넉넉해서 큰 부담은 없을 거라고 생각해요.
그리고 코딩테스트를 통과하면 과제를 진행하실텐데요, 이 때 최신 기술을 적극적으로 잘 사용해 주시더라구요. 제 생각에 최신 기술을 쓰는 것도 좋지만, 이 기술을 왜 썼는가가 더 중요하고, 해당 기술을 깊게 이해하는게 가장 중요하다고 생각해요. 근거가 명확하면 더 좋은 결과가 있지 않을까 생각합니다.
저희는 기본기가 탄탄한 분들을 선호해요. RxSwift를 예를 들자면, 그냥 해당 라이브러리를 쓸 수도 있겠지만, 그 기술의 기저에 있는 Reactive Programming을 조금이라도 이해하고 작성한다면 더 좋겠죠. 저희 팀은 어떤 기술에 대한 결정을 할 때에 최대한 깊게 고민하고 근거있는 의사결정을 하는 걸 좋아해요. 마지막으로 스스로 일하고 싶은만큼 열정있게 일하고, 자율성 있게 일하는걸 강조하는 팀이에요. 그래서 스스로 동기부여를 잘 하는 사람이었으면 좋겠어요.
저희 대표 레드가 이에 대해 ‘축구와 심부름’ 예시를 종종 이야기 해주고 있어요. 엄마가 슈퍼에서 뭘 사오라는 심부름을 시키면 바로 앞인데도 너무 움직이기 싫잖아요. 그런데 축구를 할 때는 땀을 흘리며 뛰어도 즐거워요. 자발적인 움직임이 아니면 누구나 하기 싫고, 효율도 떨어지는 것 같아요.
톰 : 제가 좀 더 iOS 개발자 채용에 대한 이야기를 해보면, 저는 알고리즘을 그렇게 잘하는 사람이 아닌데 코딩테스트에 통과했었어요. 주관적인 의견이겠지만, 코딩테스트는 그렇게 어렵지 않다고 생각해요.
그리고 과제를 하면서는 저의 개발스타일을 많이 보여주려고 했어요. 인터뷰 때에 과제에 대해 생각했던 것 보다 훨씬 깊게 이야기를 했던 걸로 기억해요.
인터뷰 때에 다양한 것을 아는 것보단 하나를 깊게 파고 들어간 사람을 선호해요. 실제로 저희 iOS 팀에 계신 분들은 다들 그런 분이었어요.
마지막으로 커뮤니케이션이 정말 많은 팀이라 자기의견 솔직하게 잘 말하는 사람을 선호해요. 누구나 언제든 틀릴 수 있다고 생각하기 때문에 자신있게 인터뷰 때 본인의 생각을 논리적으로 잘 설명해 주시면 좋을 것 같아요.
채널톡 iOS 개발자로 오시면 좋은 팀분위기 속에서 빠르게 성장할 수 있어요. 좋은 동료가 앞으로도 많이 들어왔으면 좋겠습니다 ~
We Make a Future Classic Product
채널팀과 함께 성장하고 싶은 분을 기다립니다