한국어
    • 한국어
    • ENGLISH
    • 日本語
    • 中文-繁體

    2020.07.27 The Originality

    Service Reliability Engineering, 김필성

    게임을 만든다는 건 전에 없던 세상을 창조하는 일입니다. 화면 속 멋지고 화려한 세계의 이면에는 뼈대부터 하나하나 만들어 가는 고된 작업이 있습니다.

    과정은 쉽지 않지만, 우리는 ‘즐거움’의 가치에 확신이 있습니다. 서로 다른 전문가들이 모여 새로운 즐거움을 치열하게 고민하고 상상합니다. 이런 즐거움을 향한 고집이 퀄리티를 결정합니다.

    우리는 퀄리티를 타협하지 않습니다. 엔씨 퀄리티의 시작 < The Originality >

    '우리는 왜 매일 늦게까지 이렇게 고생하고 있을까' 하는 질문을 한참 동안 했다. 답은 ‘신뢰’에서 찾을 수 있었다. Service Reliability Engineering, 우리가 하는 일은 게임 유저와 동료, 양쪽 모두에게 신뢰를 두루 얻어야 한다. 모든 일은 상대방의 공감을 얻고 신뢰를 쌓는 것에서부터 시작된다.

    Service Reliability Engineering 김필성
    Infrastructure & Operation

    우리 팀은 기본적으로 게임을 서비스하는 시스템을 운영한다. 시스템 엔지니어링과 서비스 개발, 이 두 분야의 중간 지점에서 업무를 진행하고 있다. 게임 안에서 생기는 문제를 모니터링하고, 장애가 발생했을 때 가장 먼저 대응한다. 개발자가 만든 결과물을 유저에게 배포하고, 신규 프로젝트가 제대로 돌아가는 데 필요한 시스템도 설계한다. 개발과 시스템 운영 사이에서 마치 관절의 연골과 같은 역할을 하는 것이다.

    무소식이 희소식

    우리 팀에는 무소식이 희소식이다. 리니지M을 론칭했을 때, 우리나라 모바일 게임 역사를 새로 쓸 만큼의 트래픽이 나왔다. 그런데도 게임이 안정적으로 돌아간다는 피드백을 많이 받았다. 당연한 거라 생각할 수 있지만, 우리 팀에는 큰 칭찬이다. 우리 센터에서 일궈낸 큰 업적이라고도 생각한다.

    스페셜리스트이자 제너럴리스트

    우리 팀은 시스템 엔지니어 출신, 나 같은 개발자 출신, DBA(DataBase Administrator, 데이터베이스 관리자) 출신이 함께 섞여 있다. 자기만의 특화 영역을 가진 사람이 많은데, 개발, 네트워크, 서버, 하드웨어 등등 전 분야에 걸쳐서 기본적인 역량도 갖추고 있다. 그래야 어떤 서비스에 문제가 생겼을 때나 신규 프로젝트 시스템에 대한 컨설팅이 필요한 경우에 각 분야의 의견을 두루 주고받을 수 있다. 이 모든 것을 종합해서 문제가 해결되면 희열을 느낀다. 서로 막 박수해 주고 최고라고 칭찬도 해준다.

    변화는 서로에게 기댈 수 있다는 믿음에서부터

    모든 일은 신뢰를 쌓는 것에서 시작된다

    다들 늦게까지 고생하며 일하고 있는데, 우리가 얻으려고 하는 것이 무엇일까. 정체성을 고민하고 있을 무렵 SRE(Site Reliability Engineering) 개념을 처음 접하게 되었다. 이것은 구글에서 시작된 개념인데, ‘Reliability’를 키워드로 삼아서 우리 회사 실정에 맞게 재해석하여 직무를 정의했다. 우리가 하는 일은 유저들이 우리 회사 서비스의 안정성에 믿음을 갖도록 하는 것뿐만 아니라 협업하는 이들과 신뢰를 쌓아가는 것이기 때문이다.

    투명하게 공개하고 공유하자

    공감과 신뢰를 얻는 과정은 쉽지 않다. 사람들은 일반적으로 자신의 실수나 잘못을 숨기고 싶어 한다. 그래서 어떤 문제가 발생하면 서둘러 조치하고 나서 “잘 해결됐습니다. 앞으로 잘하겠습니다.” 하고 문제를 정리할 수도 있다. 하지만 우리는 해결 과정과 원인을 투명하게 공개하고 사과한 후 빠르고 정확하게 잘못을 바로잡아 나갔다.

    업무를 할 때, 가능한 범위에서 많은 정보를 공유하려고 한다. 그런 과정이 반복되다 보면 자연스럽게 신뢰는 쌓여 간다. 신뢰는 어느 한순간 갑자기 생기는 것이 아니다.

    전문가들이 모여서 만들어내는 시너지

    게임의 안정성을 확보하기 위해서는 예상치 못한 일에 대비해야 한다. 유저들이 갑자기 몰려들어서 서버에 장애가 생겼을 때는 발빠르게 대처해야 한다. 비정상적으로 플레이하는 유저들을 제지해야 하고, 시스템을 해킹하려는 시도도 막아내야 한다. 그럴 때 여러 부서의 전문가가 달려들어 함께 일한다. 전사적으로 역량을 집중해서 놀라운 시너지를 낼 때 자부심을 갖게 된다. ‘우리 회사가 이 정도로 뛰어난 기술을 갖고 있구나.’

    관행을 깨자

    엔씨가 모바일 서비스를 준비할 무렵에 입사했다. 기존의 틀 안에서 모바일 서비스를 준비하는 데는 많은 한계가 있었다. 반복되는 업무라도 ‘왜 이렇게 해야 할까’, ‘이게 최선인가’라는 물음을 스스로에게 계속 던졌다. 전시성 업무는 과감하게 정리하면서 실용적인 방법에 대해 끊임없이 고민했다.

    관행을 깨기 위해서는 많은 이들의 설득과 이해를 구하고 나아가 공감을 얻어야 했다. 여러 가지 새로운 시도로 결과적으로는 많은 부분이 개선되었지만 아직도 갈 길이 멀다.

    집요함이 나를 움직이게 한다

    끝까지 매달리기

    나는 꽤나 집요한 사람이다. ‘내가 이걸 해야겠다.’라고 생각하면 거기에 매달려서 스스로 만족할 때까지 판다. 제품을 하나 살 때도 ‘이건 이게 좋고 저건 저게 좋다.’ 하면서 여러 제품을 놓고 하나하나 분석한다. 그러면서 나에게 딱 맞는 물건을 찾는다.

    이런 성격이 일에도 많은 도움이 된다. 이 문제를 풀겠다고 마음먹으면 끝까지 매달린다. 일이 적성에 맞아서인지, 일 자체는 항상 즐거웠다. 이 분야에 몸담은 걸 후회한 적이 없다.

    때론 게으름을 피우자

    간혹 개발 과정의 로직이 너무 어려워지면 수작업을 섞어 문제를 회피하거나 ‘작업 주체를 이관할까’ 하는 악마의 유혹을 받기도 한다. 이럴 땐 게으른 마음이 필요하다. 한 번 끝낸 일에 또 손대는 일, 불필요한 수작업은 나도 귀찮고 남도 싫다. 처음부터 최대한 정교하게 만드는 게 가장 효율적이다. 손가락만 까딱하거나 때가 되면 알아서 모든 일이 한 번에 처리되도록 만들어야 모두가 행복하다.

    매일매일 성장한다는 것

    게임 분야에는 날마다 새로운 기술이 도입되고 있다. 계속 공부하지 않으면 다른 부서와 함께 일할 수가 없다. 변화에 뒤처지지 않으려면 꾸준히 연구하고 공부해야 한다. 새로운 기술에 관한 세미나에 참석하거나 자료를 구해서 스터디를 한다. 내가 모르는 것에 대해서는 선배에게든 후배에게든 주저하지 않고 물어본다.

    영화 ‘마이너리티 리포트’처럼

    당분간은 ‘자동화’가 계속 화두일 것이다. 효율성뿐만 아니라 신뢰성을 높이는 일이기에 관련된 기술은 계속해서 발전하고 있다. 지금은 수준이 꽤 많이 올라왔다. 시스템 장애가 생겼을 때 스스로 복구할 정도이다. 이제는 시스템이 패턴을 감지하고, 그것을 알아서 자동화하는 '감지자동화'의 영역으로 나아갈 차례이다.

    아직은 주로 문제가 생긴 뒤에 대응하는 식이다. 그런데 문제가 생기기 전에 미리 대비하고 조치할 수 있다면 시스템이 훨씬 안정되고, 시스템에 대한 신뢰도도 높아질 것이다. 이제는 데이터를 활용해서 문제 발생의 가능성을 예측하는 기술, 시스템이 회사의 정책과 다른 방향으로 만들어지고 있을 때 미리 알려주는 기술 등의 연구에 관심을 기울이고 있다.

    스펀지 같은 동료를 찾는다

    Service Reliability Engineering 분야에서 일하고 싶은 사람은 새로운 기술을 받아들이는 흡수력이 좋아야 한다. 이 분야를 지망하거나 신입으로 들어온 후배에게 나는 이런 이야기를 해주고 싶다. “지금 유행하는 기술은 어차피 얼마 지나지 않아 도태되고, 새로운 기술이 금방 또 나온다. 그러니까 자기 나름의 기초를 튼튼히 갖추되 새로운 기술을 빠르게 습득해서 자신의 것으로 만들 수 있는 역량을 기르도록 하자.”

    * 본 인터뷰에서 언급되는 내용은 인터뷰 당사자의 개인적 견해이며, NCSOFT의 공식 입장이 아님을 밝힙니다.