Meet the Global LINERs


Engineering

한승욱 / Server-side Engineering (Distributed Storage) / LINE Plus

분산 스토리지는 LINE 메신저 플랫폼을 안전하고 신뢰 높은 서비스로 만들기 위해 중요한 역할을 합니다. 메시지가 매끄럽게 전달되어, 사용자들에게 seamless한 경험을 제공하기 위함이죠. PB단위의 데이터를 다루다보니 가용성과 확장성을 향상시키는 지속적인 고민과 작업이 필요합니다. LINE 메신저 플랫폼의 믿음직한 수호자 역할을 담당하고 계신 승욱 님을 만나보았습니다. 긴장된 모습으로 인터뷰를 시작하신 승욱 님. 걱정하셨던 것과는 달리, 분산 스토리지 개발에 대한 열정과 자부심으로 가득했는데요. 승욱 님의 이야기, 지금 시작합니다!

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

  • 승욱 님은 백엔드 개발자로서 LINE의 메시징 플랫폼의 안정성과 확장성을 책임지는 스토리지 시스템을 관리하고 있다.
  • 데이터 캐시화와 스토리지 최적화를 통해 서비스 성능을 개선하고, 데이터센터 장애 상황에서도 사용자 경험을 유지하는 것이 핵심 업무이다
  • 글로벌 서비스를 지원하는 백엔드 개발자로서 꼼꼼함과 효과적인 소통 능력이 성공적인 업무 수행의 필수다.

업무에 관한 이야기

Q 간단한 자기소개 부탁드립니다.

안녕하세요! Messaging Server Engineering 소속으로 일하고 있는 한승욱입니다. 전 석사를 마치고 병역특례로 개발 커리어를 시작했어요. LINE에서 일하면 글로벌 규모의 서비스를 내 손으로 직접 만들 수 있다는 설렘과 도전적인 업무를 할 수 있겠다는 기대감과 함께 합류했습니다.

Q 인터뷰 요청을 받고 어떤 생각이 드셨나요?

처음에는 당황스러웠어요. 우스갯소리로 개발자들은 대화할 때 자기 발끝을 보고 대화하는데, 조금 사교적인 개발자는 상대방 발끝을 보고 대화한다고 하잖아요. 인터뷰를 한다고 했을 때 잘할 수 있을까 걱정이 앞섰습니다. 하지만 저희 팀이 메시징 서비스와 LINE의 핵심 기능들을 지탱하는 중요한 역할을 하는 팀이다 보니, 저희 팀을 자랑할 수 있는 좋은 기회라고 생각하여 굳은 마음을 가지고 참여하게 되었습니다.

Q 소속된 조직에서는 어떤 업무를 하고 있고, 그 중에서 승욱 님은 어떤 일을 담당하시나요?

제가 소속된 팀은 주로 메시징 서버 플랫폼을 위한 캐시와 스토리지 제공 및 운영을 담당하고 있습니다. 메시징 플랫폼의 어플리케이션 서버 스토리지 레이어에 오너십을 가지고 기능 개발에 참여하고, 시스템의 신뢰성과 성능 최적화에 관여하고 있습니다. 주요 업무는 크게 세 가지로 나눌 수 있습니다: - 첫번째, 데이터센터에 장애가 발생하더라도 사용자가 메시지를 끊김 없이 전달받을 수 있도록 하는 것입니다. 사용자가 전혀 오류를 인지하지 못하도록 seamless한 경험을 제공하는 것이 목표입니다. - 두번째, 데이터 접근 권한 관리와 보안 요소를 처리합니다. 운영적인 요소를 효율화하기 위한 자동화 툴 개발도 이에 포함됩니다. - 세번째, 스토리지 레이어 개발 관점에서 캐시화되지 못하고 기술적 부채로 남아있는 요소들을 해결합니다. 이러한 부분들이 메시징 플랫폼의 안정성과 확장성에 영향을 미치기 때문에, 데이터의 일관성을 보장할 수 있도록 새로운 디자인이나 캐시 로직을 구현하는 업무를 하고 있습니다. 저는 이 중에서도 세번째 업무인 데이터 캐시화 작업에 집중하고 있습니다.

Q 대략적인 하루 업무 스케줄에 대해 소개해 주세요.

해야할 업무를 모두 적고 우선순위를 부여해서 꼭 해야 하는 업무 3가지를 뽑습니다. 메일, 위키, 슬랙을 확인하며 긴급 문의가 있는지 살피고 빠르게 답변하구요. 이어서 전사 차원의 시스템 공지를 확인하고 캘린더에서 미팅 일정을 체크한 뒤, 남은 시간에 업무를 배분합니다. 일상적인 업무로는 팀원들의 PR 리뷰, 위키 문서 리뷰, 예정된 미팅에서 논의해야 할 아젠다에 대한 방향성 정리 등도 포함이 되겠네요.

