Meet the Global LINERs


Engineering

안종윤 / iOS Engineering / LINE Plus

종윤님은 2014년 여름 인턴으로 근무한 후, 2015년에 신입사원으로 입사했습니다. 입사 초부터 iOS Client 개발을 담당하며 LINE 메신저 대화방, Pay 서비스 등을 거쳐 현재는 LINE iOS 메신저의 갤러리 파트 개발을 담당하고 있습니다. 인터뷰 제안을 받은 후, 영상 인터뷰인 줄 알고 사투리 때문에 걱정을 했다는 종윤님. 서면 인터뷰임을 알고 한결 편안한 표정과 어조로 이야기를 시작하셨는데요, LINE의 서비스 초기부터 LINE의 성장을 지켜보며 개발자로서 어떤 경험과 성장을 해왔을지 함께 만나보시죠!

잠깐! 한 눈에 보는 세 줄 요약!

  • 종윤님은 iOS Client의 카메라 개발을 담당하고 있다.
  • 종윤님의 LINE STYLE은 ‘한 끗 차이 :적당히 좋은 수준이 아니라 끝내주게 좋은 수준을 추구한다’는 것!
  • LINE 개발자들을 뛰어넘는 것이 목표라는 종윤님의 LINE 개발 문화 자랑!!

업무에 관한 이야기

Q 담당하고 계시는 카메라 개발 업무에 대해 소개해 주세요!

LINE iOS 메신저 내에서 이미지나 비디오 같은 미디어들을 핸들링하는 부분의 개발을 담당하고 있습니다. 쉽게 말하자면 메신저 내의 카메라에서 사진을 찍는다든지, 앨범에서 동영상을 선택해서 필터를 입히고 문구를 추가해서 전송하는 등의 미디어와 관련된 프로세스 개발을 담당한다고 생각해주시면 될 것 같습니다. 수많은 개발자들이 함께 작업한 여러 기능들이 복잡하게 연결되어 있어서, 매 번 과감하게 기능을 개선하기는 힘듭니다. 평소에는 에디터에 모자이크 기능을 넣거나 카메라에 GIF 촬영 기능을 추가하는 등의 기존에 만들어진 화면에서 기능을 추가하는 작업을 주로 하는 편입니다. 하지만 Client는 유저에게 바로 노출되는 부분이기 때문에 최신 트렌드를 반영하는 것도 중요해서 1~2년 단위로 기존 화면을 전체적으로 개선하는 작업도 진행합니다. 이 때 코드 리팩토링(Re-factoring)도 같이 진행하는 편이구요. 지금도 팀 동료께서 동영상 플레이어를 개선하고 있고, 얼마 전에는 카메라와 에디터를 새롭게 바꿨습니다. 또한 저희는 2주 단위 릴리즈 주기를 가지고 있어서 일정에 대한 압박이 적은 편입니다. 물론 빠르게 출시되어야 하는 기능들(시즈널 이벤트, 새로운 iOS 버전 대응)은 빠르게 대응하고 있지만, 그렇지 않은 기능이라면 개발 완성도가 떨어진다고 생각되는 경우 다음 버전으로 미루는 것에 대한 부담이 적습니다.

Q 글로벌에서 사용되는 기능이기에 특별히 고려하는 사항이 있으신가요?

LINE 메신저 내의 카메라 기능은 어느 지역에서 다운로드 받아 사용하더라도 기본적으로는 동일한 모습으로 보여집니다. 많은 유저에게 영향을 주는 기능이다 보니 보다 더 세심하게 주의를 기울여 개발하게 되는 것 같아요. 또, 국가와 문화권 간 환경적인 차이에 대해서도 고려하고 있는데요, 어떤 국가는 비교적 보안 정책이 엄격하기 때문에 해당 국가의 정책에 따라 절차와 기능을 커스터마이징 해야 하는 경우도 있습니다. 또 어떤 국가는 인터넷 환경이 원활하지 않고 저사양 핸드폰을 사용하는 인구가 많기 때문에 발생할 수 있는 작은 에러에 대해서도 신경써야 해요. 기능의 기획적인 부분에 대해서는 다른 국가의 사정을 잘 알고 계시는 기획자분들의 도움을 많이 받고 있습니다.

Q 가장 기억에 남는 업무의 순간이 있으신가요?

