스스로의 한계를 두지 않는 Service Reliability Engineer, 노승헌

두 번째 인터뷰의 주인공은 Service Reliability Engineer 노승헌 님입니다. Akamai에서 LINE의 CDN 업무를 담당하시다가 LINER가 되신 재미있는 이력을 가지고 계신데요. 책 쓰는 엔지니어이자 다둥이 아빠로 육아까지 열심히 해내고 계시는 열혈 엔지니어, 승헌 님의 이야기를 만나 보시죠.

 

스스로의 한계를 두지 않는 Service Reliability Engineer, 노승헌

Q. 안녕하세요. 승헌 님! 간단한 자기소개 부탁드립니다.

A. 안녕하세요. LINE에서 개발 빼고 다한다는 모토를 가지고 일하는 서비스 엔지니어링 팀에서 SRE(Service Reliability Engineer)로 일하고 있는 노승헌입니다.

Q. 팀 소개가 흥미롭네요. 

A. 네. 굉장히 독특한 조직이에요. 예를 들어 LINE 내부에서 어떤 서비스를 준비할 때 무언가 의도대로 동작하지 않는다면 저희 팀을 불러요. 기동 타격대처럼요. (웃음) 사내에 119 채널이 있는데 장애가 발생했을 때 가장 먼저 인지하고 공유하는 팀도 저희고요. 개발을 하다 보면 사업, 기획, 인프라 등 각 유관 부서의 R&R 사이에 미묘하게 비어있는 부분들이 있는데, 이런 부분들을 연결하고 채우기 위해 스스로 뛰어다니는 자영업자 같은 사람들이 모여있는 팀이에요. 그러다 보니, 어떤 날은 개발자분들과 회의하고 또 어떤 날은 기획자분들과 회의하기도 해요.

Q. 그러면 승헌 님의 팀에는 어떤 분들이 계신 건가요?

A. 개발 백그라운드를 가진 TT형 인재들이 모여있다고 생각합니다. 흔히 말하는 T형 인재가 제너럴리스트이면서 한 분야의 전문가라면, TT형 인재는 제너럴리스트이면서 2~3개 분야에 깊은 조예를 가진 사람들을 의미해요. 대부분의 팀원들이 업무 영역에 한계 짓지 않고 여기저기에 관심을 두고 있어요.

Q. 승헌 님의 잡타이틀을 SRE(Service Reliability Engineer)라고 말씀해 주셨는데요. SRE에 대해 조금 더 이야기해 주세요.

A. SRE는1~2년 전부터 엔지니어들 사이에서 떠오른 잡타이틀인데요. 구글에서 정의했던 SRE의 역할은 운영 중인 서비스나 시스템에 오리엔트되어서 서비스의 안정성을 추구하는 것이었어요. 개발자는 아니지만 개발에도 어느 정도 관여하고요. LINE에서는 운영 중인 서비스뿐만 아니라 신규 서비스의 기획 단계부터 서비스 안정성을 위해 SRE가 여러 일을 합니다. 생각해보니 저희 팀에서는 LINE 톡 서버 쪽 담당하시는 분들이 전통적인 의미의 SRE에 가까운 것 같기도 합니다. 저는 CDN(Content Delivery Network)을 비롯한 서비스 트래픽 전반에 특화된 SRE라고 볼 수 있겠고요.

Q. 아니 SRE라는 잡타이틀이 생긴 지도 얼마 안 됐는데 전통적이라니..

A. 1~2년이면 이 바닥에서는 뭐 거의 전통적인 거죠. (웃음)

Q. 승헌 님은 어떻게 개발을 시작하게 되셨나요?

