BAEKDEV
BAEKDEV

자바 둘 타세요-에서 <자바 인력1>을 맡고 있습니다.

[리뷰] 나는 LINE 개발자입니다 - 라인 개발자의 일상을 간접 경험해볼 수 있다

라인의 여러 분야의 개발자들이 어떻게 커리어를 쌓았고 어떻게 라인에서 일하는지에 대한 책이다. 라인의 솔루션 아키텍트, 보안 서비스, 메시징 서비스, 커뮤니케이션 서버, 동영상 생중계 플랫폼, 딜리버리 플랫폼, 라인파이낸셜플러스, 블록체인, 테크니컬 라이터, 에반젤리스트 등 다양한 분야의 개발자가 가져왔던 고민과 경험을 간접적으로 경험해볼 수 있는 책이다. 총 12명의 라인 개발자들의 이야기를 단숨에 후루룩 읽을 수 있었다.

  • book
  • ( Updated )

[리뷰] 나는 LINE 개발자입니다 - 라인 개발자의 일상을 간접 경험해볼 수 있다

<나는 LINE 개발자입니다> 책은 라인의 여러 분야의 개발자들이 어떻게 커리어를 쌓았고 어떻게 라인에서 일하는지에 대한 책이다. 라인의 솔루션 아키텍트, 보안 서비스, 메시징 서비스, 커뮤니케이션 서버, 동영상 생중계 플랫폼, 딜리버리 플랫폼, 라인파이낸셜플러스, 블록체인, 테크니컬 라이터, 에반젤리스트 등 다양한 분야의 개발자가 가져왔던 고민과 경험을 간접적으로 경험해볼 수 있는 책이다.

이 책은 마치 우리가 기대하는 바를 꿰뚫어 보기라도 한 것처럼 라인에 입사하는 비책과 같은 내용은 없다고 책 초반부터 강조한다. 하지만 나는 이 책을 다 읽고 나니 실제 라인의 개발자들이 어떻게 일하는지 알게 되었고, 그들이 일하는 방법에서 라인 개발자라면 필요한 덕목을 짐작할 수 있다. 라인 입사에 희망하는 분들은 이 책을 반드시 읽겠지만, 꼭 입사 희망자가 아니더라도 다음과 같은 상황에 있는 분들도 읽어두면 좋은 내용이다.

  • 대용량 트래픽 혹은 특정 이벤트에 트래픽 집중되는 시스템을 처음 겪거나 혹은 아직 겪어 보지 못한 분
  • 글로벌 서비스를 하면서 준비해야 할 개괄적인 내용
  • 개발 직군 내에서 직무 변화를 고민 중
  • 테크니컬 라이터 혹은 에반젤리스트 등 상대적으로 정보를 얻기 힘들었던 직군

총 12명의 라인 개발자들의 이야기를 단숨에 후루룩 읽을 수 있었다.

특히 많이 공감되고 인상에 남는 부분이 몇 군데 있었는데 그중 간략히 공유를 해보자면 나는 일단 하태호님이 가장 인상 깊었다. 라인에서 태호봇(bot)이라는 별명을 가진 하태호님은 주니어 개발자의 성장기와 개발 공부 팁이라는 주제로 이야기를 시작했다.

개발자 중에서도 서버 개발자가 되고 싶었던 주니어 개발자 하태호님은 깊은 고민을 통해 문제를 실질적으로 해결해나가는 영역은 서버 개발 부분에서 많이 진행되고 있다고 생각해 서버 개발자가 되었다고 한다. 특히 시대적 변화에 부응하는 좋은 서버 개발자가 되기 위해서는 대규모 인프라와 트래픽을 감당할 수 있는 역량을 갖춰야 한다고 생각했고 이러한 역량은 개인의 노력만으로는 획득할 수 없기에 이런 점을 소화할 수 있는 개발팀에 일하기를 소망했다.