처음 LINE 메신저에 카메라 기능을 릴리즈 했던 때가 가장 기억에 남아요. 이전의 LINE 메신저에는 애플에서 제공하는 기본 카메라를 탑재해서 운영했어요. 이미지나 동영상을 꾸미거나 편집하는 기능도 없었죠. 이 때, 최신 트렌드에 발 맞춰 LINE 메신저도 미디어 관련 기능을 강화해야한다는 내부 목표가 생기면서 갤러리 파트가 구성되었고, 저는 해당 부문에 관심이 있어서 자원하여 팀에 합류하게 되었습니다. 같은 분야에 관심을 가진 개발자분들과 함께 모여 개발하다보니 더 즐겁게 개발할 수 있었던 것 같아요. 카메라의 경우 아무것도 없는 제로베이스에서 새로 만드는 기능인 만큼 여기저기서 문제도 많이 발생했었지만 목표한 기간까지 기능을 릴리즈 하기 위해 기획자, 디자이너 분들과 머리를 맞대고 여러 이슈들을 해결해 나갔으며, 그렇게 공들여 개발한 LINE만의 카메라 기능을 릴리즈했을 때의 성취감은 아직도 잊기 어렵습니다. 지금도 갤러리 파트에 대해서는 남다른 애정을 가지고 있는데요, 특히 이 분야는 유저 폰에 있는 정보를 바탕으로 운영되는 기능이다 보니 Client 개발자가 관리할 수 있는 범위가 넓어 더욱 재미있게 느껴지는 것 같습니다. 상대적으로 Server로부터 자유로운 만큼, Client 주도로 기능을 추가하는 경우도 있습니다. 라이브포토 지원이나 GIF 촬영과 같은 기능들이 Client 개발자들의 아이디어로 프로토타이핑을 진행하여 출시된 기능입니다.

Q 다른 부서나 해외법인과의 협업도 많은 편이신가요?

개발 초기 단계에서는 기획, 디자인 부서 등과 긴밀하게 협업하고, 개발의 단계에서는 해외법인을 비롯한 다양한 개발자 분들과 활발히 커뮤니케이션하며 업무를 진행하고 있습니다. 각자 전문성이 있는 분야에서 성공적으로 기능을 만들어갈 수 있도록 상시적으로 협의하며 업무를 진행해요. 특히 개발 과정은 주로 개별적으로 진행하지만, 팀 동료 혹은 해외법인의 개발자분들로부터 코드리뷰를 받아가며 보완하는 것이 일반적이에요. 현재 제가 개발하고 있는 피처는 한국법인에서만 개발하고 있는 부문임에도, 크게 보았을 때는 결국 LINE이라는 큰 틀 안에서 하나로 모이는 코드이기 때문에 다른 기능과 서로 간 영향을 주고받을 수밖에 없어요. 그렇기 때문에 어느 나라에서 코드를 작성하고 수정을 했건, 코드는 모두가 함께 리뷰하면서 각 국의 개발자들이 의견을 나누게 됩니다. 개발자는 보통 하나의 기능을 집중적으로 체크하면서 개발하는 것이 일반적이기 때문에, 그 코드의 영향 범위를 모두 알 수 없어 영향이 의심되는 사항이 있을 때 리뷰 요청을 주고 받는 것이 큰 도움이 됩니다.

실패와 성장의 경험

Q 마냥 행복한 경험만 있었을 것 같지는 않습니다. 실패한 경험도 알려주세요.

입사 첫해에 처음 맡은 기능에 문제가 있었어요. 기업들의 공식계정(Official Account)에 영상을 업로드할 수 있게 하는 기능의 개발을 담당하게 된 것인데요. 당시 저는 처음으로 큰 기능을 메인으로 담당하게 되면서 의욕이 넘쳤던 것 같아요. 단순히 ‘영상을 넣을 수 있는 기능을 개발하면 되는 것 아닌가’라고 생각했던 것이 패인이었습니다. 막상 개발을 시작하고 점검을 받아보니, QA 이슈가 많이 발생했어요. 특히 코드가 크다 보니 전혀 예상하지 못했던 다른 기능에도 영향을 미치는 등 영향 범위가 예상보다 컸습니다. 당시 저로 인해 QA 담당자 분들과 저의 팀원 분들이 고생이 많았었습니다. 다행히 팀원분들이 잘 짚어주시고 보완해주셨기에 발생했던 이슈들을 해결할 수 있었는데요, 지금 생각해보면 멘붕의 상황이었던 것 같습니다. 지금 시점에서 당시의 코드를 다시 보면 이상하게 짜여 있거나 문제가 생길 수도 있을 것 같은 코드들이 명확히 잘 보이는데, 그 때는 왜 그랬는지 모르겠습니다. 아직 해당 기능이 존재하고 또 잘 작동하고 있어요. 다만 다른 LINER께서 리팩토링으로 다시 한번 작업하신 코드로 운영되고 있습니다(ㅎㅎ) 개발자라면 지나고 나서 없애버리고 싶은 코드가 항상 있는 것 같습니다^^