A. 제가 초등학교 2학년 때 피아노 학원 가는 길에 서점이 있었어요. 거기서 ‘컴퓨터 학습’이라는 잡지를 처음 만났죠. 그 당시 컴퓨터가 집에 있는 사람이 많지 않았는데 저는 운 좋게 아버지께서 사주신 애플2 호환 기종을 써볼 수 있었어요. 처음에는 열심히 게임만 했었는데 컴퓨터로 프로그램을 만들 수 있다는 걸 우연히 알게 됐어요. 간단한 Basic 언어 책을 사서 프로그램도 만들어보고 그랬는데 어느 날 컴퓨터가 고장이 난 거죠. 그때 마침 ‘컴퓨터 학습’ 잡지에서 애플 컴퓨터 수리에 대해 특집 기사로 다룬 덕분에 컴퓨터를 고칠 수 있었어요. 잡지 표지 모델이었는지 기사의 내용 중 하나였는지 잘 기억이 나지 않지만 빌 게이츠 이야기가 책에 실려 있었고, 뭔가 굉장히 멋있는 사람이라고 생각했어요. 저희 어머님이 제가 맨날 게임만 하고 있으니 컴퓨터하는 걸 별로 좋아하지 않으셨는데, 어머니가 좋아하는 피아노 학원을 열심히 다닐 테니 컴퓨터 학원도 다니게 해달라고 조건을 걸었어요.

이미지 출처 : GAJABOOK

Q. 초등학생 때 어머님께 딜을 하셨군요?

A. 네 5학년 때 일이에요. (웃음) 피아노 학원 열심히 다녀서 결국 컴퓨터 학원도 갔어요. 그러면서 프로그래머의 꿈을 키웠던 거 같아요. 

Q. 어린 시절부터 확실한 의지를 가지고 계셨네요. 승헌 님의 이력을 보니까 책도 몇 권 집필하셨던데요. 특별한 계기가 있었나요?

A. 어렸을 때부터 글 쓰는 걸 좋아했어요. 다른 상장은 별로 없는데 글짓기, 독후감, 백일장 상은 많이 받았었고요. 그래서 ‘나는 글을 좀 쓰는 거 같아’라며 스스로를 세뇌했죠. (웃음) 글로 먹고살까 이런 생각도 잠깐 했었는데 군대 다녀오니까 블로그가 대유행이더라고요. 블로그에 흑백 사진과 함께 좀 오글거리는 감성 글들도 올리고, 지하철에서의 일상에 대한 글도 올리고 그랬는데 출판사에서 제 블로그를 보고 연락을 주셔서 첫 책을 냈었어요. 이후에는 월간 마이크로소프트웨어 잡지에 단발성으로 글을 연재하기도 했고요.

Q. 가장 최근에는 ‘슬랙으로 협업하기’라는 책도 쓰셨던데요.

A. 이전 직장에 다니고 있을 때 고객사인 LINE과 일하기 위해 LINE 메신저를 이용했었는데요. 코드나 에러 로그를 공유하기에는 조금 어려워서 LINE을 지원하는 팀 내부 용도로 슬랙을 처음 쓰기 시작했어요. 그때 한창 홍순성 님의 에버노트 책이 잘 팔리고 있을 때였는데 저도 슬랙 책을 한 번 써볼까 하는 생각이 들었어요. 기왕 쓰는 거 기능을 좀 잘 쓰면 좋을 거 같았고, 제가 알게 된 내용을 정리해서 공유하면 좋을 거 같았거든요.

Q. 책은 잘 팔렸나요?

A. ㅎㅎ (먼 산..)

 

사용자를 가장 먼저 생각하는 엔지니어의 삶과 기술

Q. 네 그럼 다음 질문.. 이번에는 승헌 님이 엔지니어로서 살아오신 경험에 대해 좀 듣고 싶어요.

A. 첫 직장은 개발자로 시작했어요. 7~8년 정도 SI 업계에 있었죠. 개발에 푹 빠져있던 어느날 혜성처럼 아마존 웹 서비스가 등장했어요. 마지막 1~2년 정도는 아마존 웹 서비스 플랫폼에서 돌아가는 프로젝트를 했고요. 똑같이 개발하는 거긴 했지만 그 프로젝트를 하다 보니 앞으로 클라우드 쪽에서 재미있는 걸 많이 할 수 있을 것 같았어요. 그때부터 제 커리어의 컨셉이 ‘스택 쌓기’가 된 것 같아요. IT 서비스를 만든다고 하면 사실 물리적인 회선부터 하드웨어, 네트워크, 인프라, 플랫폼, 소프트웨어까지 많은 레이어가 있는데 ‘이 레이어를 전부 채워볼까?’라는 생각을 했거든요. 그래서 그다음은 클라우드 사업 개발하는 조직으로 옮겼어요.

