ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [채용 이야기] iOS, Android팀 Lead가 직접 들려주는 라인(LINE) 이야기
    취업 이야기/합격자 인터뷰 2020. 2. 13. 11:41

    현재 프로그래머스에서 진행 중인 라인(LINE) 신입 개발자 채용: 앱 개발 챌린지에 정말 많은 관심이 쏟아지고 있습니다. 프로그래머스의 모든 챌린지가 그렇듯, 1차 서류전형 없이, 코딩테스트 없이 오롯이 과제 수행을 통해 라인의 채용문을 두드려볼 수 있는 좋은 기회여서 더 많은 분들이 모여주시는 것 같네요!

    오늘은 라인이 왜 이 챌린지를 통해 많은 주니어 개발자분들을 만나길 바라고 있는지, 내부에서 요새 가장 집중하는 부분은 무엇인지, 글로벌 기업인데 외국의 개발자 동료들과 어떻게 일하는지... 등등, 여러분이 궁금해할 수 있는 것들에 대해 알아볼게요!

    iOS, Android 팀의 두 Lead 가 챌린지 지원자들을 위해 이번 인터뷰에 참여해주셨어요!

    코딩 테스트와 과제 테스트에 대한 생각

    우병찬(iOS팀 Lead): 코딩테스트는 저희가 정해놓은 틀 안에서, 몇 가지의 정해진 평가 요소에 부합하는 사람인지를 알아내는 목적이 커요. 그런데 과제 테스트 같은 경우는 지원자가 강점을 가진 부분이 좀 더 잘 보일 수 있고, 각 플랫폼에 대한 지식의 깊이 같은 요소들까지 다채롭게 볼 수 있어요. 그래서 과제 중심으로 진행되는 이번 챌린지는 색다른 변별력이 있지 않을까 기대를 해요.

    대부분의 기업이 비슷하겠지만 코딩 테스트는 최소한의 필터 도구로 활용해요. 여기서 코딩 테스트는 비단 알고리즘 문제를 푸는 것만 의미하진 않아요. 저희는 코드 리뷰가 필요한 문제를 내기도 합니다. 실행이 되긴 하는데, 뭔가 문제가 있는 코드를 리뷰해야 하는 유형의 문제예요. 라인은 서비스가 워낙 크기 때문에, 한 줄의 코드를 작성하더라도 리뷰에 시간을 무척 많이 쏟거든요. 코드를 보고 잠재적인 문제를 유추하는 능력도 무척 중요하기에, 그런 역량을 엿볼 수 있는 문제도 나가고 있어요.

    김성진(Android팀 Lead): 저희 팀도 코딩테스트는 기본적인 필터 역할로 생각하고, 때에 따라 간단한 프로젝트를 만드는 테스트를 드리기도 해요. 요구사항에 맞추어 프로젝트를 어떻게 구성하는지, 코드 짜는 스타일은 어떤지 파악하기 위함이죠. 그런데 과제를 평가하다 보면 기준을 세우기가 어려운 부분들이 꼭 발생해서, 이 부분을 해소하기 위해 늘 여러 명이 결과물을 확인합니다. 이를 통해 특정 평가자의 개인적인 의견이나 취향이 주입되지 않도록 신경 쓰고 있어요.

    그리고 이번 챌린지는 과제 주제가 모두 동일한데 그렇기 때문에 더욱 변별력이 있을거에요. 메모장 만들기라는 주제 자체는 흔하지만, 이를 구현할 수 있는 방법은 여러 개가 있죠. 여러 개 중 왜 그 하나의 방법을 택했는지, 그 이유에 대해 나중에 면접 자리에서 이야기를 나눠보면 모두 같은 주제의 과제를 했더라도 실력의 차이가 확실히 드러나요. 그러니 이번에 지원하시는 분들도 결과물을 만들어 내는 것에만 집중하기보다, 내가 왜 이런 방식으로 구현했는지에 대해 고민을 해보면서 과제를 수행하면 좋지 않을까 생각합니다.

    잠깐! 이번 챌린지 과제 제출 마감은 2/24(월) 오후 2시까지 입니다. 주제는 사진 첨부 기능이 붙은 메모장 만들기예요.

    면접에서 주로 하게 되는 질문이 있다면

    우병찬(iOS): 면접을 위한 질문 리스트 같은 것이 정형화되어 있지 않아요. 지원자가 해본 분야, 이전 경험에 맞춰서 질문을 많이 던집니다. 예를 들어 이전에 했던 개인 프로젝트 소개 내용을 보면, 아 대충 어떤 부분에서 어려움이 있었을 것 같다던가, 이런 건 어떤 기술을 썼었지? 와 같은 궁금증이 자연스럽게 떠오르는데요.

    그런 걸 물어보면 자연스레 지원자분이 고민하셨던 것, 잘 안돼서 알아봤던 부분들을 포함해 트러블슈팅 경험담을 들을 수 있어요. 그런 이야기를 통해 이 분이 자신이 했던 프로젝트에 얼마나 집중했었는지, 어려움이 있었을 때 얼마나 깊은 고민을 했었는지 파악할 수 있어요.

    김성진(Android): 면접 단계에서 지원서를 제출하시게 될 텐데요. 병찬 님도 방금 말씀하신 부분이지만, 문서를 보다 보면 자연스럽게 궁금한 점들이 생겨요. 아무리 짧게 스크리닝 하더라도요. 예를 들어 본인이 했던 일에 대해 서술하는 부분에서 '~를 잘 해결했다'와 같은 표현을 자주 볼 수 있는데, 그 '잘'이라는 건 무엇이고, '어떻게' 해결한 건지 궁금하니까 그걸 바로 묻죠.

    그 질문에 대한 대답을 들으면 이 분이 어디까지 생각했고, 어디까지 관심을 갖고 알아봤구나를 알 수 있게 되어요. 반대로 아, 이 부분은 제대로 공부하지 않으셨구나 하는 포인트도 보이고요. 그런 커뮤니케이션 과정을 통해 이 분이 정말 어떤 분인지 알 수 있어요. 지원서에 적힌 내용과는 별개로요.

    글로벌 서비스, 글로벌 동료(feat. 영어 잘해야 하나요?)

    우병찬(iOS): 대표적으로 한국, 일본, 대만, 태국, 인도네시아, 베트남 등 해외 지역에 팀원들이 있지만 한일 멤버의 비율이 제일 높고요. 규모가 크기 때문에 각각 개발해야 할 범위가 정해져 있긴 하지만, 상호 커뮤니케이션은 굉장히 빈번하게 일어나는 편입니다. 업무 관련해서는 영어로 하고 있고요. 코드 리뷰도 영어 기반으로 진행합니다. 채용에 있어 유창한 영어실력이 요구되는 건 아니니 그런 부분 걱정은 안 하셔도 되고요.

    또 정기적인 화상 미팅을 통해 외국의 개발자 동료들까지 모두 참여해 스터디를 진행합니다. 예를 들어 WWDC처럼 큰 행사가 있었을 경우, 참관했던 멤버들이 각 분야별로 스터디한 내용을 공유해요. 그 외 다른 개발 행사에 다녀오더라도 학습한 내용을 공유하는 스터디 시간이 정해져 있고요. 이런 컨퍼런스 주도 스터디(?)가 아니어도 각 팀별로, 파트별로, 아니면 신입 동기들끼리 자유로운 스터디는 계속 진행되고 있어요. 참고로 화상 미팅에서는 영어, 한국어 모두 사용할 수 있습니다. 특히 한일 통역은 미팅에 함께 참여하는 통역사가 있어 굉장히 수월하게 되는 편이에요.

    라인에서는 이번 챌린지를 통해 여러분을 지켜보고 있습니다. 정말입니다.

    요즘 각 팀이 집중하는 것은?

    우병찬(iOS): 작년부터 프로젝트 관리 측면에 신경을 많이 쓰고 있어요. 개발을 iOS 4(2010~)부터 시작했으니 워낙 코드가 방대하고, 굉장히 많은 개발자들이 협업하다 보니 conflict 가 빈번하게 일어나거든요. 이런 걸 줄여나가기 위해 프로젝트 세팅부터 구성, 자동화 같은 것에 관심을 많이 쏟아요. 써드파티 라이브러리를 적용할 때 일어날 수 있는 문제들도 최대한 회피하고, 빌드 속도 향상을 통한 개발 생산성을 높이는 데에 집중하고 있죠.

    같은 맥락에서, 코드 리뷰를 할 때에도 서비스의 안정성을 가장 신경 써요. 코드 한 줄의 변경에 따른 영향 범위가 얼마나 큰지 생각해서 범위가 크다면 리뷰어를 좀 많이 두고요. 코드상에서는 문제가 없다고 판단돼도 merge 후에 생각하지도 못한 일들이 벌어질 수 있으니까요. 부가적으로 워낙 많은 개발자들이 협업하다 보니 컨벤션, 룰 같은 것들이 세세하게 많죠. 그런 건 기본적으로 다들 잘 지켜나가고 있습니다.

    김성진(Android): 안정성은 무조건 중요한 요소이고요. 마찬가지로 전체 프로젝트 규모가 크니 빌드 속도와 같은 것을 무척 예민하게 생각하고 있어요. 또 저희는 Java로 개발하다가 Kotlin으로 넘어간 후 새로운 프로젝트는 거진 모두 Kotlin 으로 작성하고 있는데, 그렇다 보니 Kotlin을 더 깊게 알아가려는 움직임이 강한 편이에요.

    잠깐! iOS 과제는 Swift로만 제출 가능하고, Android 과제는 Kotlin이나 Java 중 선택해서 수행할 수 있어요. 소스코드를 통해 내가 두 언어의 특징을 잘 이해하고 있으며, 공식 가이드의 내용도 적극 참고하고 있음을 드러낼 수 있다면 좋겠죠?

    입사 후, 자신의 관심 분야를 적극 어필했으면

    우병찬(iOS): 신입이 들어오면 바로 업무에 투입하지 않고, 한 달 정도 공부할 수 있는 시간을 드려요. 여기서 공부 주제는 개개인에 따라서 다르게 제시하는데, 보통 본인이관심 있어하는 주제에 대해 배우실 수 있도록 도와드려요. 그 주제를 잡기 위해 본인이 하고 싶은 주제에 대해서 많이 물어봅니다. 관심 있는 분야로 갈 수 있도록.

    예를 들어 '나는 결제 부분을 많이 해보고 싶다' 고 하면 그쪽 관련한 일을 할 수 있도록 이끌어줍니다. 경력도 동일하게, 본인의 전문성을 갖출 수 있도록 도와주고 있어요. 그래서 본인이 전문성을 갖추고 싶은 부분이 있으면 당당하게 어필해주셨으면 좋겠어요.

    김성진(Android): 누구든지 본인이 원하는 세부적인 분야가 있다면 그쪽으로 갈 수 있어요. 팀 내에도 세부적인 담당 분야들이 다 나뉘어있어서, 전문성을 기르기가 좋은 구조입니다. 또 프로젝트 규모가 크니 내가 담당하는 부분이 서비스 전체에 있어 어떻게 이어지는지 이해도를 넓힐 수 있어요.

    챌린지 지원자들에게 한 마디!

    우병찬(iOS): 라인은 정말 '백과사전' 같은 프로젝트예요. 웬만한 기능들은 다 들어가 있고, 코드의 양도 방대하죠. 내가 찾고자 하는 기술, 기능이 거의 다 응집되어있는 큰 프로젝트이니 이런 걸 경험할 수 있는 건 좋은 기회라고 생각해요. 또 레거시 코드가 많다고 해서 보수적인걸 계속 유지하는 것이 아닌, 빠르게 개선하려는 노력도 많이 하는 팀이라 배울 것도 많을 거예요. 예컨대 저희 팀은 Swift 가 2014년에 나온 직후부터 바로 내부적인 대응을 시작했고, 생성되는 코드의 대부분이 Swift가 된 지 오래예요. 이런 환경에서 함께 일할 수 있는 동료 개발자들을 이번 챌린지를 통해 많이 만날 수 있길 바랍니다.

    김성진(Android): 만약 입사하시게 되면 지금까지 작성해온 코드를 보는 것만으로도 큰 배움이 있을 거예요. 그리고 앞에서 언급했던, 입사 후 자신이 성장하고픈 분야에 대해 어필하면 충분히 그쪽 전문성을 길러나갈 수 있다는 점도 꼭 기억하셨으면 좋겠어요. 과제 테스트 주제는 메모장 만들기로 단순해 보이지만, 구현할 수 있는 방법이 여러 개이니 본인이 왜 그렇게 구현했고, 왜 그게 최적의 방법이라고 생각하는지에 대해서도 잘 생각을 정리해두시면 좋겠습니다.

    댓글

Programmers