Q 성장해나가고 있다고 느낀 경험도 소개해 주세요.

얼마전 우연한 기회로 지인이 개발하고 있는 서비스의 코드를 읽어 볼 일이 있었습니다. 오픈소스 코드들을 볼 때도 비슷한 생각을 하곤 하는데요, 외부의 코드를 보다 보면 ‘이 코드는 왜 이렇게 짠거지? 이렇게 하면 더 좋을텐데’ 라는 게 보일 때가 많더라구요. LINE에는 개발 역량이 뛰어난 분들이 많아서, LINE 안에서만 코드 작업을 하다보면 내부의 코드가 얼마나 잘 짜여진 것인지 제대로 모르고 지나는 경우가 많았더라구요. 외부 코드를 읽어보는 경험을 통해서, 내부의 코드가 얼마나 잘 짜여진 코드이고 배울 점이 많은 코드들인지 새삼스럽게 다시 한번 느끼게 되었어요. 개발 역량이 훌륭한 LINER 분들과 함께 피드백을 주고 받고, 업무를 진행하는 자체에서 이미 저는 자연스러운 성장의 과정에 있다고 생각합니다. 주위 환경의 영향을 받으며 자연스럽게 저도 좋은 코드를 작성해야 하는 개발자가 되고, 또 실제로 좋은 코드를 작성할 수 있게 되는 것 같습니다. 위의 실패의 경험처럼 제가 예전에 작성했던 코드를 지금에 와서 다시 보면. 확연하게 성장해나가고 있음을 스스로 느끼고 있습니다.

역량에 관한 생각

Q 종윤님의 업무에서 좋은 퍼포먼스를 내기 위해서는 어떤 역량이 필요하다고 생각하시나요?

세가지 정도를 말씀드려보면, ‘협업을 위한 커뮤니케이션 역량, 코드를 쉽게 읽고 쓰는 역량, 디테일에 대해 한번 더 고민해보는 태도’ 정도가 있다고 생각합니다. 먼저, 다른 직군 담당자 분들과 커뮤니케이션하며 기능을 개발해나가기 때문에, 커뮤니케이션 역량은 기본 중의 기본이라고 생각해요. 그 외에도 내가 개발하고 싶은 기능에 대해서 주저하지 않고 의견을 제시할 수 있어야 합니다. LINE은 특히 수평문화를 바탕으로 능동적으로 의견을 내는 개발자에게 기회를 주는 환경이에요. 본인이 하고 싶은 개발을 하게 되면, 개인의 성장은 물론 서비스의 질 향상에도 도움이 된다고 생각합니다. 또 협업하는 멤버들의 의견을 잘 수용하는 것도 하나의 중요한 자질이 될 수 있을 것 같습니다. 업무를 진행하면서 멤버들과 이야기를 많이 나누다 보면 예상치 못한 버그나 이슈들을 쉽게 발견하는 경우가 많아서 의사소통을 잘해야 업무 효율도 향상시킬 수 있다고 생각해요. 다음으로, ‘코드를 쉽게 읽고 쓰는 역량’인데요, 개발자들 간의 협업에서는 다른 사람의 코드를 읽고 피드백해주는 코드리뷰의 문화가 있어요. 이 때, 다른 개발자들이 본인의 코드를 쉽게 읽을 수 있게 작성하는 역량도 중요하고, 본인이 다른 사람의 코드를 읽어내고 빠르게 이해, 습득해내는 역량도 물론 중요해요. 개발자들 사이에서 언어는 하나의 도구일 뿐이라는 말이 있듯이, 다른 언어로 쓰여진 코드이더라도 명확하게 이해할 수 있게 되면 개발에 크게 도움된다고 생각합니다. 마지막은 ‘디테일에 대해 한번 더 고민해보는 태도’인데요, 개발하는 기능에 완성도를 갖추고자 조금 더 고민해보는 습관은 한 단계 더 좋은 개발자로 성장할 수 있는 지름길이라고 생각합니다. 목표했던 기본적인 코드의 작성이 완료되면 기능이 완벽하게 동작하기는 하겠지만, 그것에 제한을 두지 않고 약간의 애니메이션을 추가하는 등의 부차적인 노력을 기울여보면 좋다고 생각해요. 특히 저는 LINE STYLE 의 항목 중 ‘Perfect Details’ 항목을 좋아하는데요, 한 끗 차이의 경험을 유저에게 제공하기 위해 앱스토어 등에서 피드백도 꾸준히 확인하며, 조금이라도 사용성을 개선할 수 있는 방안은 없을지 고민하는 편인 것 같습니다.

LINE에서의 특별한 경험