Q 그렇다면, 오늘의 3가지 To-Do List 공유해주실 수 있나요?

오늘은 이 인터뷰가 가장 우선순위에 있었습니다. 인터뷰를 마치면 프로젝트 멤버들과 함께 캐시화 알고리즘 로직 플로우를 리뷰할 예정이고요. 마지막으로는 개인적으로 궁금해서 개발하고 있는 부분이 있는데, 그것을 조금 더 연구해보려고 해요. 캐시화를 했을 때 캐시서버 한 대가 다운되면 일반 스토리지로 넘어가는 트래픽이 얼마나 될지 실서비스 전에 미리 확인하는 작업을 해볼 예정입니다.

역량에 관한 생각

Q 분산 스토리지 개발자로서 가장 중요하게 생각하는 부분이 있다면 무엇인가요?

꼼꼼함이 가장 중요합니다. 분산 스토리지는 조금만 변경되더라도 모든 서비스 전체에 영향을 미치거든요. 예를 들어, 네트워크 성능이 잠깐 불안정해지면 메시징 플랫폼의 어플리케이션 서버에 수많은 에러 로그가 찍히게 됩니다. 만약 코드가 잘못되면 다음날이나 한 시간 후에 롤백해서 해결할 수 있습니다. 하지만 사용자 데이터가 유실되면 롤백한다고 해결되지 않아요. 잘못 쓰인 데이터와 잘 쓰인 데이터가 섞이게 되면 복구가 매우 어렵거든요. 잘못되었을 때 서비스에 미치는 영향도 크고 바로잡는 난이도도 높기 때문에, 사전에 많은 것을 고려해야 해서 꼼꼼함이 필수입니다.

Q 타 직군/부서와 협업할 때 가장 중점을 두는 부분이 있으신가요?

저희 팀이 분산 스토리지 개발을 담당하다 보니 주요 협업 대상은 어플리케이션 서버 개발자분들입니다. 우리는 개발자를 사용자로 대하는 입장이죠. 같은 개발자이기 때문에 백그라운드가 이미 많이 공유되어 있어서 다른 부서들에 비해 소통이 수월한 편입니다. 그럼에도 효과적인 협업을 위해서는 데이터를 기반으로 이야기를 주고받으려고 노력합니다. 한 가지 주장을 하더라도 단순히 "좋다"고 말하는 것보다는 서비스 지표나 서버 메트릭 같은 근거를 기반으로 논의합니다.

Q 글로벌 동료와 협업할 때 특히 신경 쓰시는 부분이 있나요?

글로벌 동료들과는 주로 영어로 소통해요. 영어로 소통할 때는 서로 네이티브가 아니기 때문에 뉘앙스가 전달되지 않을 수 있어, 명확하게 소통하는 것이 중요합니다. 특히 슬랙이나 메일로 소통할 때는 메시지 내용만 보면 딱딱하게 느껴질 수 있어서, 이모티콘을 많이 사용하거나 서두에 문의 배경을 설명하기도 하죠. "나는 너와 함께 일하고 있어, 우리는 같은 팀이야"라는 느낌을 줄 수 있도록 노력하면서도, 업무에 대한 내용은 명확하게 전달하도록 노력해요. 부정적인 피드백을 주어야 한다면 “No”라고 얘기하되, 최대한 부드럽게 전달하고 대안을 제시하려고 합니다.

도전, 그리고 성장의 경험

Q 지금까지 진행했던 업무 중 가장 '재미'있었다고 생각하시는 업무는 어떤 것인가요?

기억에 남는 경험이 두개정도 있는데요. 첫번째는 데이터베이스 접근 최적화 작업입니다. 예전에는 100명의 프로필을 읽어와야 한다면 API가 프로필 한 개씩 접근해서 100번 읽어왔어요. 그래서 API 응답 시간이 굉장히 길었고 프로필이 많아질수록 시간은 그만큼 더 늘어났죠. 이를 병렬로 한 번에 읽어올 수 있도록 기능을 추가했더니 API 응답 시간이 크게 줄어든 것을 확인할 수 있었습니다. 응답 시간의 드라마틱한 차이를 제 눈으로 직접 확인했던게 기억에 오래 남네요. 두번째는 API rate limiter 구현입니다. 비정상적인 경로로 API를 과도하게 호출하는 어뷰저들을 걸러내는 작업이었습니다. 이런 어뷰저들은 1초에 API를 적어도 100번 호출합니다. 일반적인 사용자들에게선 볼 수 없는 패턴인거죠. 이를 해결하기 위해 한 사용자가 호출할 수 있는 API 횟수에 제한을 적용해서 문제를 해결했습니다. 1초에 100번, 1000번 호출하는 것들이 사라지는 것을 확인했을 때 정말 재미있었습니다. 마치 술래잡기를 하는 것 같았어요.

