프론트엔드 개발자의 LINE 입사 후기

안녕하세요! LINE의 UIT(User Interface Technology) 팀에서 프론트엔드 개발을 하는 송헌용입니다. 뒤돌아보니 LINE에 입사한 지 벌써 8개월이나 지났더라고요. 그래서 지난 8개월 동안 제가 LINE에서 어떻게 지냈는지 되돌아보는 시간을 가져보았습니다. 입사 후기 겸 회고록이라고 할까요.

저는 개발자로 일한 지 올해로 5년 차가 되었고, 그동안 주로 프론트엔드 개발을 담당했습니다. 예전에는 PC용 웹 애플리케이션을 많이 개발했는데요. LINE에서 일하면서 모바일 개발에 더욱 집중하게 되었습니다. 예전에도 나름대로 최적화에 신경쓴다고 생각하며 개발했지만, 이제와 돌이켜보니 부족한 부분이 있었던 것 같습니다.

한국은 인터넷 속도가 빨라서 네트워크 병목 현상으로 렌더링이 느려지는 일은 흔치 않기 때문에 자연스럽게 그런 측면에서의 최적화를 간과하며 개발했던 것 같습니다. 반면, LINE에서 제공하는 서비스는 사용자가 대부분 해외에 거주합니다. 따라서 개발하면서 여러 국가를 대상으로 다국어 설정, 국가별 화면 분기 등을 고려하는 것은 물론, 국가별 네트워크 속도, 모바일 기기에 표시할 콘텐츠의 양, 에러 핸들링 등 이전보다 훨씬 더 많은 측면을 고민하게 되었습니다. 이런 고민을 바탕으로 한국처럼 인터넷 속도가 빠르지 않은 다른 나라의 사용자들도 최대한 빠르고 편하게 LINE의 서비스를 이용할 수 있도록 최적화하고 있습니다.

LINE SQUARE의 초기 로딩 속도 개선

먼저 가장 최근에 있었던 일화를 소개하는 걸로 시작해보겠습니다. 최근에 LINE SQUARE 서비스의 초기 로딩 속도를 높인 일이 있습니다. 당시 인도네시아에서 LINE SQUARE의 로딩 속도가 느리다는 의견이 나왔는데요. 문제를 해결하기 위해 테스트 기기들을 가지고 서버 개발자와 함께 현지로 출장을 갔습니다. 테스트 기기를 여러 개 가져가다 보니 공항에서 검사하는 사람이 저희에게 이상한 눈초리를 보냈던 건 웃지 못할 해프닝입니다.

인도네시아에 맞게 현지화된 코니

기기별로 네트워크 성능을 체크하고 초기 단계부터 시작해서 개선할 수 있을 것 같은 지점을 하나씩 분석한 결과, 개선 가능한 지점을 두 군데나 찾아서 개선할 수 있었는데요. 첫 번째로 적용한 개선 방법은 HTML 파일을 일정 시간 CDN(Contents Delivery Network)으로 캐시(cache)하도록 설정한 것입니다. 기존에는 초기 로딩할 때 화면에 빈 페이지가 오래 보이는 경향이 있었는데요. 이런 현상을 브라우저 개발자 도구로 분석해 보니 CSS와 자바스크립트 파일 요청과 응답이 네트워크의 한 지점에서 오래 걸리는 바람에 병목 현상이 발생하고 있었습니다. 이 문제는 HTML 파일을 캐시하여 해결할 수 있었는데요. 서버 개발자의 도움을 받아 함께 처리했습니다. 두 번째 개선 방법은 온로드(on load) 이벤트가 발생하기 전까지 렌더링을 위한 스크립트 동작 외의 나머지 불필요한 작업을 삭제한 것입니다. 

출장 기간이 길지 않았기 때문에 현지에서는 자료 조사만 진행했고, 한국으로 돌아온 뒤 두 가지 개선 방법을 적용한 코드를 배포했습니다. 그 결과 인도네시아는 물론 다른 나라에서도 초기 로딩 성능이 기존 대비 최소 14%에서 최대 243%까지 향상되었습니다.

그 당시 한 땀 한 땀 테스트했던 결과 중 하나.jpg

해외 출장 및 근무에 결격사유 없는 자