Q LINE의 개발 문화와 환경에 대해 자랑해 주세요!

LINE에는 개발자로 성장하는 데 최적의 문화와 환경이 마련되어 있다고 자부합니다. 제가 관심있는 분야를 개발하고 싶다고 의견을 제시하면 기회가 주어지는 환경이에요. 또 일반적인 기업에서 개발자가 부수적으로 하게 되는 페이퍼워크 업무 부담 없이, 오롯이 담당하는 기능 개발에만 집중할 수 있는 환경이기도 하구요. 실력이 출중한 개발자 분들이 주위에 정말 많다는 것도 큰 장점인데요, 개발 역량이 뛰어난 LINER들 간 서로 도움을 주고자 하는 문화도 잘 정착되어 있어 개인의 성장에 크게 도움이 되기도 합니다. 특히 개발자분들 각자의 스타일이 다르기 때문에, 다른 LINER의 코드를 읽어보는 것만으로도 배울 수 있는 점이 많다고 생각해요. 대부분 개발 욕심이 많은 분들이라, 전사적으로 새로운 기술들을 빠르게 적용하려는 분위기도 있구요. 일례로, Swift 전환을 들 수 있을 것 같아요. 개발자분들이시라면 코드베이스가 큰 서비스일수록 기존 코드를 바꾸기가 쉽지 않다는 걸 아실 텐데요, 저도 당연히 LINE도 Objective-C에서 Swift로의 전환이 느릴 줄 알았어요. 하지만 예상과는 다르게 적극적으로 Swift를 사용하자는 분위기였고, 현재는 기존 코드 포함 70% 이상 Swift로의 전환이 이루어져 있는 상태입니다. 애플 WWDC에서 새로운 피처들이 발표 될 때에는 얼리버드TF에서 새로운 기술을 빠르게 적용하려고 노력하는 등 트렌드에 대한 대응이 좋은 것 같습니다.

Q 종윤님이 특별히 자랑하고 싶은 LINE만의 베네핏 혹은 문화가 있나요?

평소의 생활 측면에서는 자유롭게 근무시간을 활용할 수 있다는 점이 가장 좋습니다. 저는 특히 오전에는 집중을 잘하지 못하는 스타일이라서 오전에는 운동을 하고, 운동 후에 회사에 출근하면 보통 11시 ~ 12시입니다. 잠시 일하다가 점심을 먹고 다시 업무에 몰입하곤 합니다. 특히 저의 업무 패턴에 대해 눈치를 볼 필요가 없는 점도 정말 좋아요. 가장 자랑하고 싶은 순간은 iOS 개발자라면 누구나 가고 싶어하는 WWDC에 다녀왔던 것이에요. 행사 티켓값만 해도 많이 비싼 행사인데요. 회사에서 티켓, 항공, 숙박 등 모든 비용을 지원해줘서 편한 마음으로 다녀왔습니다. 랩이라는 이름의 부스마다 실제 애플 서비스의 각 기능을 개발한 개발자들이 있어, 해당 기능과 관련해서 궁금한 점이 있으면 의견을 들어볼 수도 있었어요. 평소 관심있던 분야의 실제 개발자들과 경험을 공유했던 것이 인상깊었습니다.

마무리하며

Q 지금 반드시 이루고 싶은 목표가 있으신가요?

같이 일하고 계신 분들이지만, 옆자리에 앉아 있는 동료분들의 실력이 참 대단하다는 생각을 매일합니다. ‘시간이 지나고 주니어 개발자분들이 회사에 입사해서 나를 그렇게 바라볼까?’라고 생각해보면 아직 스스로 부족하게만 느껴집니다. 제가 동료분들께 느끼는 감정을, 새로 LINE에 입사하시는 분들이 저를 보며 느낄 수 있게 될 만큼 성장해나가고 싶습니다.

Q 이 글을 보고 계시는 예비 LINER 개발자 분들께 마지막으로 한 말씀 부탁드립니다.

국내에 LINE만큼 대규모 모바일 서비스를 핸들링할 수 있는 회사가 거의 없다고 생각합니다. 글로벌에서 사용하는 애플리케이션이다 보니 다양한 유저가 있어 Client에서 고려해야 하는 사항이 많습니다. 그만큼 협업해야 하는 멤버의 대상도 넓고 많구요. 나의 정확하지 않은 코드 하나로 엄청 유저들이 불편함을 겪게 될 수도 있다는 사실은 긴장감, 책임감, 동시에 더 잘하고자 하는 ‘즐거움’으로 다가옵니다. 좋은 사람들과 성장의 경험을 해보고 싶은 분들이라면 LINE에서 함께 재미있게 개발해보고 싶습니다! 기다릴게요!