Q 업무와 관련해서, 가장 기억에 남는 성취의 순간이 있으신가요?

비교적 최근에 진행한 대규모 프로젝트 중에서, 데이터센터 장애 발생 시 메시징 서비스를 복구하는 프로세스를 개선한 것이 기억에 남습니다. 이 프로젝트를 통해 Fire Drill이라는 프랙티스를 만들었는데요. 모의 장애 상황을 일으키고 각자가 맡은 역할을 수행해서, 메시징 기능이 한 시간 반 정도 만에 복구되어 사용자들이 메시지를 주고받을 수 있는지 주기적으로 확인하는 활동입니다. 여러 직무와 팀들 간의 소통이 필요했고, 각자의 우선순위와 열정이 다르다 보니까 끊임없이 소통하고 인식을 맞추는데 많은 노력을 들였습니다. 6개월 넘게 진행된 장기 프로젝트였는데, 결과물이 실제로 작동하는 것을 보니 정말 뿌듯했습니다.

Q 승욱 님에게 '도전'이란 무엇인가요?

불편하고, 바보가 되는 느낌이 들기도 하지만, 이를 이겨내고 완전히 달라진 나를 보는 것이 도전이라고 생각해요. 도전해서 다 잘되진 않잖아요. 처참하게 실패한 경우도 있고 하지 말걸 후회하는 경우도 있지만, 돌이켜보면 도전했기에 배운 것들이 많았고 겸손해 지는 것 같아요. 저에게 도전은 성장을 위해 꼭 해야 하는, 꼭 겪어야 하는 과정이라고 생각합니다.

LINE에서의 특별한 경험에 대한 이야기

Q LINE에서 해당 직무로 재직하면서 가장 만족하는 부분은 무엇인가요?

회사와 조직이 요구하는 지표가 높은 수준이라 도전적인 업무를 많이 받게 됩니다. 팀원들의 기술 역량이 뛰어나다 보니, 활발히 소통하고 트렌드에 대해 공유하면서 업무 하는데요. 그 과정을 통해 기술적인 성장을 할 수 있다는 것이 매우 만족스럽습니다. 그리고 수평적인 조직 문화 덕분에 해결해야 하는 이슈가 생기면 모든 팀원이 발 벗고 해결하려고 나서는 점도 좋습니다. 서로가 힘이 되어 업무할 수 있거든요. 커리어 성장과 동시에, 제가 팀원분들께 도움을 줄 수 있다는 것에 매우 보람을 느끼며 일하고 있습니다.

Q 조직만의 특별한 업무 문화가 있을까요?

저희 팀에서는 'Help Meeting'이라는 것을 진행합니다. 혼자 진행하기 버거운 업무나 잘 모르는 이슈에 대해 도움을 요청하는 자리죠. 필요한 업무를 공론화하여 우선순위를 배정하고 실제로 진행되게 됩니다. 안 그래도 오늘 오전 중 캐시화 작업 중 발견된 이슈가 있어서 집단지성이 필요했는데요. 점심 먹으면서 해결책을 찾아서 이를 멤버들에게 공유할 계획입니다.

마무리하며

Q 마지막으로 이 직무에 지원하는 분들에게 하고 싶은 말씀이 있으신가요?

LINE이 글로벌 서비스인 만큼 높은 수준, 완벽에 가까운 상황을 위해 노력하고 있습니다. 그래서 도전적인 과정들이 많지만, 이를 즐겁게 함께 해결해 나갈 수 있는 분이 오셨으면 좋겠습니다. 스토리지 개발은 단순히 기술적인 도전만이 아니라 사용자 경험과 직결되는 중요한 역할입니다. 비록 외부에 보이는 일을 하고 있지 않지만, 우리의 업무와 동료들의 노력이 쌓여 사용자들에게 잊지 못할 경험을 선사한다고 믿어요. 그런 의미에서 우리는 정말 가치 있는 일을 하고 있습니다. LINE의 백엔드 엔지니어로서 꼼꼼함과 책임감을 가지고, 글로벌 사용자들에게 끊김 없는 메시징 서비스를 제공하는 도전에 함께하실 분들을 기다립니다!