Q. 클라우드 사업 개발 조직에서 CDN 기술에 대해 관심을 가지게 된 계기가 있으신가요? 

A. 그 당시에 굉장히 핫한 게임이 있었는데, 새로운 버전의 게임 패치를 할 때마다 고객사에 제공하고 있던 CDN이 죽는 문제가 발생했어요. 트래픽을 감당하지 못하는 거였죠. 이때 도대체 CDN이 뭘까 처음 관심을 가지게 되었던 거 같아요. 개발도 잘 해야 하고 서버도 잘 구성해야 하지만 결국에는 사용자에게 얼마큼 효과적으로 잘 전달되는지도 아주 중요하다는 생각이 들었거든요. 그 이후에 운좋게도 Akamai에서 연락이 와서 옮기게 되었습니다.

Akamai에서도 공교롭게 LINE의 CDN 업무를 하게 되었어요. 그때 LINE이 급성장하던 시기여서 트래픽이 미친 듯이 늘어나는 것을 보니까 정말 재미있었어요. Akamai 플랫폼의 모든 기능을 조합해서 LINE이 필요로 하는 요구사항을 만족시키기 위해 할 수 있는 건 전부 다 했던 거 같아요. 그런데 어느 순간에 도달하자 더 이상 제가 할 수 있는 게 없더라고요. 플랫폼을 제공하는 회사의 입장에서는 플랫폼이 가진 기능 등의 제약 사항을 넘어설 수 없다는 한계가 있었던 거죠.

Q. 그다음 드디어 LINE에 합류하게 되신 거군요.

A. 네. Akamai에서 느꼈던 한계를 풀어보고 싶었던 것 같아요. ‘내가 직접 LINE에 들어가면 할 수 있는 게 더 많지 않을까?’라고 생각하고 1년 정도 고민하고 준비해서 LINE에 오게 되었어요. 입사 후 개발팀의 담당자들도 직접 만나보고 사업이나 기획 관련 회의도 참석하면서, 제가 받았던 요구 사항들이 어떤 과정을 거쳐서 나온 것인지 알 수 있었어요. CDN을 안 쓸 수는 없기 때문에 좀 더 효과적으로 쓸 수 있는 방법도 제안할 수 있어 좋았고요. 사용자들에게 더 좋은 경험을 줄 수 있는, 비즈니스적으로 더욱 의미 있는 일을 하고 싶었고 지금 LINE에서 그런 일들을 하고 있어서 너무 즐거워요.

Q. Akamai에서 일하신 경험도 그렇고 CDN 기술에 전문성을 가지고 있으신데 CDN이 무엇인지 간략히 설명해 주신다면?

A. CDN은 사용자와 서비스 사이의 기술적인 불확실성을 줄여주는 캐시 역할을 하면서, 서비스를 구성하는 인프라가 안정적으로 운영되도록 방파제 역할을 하기도 합니다. 얼마 전에 이모콘(이상한모임 컨퍼런스)에서 제가 발표했던 CDN 세션 제목에 ‘또 하나의 가족’이라는 문장을 넣었던 적이 있어요. 서비스를 위한 또 하나의 가족이 바로 CDN인 거죠.

Q. LINE은 메신저인데 CDN이 꼭 필요한가요?

A. 꼭 있어야 합니다. LINE 메신저의 핵심인 사용자 메시지 송수신 처리 쪽에서는 크게 사용하고 있진 않지만, 그 외에 사용자들의 요청이 몰릴 수밖에 없는 곳에는 대부분 CDN이 적용되어 있습니다. 몰린다는 뜻은 똑같은 콘텐츠를 많은 사람들이 동시에 요청할 만한 가능성을 의미해요. 예를 들어 친구가 LINE 메신저에서 프로필 업데이트를 하면 알람을 받을 텐데 프로필 사진이 잘 안 보이면 눌러서 확대를 하겠죠? 이런 것이 사용자의 요청이거든요. 만약 그 계정이 연예인 공식 계정이라면 더욱더 많은 사람들이 몰릴 거예요. 프로필 사진의 용량이 1MB라고 가정했을 때 200만 명이 동시에 그 사진을 보겠다고 누르면.. 200만 개의 요청이 오면서 어마어마한 트래픽이 동시에 몰리는 거죠. 또는 많은 사용자가 들어가 있는 메신저 방에서 대용량 비디오가 공유되는 경우도 있겠고요.

