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