그렇게 라인에 입사한 하태호님은 라인의 코드 리뷰 문화, 장애 리뷰 문화를 장점으로 꼽았다. 코드 리뷰를 통해 내가 미처 생각지 못했던 버그를 잡을 수 있고, 여러 개발자들이 서로 의견을 나누며 더 좋은 방향에 대해 고민함으로써 서로 배우며 성장할 수 있다고 한다. 특히 코드 리뷰를 하게 되면 버그나 장애 발생 시 그 피처의 오너에게 책임을 추궁하기보다는 리뷰를 통해 우리 모두가 미처 발견하지 못한 점이라고 리뷰이를 탓하지 않게 된다는 것이다. 장애가 발생하면 우리 시스템의 어느 부분이 부족했는지 논의하고 향후 개선 방향에 대해서만 계속 고민을 하는 문화라서 서로를 탓하는데 시간을 낭비하지 않고 다 함께 문제를 빠르게 해결하기 위해 집중한다고 한다.

나도 이 부분에 적극 공감하며 지금 재직 중인 회사에서도 이런 제도가 있다. 항상 배포하기 전 반드시 코드 리뷰를 하고 thumb up을 받아야만 배포를 나갈 수가 있다. 아직 동료들과 코드 리뷰를 경험하기 이전분들 중에서는 ‘그런 방식이 배포에 걸림돌이 될 수 있지 않냐, 시간이 많이 소요될 것 같다’라고 생각할 수도 있다. 물론 리뷰로 인해 시간이 더 소요되는 것은 필연적인 것이다. 하지만 이로 인해 얻는 점은 무궁무진하다.

그 중 제일은 장애 및 버그를 미연에 방지할 수 있다.
장애와 버그가 어느 정도 수용 가능한 시스템도 있지만 반대로 그렇지 않아야 하는 시스템도 있다. 실시간 주문을 처리해야하거나, 고객 접점에 위치해 고객 경험을 해칠 수 있거나 혹은 정산 시스템 등 이런 시스템들은 장애나 버그 발생 후 재처리하는 시스템을 갖추고 있지 않으면 failover하는데 많은 시간이 소요된다. 그렇게 되면 배포하다 장애를 경험한 개발자는 점점 자신감을 잃게 되고 배포를 두려워하게 되는 지경에 까지 이르게 된다.

또한 해당 배포 피처의 오너는 개발을 진행하는 동안 코드가 너무 익숙해진 나머지 억지스러운 코드나 구조를 미처 인지하지 못해 스파게티 코드가 되고 이 코드에 개발자가 끌려가게 된다. 이런 코드는 개발이 거듭될수록 개발 비용이 증가하고 훗날 장애시 디버깅을 하기도 어려워진다. 그래서 동료와 코드 리뷰를 하거나 페어 프로그래밍을 하기 어려운 경우라면 고무 오리 문제 해결법1을 시도해보는 것도 좋다.

개발자 블로깅이 필요한 이유 - 박민우님 편

개발자는 게을러야 한다.

이 말을 들어본 적이 있을 것이다. 게으른 개발자는 반복적인 작업을 귀찮아해 자동화를 하게 된다.
앞서 언급했듯 태호봇이라는 별명을 가진 하태호님은 반복적인 작업을 자동화하고 팀 문화에 기여하게 될 때 재미와 보람을 느낀다고 한다. 이렇게 소소하지만, 문화를 바꾸는 개발도 있지만, 업무에서는 문제 해결을 위한 도전을 매일매일하고 있다고 한다. 기술의 깊이를 높이기 위해 평소에도 기술 블로그나 뉴스를 꾸준히 읽으려고 노력하는 편이라고 한다. 다른 개발자가 쓴 해결책을 100% 다 이해하지 못하더라도 그들이 접한 문제와 해결을 위해 접근한 방법을 보는 것만으로 배우는 것이 많기 때문이다. awesome-devblog는 국내외 기술 블로그를 아카이빙해놓은 사이트라 추천한다.

<나는 LINE 개발자입니다> 책을 읽다 보면 다른 개발자의 일상을 함께 지낸 기분이 든다. 그들은 현실에 안주하지 않고 항상 나름의 루틴과 함께 매일의 도전을 즐기며 글로벌로 나아가고 있다. 많이 공감했고 많이 자극 된 책이다. 시간 이 좀 더 흘러 <나는 LINE 개발자입니다2> 가 발간되면 좋겠다.

나는 LINE 개발자입니다.