LINE 메신저의 대표적인 기능인 스티커에도 CDN이 적용되어 있어요. 방탄소년단의 BT21 스티커가 새로 출시되면 전 세계에 있는 분들이 그 스티커를 사용하실 텐데, 그때마다 데이터 센터의 서버가 사용자들에게 스티커 이미지를 보내는 것은 너무 느리고 비효율적이겠죠? 사용자의 입장에서는 스티커가 바로바로 뜨도록, 용량이 큰 움직이는 스티커도 바로바로 움직여서 사용자들이 즐길 수 있도록 하려면 반드시 CDN을 사용해야 합니다. 당연한 것이겠지만 채팅방에서 오가는 사용자들의 메시지는 개인 프라이버시기 때문에 절대 캐시하지 않아요.

Q. 승헌 님과 이야기하면서 느낀 건데 기술적인 것도 그렇지만 사용자의 입장에서 많이 생각하시는 거 같아요. 본인이 어떤 엔지니어라고 생각하시나요?

A. 사람을 중요하게 생각하는 엔지니어랄까요? 일단은 내가 쓰는 서비스가 나로 인해 좋아지고 즐거워질 수 있다는 생각을 가지고 있기 때문에 일을 굉장히 즐기고 있고요. 모든 문제를 기술로만 풀 수 있는 건 아니기 때문에 결국은 ‘사람’이 중요한 거 같아요. 아무리 좋은 기술도 쓰는 사람이 없다면 아무 쓸모 없을 테니까요. 그런 관점에서 사용자가 어려움을 겪는 부분에 대해서는 수단과 방법을 가리지 말고 해결할 수 있어야 하고, 그 해결 방법이 꼭 기술에 국한될 필요는 없다고 생각합니다.

Q. 일에 대한 욕심이 대단하신 거 같아요. 승헌 님은 빠르게 변하는 IT 업계에 계시면서 새로운 것을 접하기 위해 엔지니어로서 어떤 노력을 하고 계신가요?

A. 사실 공부할 시간이 많지는 않아서 짜투리 시간을 활용하는 편이에요. 그런 면에서 트위터를 자주 활용하고 있어요. 예전에는 출퇴근 시간이 1시간 정도 걸렸는데 그때 항상 트위터를 했어요. 정보를 찾기 위해서요. 유용한 정보를 담은 링크를 발견하면 read-it-later 앱에 전부 보내놓고, 짬 날 때마다 PC에서 살펴봐요. 그리고 시간이 되면 공부한 내용을 정리해서 블로그에 공유하는 활동을 많이 하려고 하고요. 시간을 내서 트렌드를 따라가려고 노력하지만 많이 부족하다고 느끼고 있어요. CDN은 특히 웹과 밀접하다 보니 웹 기술이 발전하면 CDN 적용 패턴도 달라지거든요. 최근에는 Angular, React, Vue.js처럼 새로운 웹 프레임워크가 많이 등장했는데, 이 기술들로 웹 페이지를 어떻게 구성하는지 알고 있어야 해요. 그래야 프론트엔드 개발자분들이 CDN 쪽에 이슈가 있다고 말씀해 주셨을 때 해결할 수 있고, CDN을 효과적으로 적용할 수 있을 테니까요. 아쉬운 건 공부를 좀 깊게 해보고 싶은데.. 아이들이 슬슬 크고 있으니까 조만간 할 수 있지 않을까 기대하고 있습니다.

 

LINE 라이프

Q. 그러면 자연스럽게 LINE에서의 이야기로 넘어가볼게요. LINE에 계시면서 해보고 싶은 일이 있으신가요?