처음 입사 지원할 때, 채용 공고의 자격 요건에서 ‘해외 출장 및 근무에 결격사유 없는 자’라는 문구를 보았습니다. 처음엔 다른 많은 회사처럼 그저 신체가 건강한지를 체크하기 위해 이런 문구를 자격요건에 넣은 거라고 생각했습니다. 관례상 쓰여 있는 문구 정도로 이해한 건데요. 입사 후 3개월 만에 해외로 출장을 간 뒤, 지금까지 약 8개월간 벌써 3번이나 해외 출장을 다녀왔습니다. LINE에선 ‘해외 출장 및 근무에 결격사유 없는 자’란 조건이 정말 꼭 필요한 자격요건이었습니다.

문제의 그 문구.png

더 넓은 영역에 손대다

이전에 다녔던 회사는 개발하는 회사와 운영하는 회사가 서로 달라서 커뮤니케이션이나 일정 조율 등 개발 외적인 부분에서 불편하고 애매한 부분이 있었습니다. 하지만 LINE은 모든 유관부서가 제가 일하는 근처에 있다보니 보다 편하고 빠르게 일할 수 있게 되었습니다. 특히 일정 조율이나 이슈 대응 등 유동적으로 처리해야 하는 일이 발생했을 때 그런 장점이 배가되었습니다. 그리고 그에 따라 개발자로서 참여할 수 있는 회의가 많아졌습니다. 기존에는 별다른 회의 참여없이 기획 파워포인트 자료, 개발 명세서 등 최종 결과물만 전달받고 개발을 진행했던 적이 많았습니다. 혹은 회의에 참여하더라도 마지막 최종 회의에만 참여했던 적이 많은데요. LINE에서는 기획 회의, 개발자 API 회의 등 여러 회의에 참여하게 되었고 자연스레 제 의견을 개진할 수 있는 기회도 많아졌습니다. 특히 해외 오피스에 있는 분들과 화상 회의를 많이 하는데요. 이런 경험 하나하나가 모두 신기합니다.

또한 프론트엔드 개발 외에 좀 더 넓은 영역을 경험해 볼 수 있었습니다. 예를 들어 기존에는 설정이 완료된 빌드, 배포 서버를 이용하는 경우가 많아서 저는 개발에만 신경쓰고 나머지 부분엔 크게 관심을 두지 않았습니다. 하지만 LINE에서는 빌드, 배포 서버 설정을 직접 해볼 수 있었고, Node.js 기반의 웹 서버를 직접 운영하기도 했습니다. 그동안 프론트엔드 개발만 해오다가 백엔드 개발을 병행하니 훨씬 재밌기도 하고 더 넓은 영역을 배우는 것 같아서 개발자로서 스스로 성장하는 걸 느끼고 있습니다.

공유 문화속에서 성장하다

이러한 개발 활동은 저뿐만 아니라 같은 조직 내에 있는 모든 분들이 함께 해오고 있는 활동입니다. 바쁜 업무 탓에 자칫 조직 분위기가 조용히 흘러갈 수 있는데요. LINE에는 같은 조직에서 일하고 있는 동료로부터 간접적으로 지식을 습득할 수 있는 주간 회의나 월간 회의 등은 물론, 그 외에도 편하게 개발 이슈를 공유할 수 있는 자리가 많이 마련되어 있습니다. 이런 자리를 통한 공유 문화가 저를 지속적으로 성장하게 만들어 준 가장 큰 밑거름이라고 생각합니다. LINE엔 개발자의 성장에 도움이 되는 요소가 많아서 정말 입사하기 잘했다는 생각이 듭니다.

한 가지 아쉬운 점은 LINE에 프론트엔드 개발 조직, UIT 팀이 있다는 사실이 아직 외부에 많이 알려지지 않았다는 점인데요. 이 글을 통해 더욱 많은 분들이 LINE의 UIT 팀에 대해 알게 되어 지금보다 더 많은 동료가 생겼으면 좋겠습니다. LINE의 UIT 팀이나 회사 생활과 관련하여 궁금한 점이 있다면 Facebook을 통해 언제든 질문해 주세요. 질문은 언제나 환영합니다. 또한 LINE에선 현재 프론트엔드 개발자를 모집하고 있습니다. 관심 있으신 분은 채용공고를 참고하시기 바랍니다.

Related Post