A. 이제는 LINE의 서비스가 어느 정도 안정기에 접어든 거 같아요. 그래서 저는 예전에 시도했다가 생각보다 잘 되지 않았던 부분들을 개선하는 일을 해보고 싶어요. 예를 들어 예전에는 LINE 사용자가 많았지만 근래에 많이 줄어든 국가들이 있는데, 왜 사용자들이 줄어들었고 무엇이 문제였는지 다시 한 번 깊게 살펴보고 싶어요. 현지에 직접 가서 현지 통신사, 연구팀들과도 지속적으로 협의하고 서비스 품질을 높일 수 있는 방법을 찾아보고 싶고요. LINE은 메신저 이외에도 여러 서비스들을 지속적으로 런칭을 하고 있어요. 해결되지 못한 문제가 아직도 있다면 새로운 서비스에도 문제가 될 수 있을 겁니다. 그런 것들을 해결하는 역할을 해보고 싶어요.

Q. 여러 회사에 다녀보셨는데 혹시 LINE만의 독특한 문화가 있다면 무엇일까요?

A. 사실 IT 서비스를 하는 회사에서 장애는 언제나 발생할 수 있거든요. LINE에서는 장애가 발생하더라도 ‘앞으로 이런 일이 일어나지 않게 하려면 어떻게 해야 하지?’라는 생각을 가장 먼저 해요. 사람들의 생각이 굉장히 발전적이고 우리가 앞으로 더 좋은 방향으로 개발할 수 있도록 이야기를 나눠요. 장애가 발생한 후 보고서가 나오고 공유 미팅이 끝나기까지 2~3일 정도밖에 걸리지 않는 경우가 대부분이고요. 보고서에서 prevention plan, future plan을 항상 관심 있게 보는 편인데 거기서 새로운 개발 과제도 많이 나와요. 장비를 최고 사양으로 준다던가 이런 것은 다른 회사도 할 수 있다고 생각하는데, 이런 문화를 가지는 건 쉽지 않다고 생각해요. 제가 주변 개발자분들에게도 항상 자랑하는 LINE의 문화 중 하나입니다.

Q. 만약 승헌 님과 같은 일을 하고 싶은 사람이라면 어떤 것을 준비해야 할까요?

A. 저도 아직 부족합니다만 우선은 기본에 충실하는 것이 중요합니다. 인터넷은 표준 그 자체이기 때문에 표준을 잘 이해하고 있지 않으면 엉뚱한 곳에서 헤매기 쉽습니다. 가장 널리 사용되고 친숙하게 느껴질 HTTP의 표준부터 시작해 보면 좋을 것 같아요.

Q. 그렇다고 RFC 문서1를 볼 수는 없지 않나요.

A. 아! 예, 그럼요. (웃음) 모질라 재단에서 운영하는 MDN 페이지를 이용하시면 표준 기술들에 대하여 쉽게 정리된 자료를 열람해 보실 수 있습니다. 예제 코드도 잘 되어 있고요. RFC 문서처럼 어렵거나 그림 한 장 없다거나 그렇지 않아요. 이렇게 기본적인 스펙을 이해한 상태라면 서버, CDN 등의 인프라스트럭쳐 기술들과 웹 프론트엔드 기술이 왜 이렇게 동작하는지 등을 이해하는 데 많은 도움이 될 거예요.

Q. 승헌 님 팀에 지원하면 코딩 시험 보나요?

A. 저희 팀이요? 개발만 빼고 다하는 조직이기 때문에 코딩 시험은 안 봅니다. (일동 웃음) 그 대신, 내 업무가 아니어도 관심을 기울이고 함께 이야기할 수 있는 분, 기술적인 챌린지를 즐겁게 받아들일 수 있는 분들과 함께 하고 싶어요.

Q. 마지막으로 하시고 싶으신 말씀은?

A. LINE에 합류한 지 아직 2년이 채 되지 않았지만 정말 흥미롭고 재미있는 경험을 많이 해볼 수 있었습니다. LINE이 진출하는 분야가 점점 많아지면서 업종 전문 지식을 가진 분들을 찾는 조직들의 수요도 많아지고 있습니다. 삶이 무료하고 지루하시다면 지금 LINE에 지원해 보세요! 저와 함께 일할 찬스가 생길지도 모른다는 건 보너스입니다! (웃음)

Related Post

  1. IETF에서 인터넷 상의 기술을 구현하는 데 필요한 절차 등을 안내하는 공문서