라이브 서비스?

처음 단어를 듣는 순간, 머릿 속에 나타나는 것은 물음표다. 분명 어디서 들어본 것만 같은데 정확한 개념이 잡히지 않는다. 강연의 이름은 '리그오브레전드의 라이브 서비스 맛보기.' 무슨 말인지 알 수는 없지만, 어차피 강연은 배우러 가는 의미도 있으니 부담은 버리기로 했다.

강연장으로 향하는 길은 쉽지 않았다. '리그오브레전드'라는 이름 때문일까? 줄을 서서 들어가는 강연은 많이 보았지만, 이 정도로 긴 줄은 본 적이 없다. 마치 마장동 도축시장에서 소고기를 무료로 뿌리는 날을 보는 것 같다. 가까스로 가까운 자리를 잡고 노트북을 폈다.

▲ 라이엇 게임즈 최종윤 라이브 프로듀서

2013년부터 2년째 라이브 프로듀서로 일하고 있다는 최종윤 프로듀서는 선한 인상을 가진 사람이었다. 조금은 어두운 조명의 연단에 선 그가 처음 꺼낸 이야기는 뜻밖에도 '정글 잭스' 이야기였다.

"제가 요즘 정글 잭스를 합니다. 보통 게임이 이렇게 흘러가요. 탑 라인을 볼까요? 아군이 1킬을 내줬어요. 정글러를 찾고 덤으로 정글러의 부모님도 찾습니다. 미드는 밀리고는 있지만 아직은 괜찮아 보이는군요. 봇은 우리 팀이 상대적으로 우세합니다. 하지만 상대가 성장 기대치가 높은 트리스타나네요.

여기서 전 생각합니다. 탑을 가서 상대의 기세를 꺾어야 할까? 아니면 미드에 가서 두 라인을 이기게 만들어야 할까? 혹은 봇을 노려 적군의 성장 기대치를 낮춰야 할까? 이런 이야기를 하는 이유가 있습니다. 여러분은 '라이브 서비스'에 대해 아무것도 모르셔도 괜찮습니다. 이제부터 제가 설명할 것이 그것이고, '라이브 서비스'는 제가 방금 말한 그 상황과 상당히 유사하니까요."




◈ '라이브 프로듀서'가 대체 뭡니까 그래?


최종윤 프로듀서는 '라이브 서비스'를 이렇게 말했다. '꼭 필요한 일이지만, 누가 하는지는 모르는 일. 그러나 누군가는 하고 있는 일.' '라이브 서비스'는 이미 제공중인 온라인 서비스에 대한 유저들의 피드백을 검토하고, 이를 해결하는 과정을 주 업무로 삼는 일이다. 나아가 온라인 서비스를 즐기는 이들에게, 새로운 콘텐츠를 제공하고 이를 조정하는 역할까지 맡는다.

쉽게 풀어 말하자면, 온라인 서비스의 품질을 유지하고, 플레이어가 좋지 못한 경험을 하는 것을 미연에 방지하는 일을 하는 거다. 최종윤 프로듀서는 라이브 프로듀서의 임무를 네 가지로 나누었다. '정보 공유', '이슈 대응', '이슈 예방', '이해 관계 조정' 이 바로 그 네 가지 임무다.

▲ 라이브 프로듀서의 임무 4가지

'정보 공유'는 게임이 어떻게 서비스되고 있고, 어떤 문제가 발생할 시 이를 해결할 수 있는 실무팀에 전달하고, 그 과정을 플레이어들에게 알리는 일이다. 우리가 게임을 하면서 가끔 볼 수 있는 '공지'를 올리는 일도 바로 라이브 프로듀서의 일이다. 나아가 서비스 장애에 대응하고, 원인을 분석해 예방책을 세우며, 손해를 본 플레이어들이 불평하지 않도록 혜택을 주거나, 어뷰징을 시도한 유저에게 불이익을 주는 등 이해 관계를 조정하는 것 까지가 라이브 프로듀서의 역할이다.

이른바 '최접점'이다. 이들의 일처리에 따라 클라이언트의 상태가 바뀐다. 특정 챔피언에 버그가 발생했을 때, 이를 완전히 금지시킬 것인가, 혹은 랭크 게임에서만 금지시킬 것인가에 대한 판단. 치명적인 버그가 일어났을 때 이를 알리고 클라이언트를 닫은 채 수정해야 하는가? 혹은 파문을 줄이기 위해 조용히 해결해야 하는가? 이 모든 선택의 과정은 수많은 플레이어들에게 영향을 끼친다. 쉽지 않은 일이다. 행동 다른 다수의 인원에게 영향을 준다는 것은, 그 누구도 떨칠 수 없는 부담이기 때문이다.



◈ 전문적이고 어렵지만 알아두면 좋은 부분


한동안 무리 없이 잘 구동되던 클라이언트에 오류가 발생했다. 어떻게 처리해야 할까? 최종윤 프로듀서는 문제의 처리 절차를 간단하게 도식화했다. '문제 발견', '팀간 소통을 통한 해결책 마련', '문제 해결'로 이어지는 절차다.

문제를 발견하는 방법은 여러가지다. 많은 이들이(지금 이 기사를 읽고 있는 독자분들까지 포함해) 이용하고 있는 커뮤니티의 게시판을 참고하는 것이다. 최종윤 프로듀서는 "가끔은 클라이언트의 로그를 분석하는 것 보다 더욱 빠르게 정보가 올라오곤 합니다."라고 말하며, 수시로 커뮤니티의 게시판을 주시한다고 말했다. 또한 직접적인 '고객 문의'나 앞서 말한 '로그 분석'도 문제 파악의 단서가 될 수 있다.

이후 문제를 해결하기 위해 모니터링을 담당하는 NOC팀이나 타 지역의 라이브 서비스 팀과 상의한 후, 통상적으로 해결할 수 있는 문제(해결이 어렵지 않은 일)라면 바로 문제 해결의 절차로 넘어가게 된다. 하지만 항상 그런 것은 아니다. 언제나 변수는 존재하기 마련이고, 아무도 예상치 못한 사고가 터지기도 한다. 그럴 경우 '트라이아지(Triage)'의 단계로 넘어가게 된다.

▲ 문제를 해결하는 과정의 도식

◈ Triage : 세계대전 당시 부상자의 상태를 세 단계로 나누어 분류하는 일. '경상', '중상', '치료 불가'로 나뉘어진다.

라이브 서비스에서의 '트라이아지'는 곧 리소스 배분의 정도를 결정하는 과정이다. 예를 들어 서버 장비가 고장나 게임에서 튕기는 경우가 발생했다고 했을 때, 모든 서버 관련 엔지니어가 달려들 필요는 없다. '트라이아지'를 통해 라이브 프로듀서는 상황의 경중을 파악하고, 인력과 자원을 배분한다. 이는 필요 이상의 인원이 문제 해결에 착수할 경우, 필연적으로 피로로 인한 실수나 업무 공백이 일어날 수 있기 때문이다.

이후 라이브 프로듀서는 문제를 처리한 후 검증해 재발을 막는 업무를 하게 된다.

▲ 문제 해결에 필요한 자원을 계산하라



◈ 이렇게 적어두니 길기만 하고 아무도 안 읽는다. 그래서 준비했다.


물론 기자 역시 사람이니만큼, 길고 전문적인 용어가 들어가는 글이 잘 읽히지 않는다는 것은 잘 안다. 그것은 강연자인 최종윤 프로듀서 또한 비슷하게 생각하고 있었을 것이다. 최종윤 프로듀서는 청자들이 가장 익숙한 게임 상황에 맞춰 라이브 프로듀서의 업무를 설명했다. 자 그래서 나도 준비했다. 눈을 감고 머릿속으로 70초를 세며 챔피언을 픽하면 된다. 그리고 이제 게임이 시작되었다.

※ 박스 안에 기술된 내용은 기자의 개인적인 소설이 아닌, 강연자 분이 진짜 한 이야기를 다듬은 것에 불과함을 미리 밝힙니다.

▲ 이해하기 쉽게 'LoL'과 라이브 서비스를 비교해 봅시다.

빠바밤 바 바 밤 바 바바 바바바~(아뿔싸 옛날 음악...!)

소환사의 협곡에 오신 것을 환영합니다.
당신은 정글 잭스입니다. (잭스를 안 골랐어도 어쩔 수 없다. 이 기회에 잭스도 한번 해 보는 거다.)

무난히 작은 골렘으로 시작해 3레벨을 달성했다. 미드 갱킹을 한번 시도했지만, 실패, 적도 탑 갱킹을 시도했지만, 아군 탑 라이너 나르는 가까스로 살아났다. 그런데 아뿔싸, 체력이 적어졌던 나르가 신지드를 우습게 보다가 독가스를 마시고 사망했다. 이쯤에서 상황을 파악해 보기로 했다.

나르가 신지드에게 솔로킬을 준다는 것은 상식적으로 이해가 안되지만 일단 그렇게 되었다. 미드 라인을 한번 보자. 우리 팀 미드 라이너 아리는 제드를 상대로 잘 버티고 있지만 조금은 위태로워 보인다. 봇 라인은 나름대로 괜찮다. 케이틀린과 소나로 구성된 봇 라인은 알리스타와 트리스타나로 이뤄진 적 봇 듀오를 상대로 선전하고 있다. CS 개수도 이기는 중이다.

무난히 구동되던 클라이언트가 갑자기 유저들을 튕겨내기 시작했다. 로그 분석을 해 보았지만 별다른 문제는 파악되지 않았다. 이쯤에서 상황을 보기로 하였다. 로그 상으로는 큰 문제가 없다. 고객 문의 역시 오지 않았다. 하지만 커뮤니티 게시판을 보니 게임을 튕긴 유저들의 불만이 드문드문 보이고 있다.

1. 문제 파악

여기서 문제가 터졌다. 매우 심각한 문제다. 나르가 채팅창을 열기 시작했다. 지금에야 내가 어디 있느냐고 찾는 정도이지만, 여기서 아무 대응을 하지 않았다가는 분명히 큰 사달이 날 것이다. 이대로 가면 상대편 신지드는 멈출 수 없는 폭주 기관차가 되어 날뛸 거다. 그냥 뛰어와서 냅다 던지는 것밖에 없지만 그게 무서운 놈이니까. 이대로 가면 게임은 지게 될 것 같다.

플레이어가 튕기는 경우는 개인적인 문제가 있을 수 있기 때문에 종종 보이는 경우다. 하지만 사고가 터진 것이 확실하다. 유저들의 글이 어느 순간을 기점으로 폭발적으로 늘어나고 있으며, 동시 접속자 수가 줄어들고 있는 것이 눈으로 보인다. 아이고 큰일이다. 이대로 가다간 봉변을 면치 못할 상황이다.


2. 해결 방향 정의

어떻게든 게임을 살려야 한다. 머릿속으로 해결 방법을 모색한다. 탑 갱킹을 가서 신지드를 혼내줄 것인가, 아니면 미드 라인을 살려서 아리를 키워줄 것인가, 혹은 봇 라인에 더 힘을 줘 라인을 터뜨리고 드래곤까지 가져올 것인가…. 그래 결정했다. 어차피 신지드는 죽이지 못할 테고, 아리도 혼령 질주가 있으면 버틸 거다. 봇을 터뜨리자

어떻게든 클라이언트를 복구해야 한다. 머릿속으로 해결 방안을 모색한다. 클라이언트를 켜둔 채 조용히 오류를 잡아내 해결할 것인가? 혹은 유저들에게 상황을 공지한 후 잠시 클라이언트를 닫아야 할까? 그래 결정했다. 클라이언트를 닫는 것은 너무 많은 유저들에게 불편을 줄 수 있다. 클라이언트를 열어둔 채 문제 해결에 집중하자.


3. Align!

작전을 짰으니 준비를 해야 한다. 미리 봇 듀오에게 말해 체력을 아껴 두고 궁극기를 쓰지 말고 기다리라고 말한다. 그에 앞서 상대의 와드 위치를 파악하는 것도 중요하다. 아 참! 나르가 삐칠 수 있으니 좋은 말로 달래준 후 드래곤을 잡을 때 텔레포트로 와 달라고 부탁해 놓는다. 안 오면 어쩔 수 없지만.

해결 방법을 정했으니 필요한 인원과 자원을 분배해야 한다. 서버 관련 엔지니어가 두 명 정도 필요한데, 시간이 얼마나 걸릴지 알 수 없다. 이 점은 미리 해당 팀에 양해를 구해 놓아야 할 것 같다. 몇몇 팀은 클라이언트를 재 시작하는 편이 더 좋다고 말하지만, 그렇게 되면 유저들의 불만이 커지고, 게임을 못하는 다수의 유저들이 좋지 않은 경험을 할 수 있다. 이 점을 강조해 설득하고, 해결이 원만하게 될 수 있도록 공조 체계를 갖춘다.


4. Push

준비가 끝났으니 빠르게 봇 라인을 정리하고 게임의 주도권을 가져올 때다. 적의 와드가 설치되지 않은 사각을 노려 침투하면서 동시에 무자비하게 핑을 찍는다. 케이틀린이 CS에 미련을 가지는 것 같아 말한다. "킬 님 먹어요.". 케이틀린이 온다. 알리스타가 궁극기를 쓰고 버티지만, 잡지 못할 놈까지 잡을 필요는 없다. 그냥 트리스타나만 빠르게 처치한 후 드래곤을 시도한다. 나르는 오지 않았지만, 결과가 좋으니 괜찮다.

준비가 끝났으니 문제를 해결할 때다. 빠르게 선정된 인원을 투입해 오류 해결에 주력한다. 이런, 게임에서 튕기는 유저들이 점점 많아지고 있다. 공지를 작성한다. "현재 게임 클라이언트가 불안정하여 게임 도중 튕기는 경우가 접수되었습니다. 라이엇 측에서도 이 문제를 파악한 상태이며, 해결 중입니다." 음 좋다. 다행히도 오류는 금방 잡아낼 수 있었다. 정규업무 외 잔업 때문에 엔지니어 인원의 컨디션이 다소 나빠졌지만, 이 정도로 그친 것이 다행이다.


5. Ask

드래곤을 성공적으로 가져왔고, 적과의 차이를 벌릴 수 있었다. 하지만 마음을 놓고 있으면 또 문제가 터질 수 있다. 나르에게 물어본다. "탑갱 필요해요?" 나르가 말한다. "ㄴㄴ 버티면 됨 걍 딴데가셈" 어조를 보아하니 흥분은 가라앉은 것 같다. 앞으로의 작전을 짜야 할 때다.

성공적으로 문제를 해결했고, 유저들의 불만도 가라앉았다. 하지만 원인을 파악하지 않는 이상, 문제는 100% 다시 재발하기 마련이다. 힘들게 잔업을 마친 엔지니어 팀에게 물어본다. "어떻게 된 일이었죠?" 엔지니어 팀이 말한다. "별거 아니네요. 코드가 조금 꼬여 있었는데 풀었어요. 이제 문제없을 거에요." 보아하니 추가적인 문제는 일어나지 않을 것 같다.




◈ 언제나 내 눈은 그대들과 함께하오


최종윤 프로듀서의 강연은 어렵지 않았다. '라이브 서비스'를 눈곱만큼도 모르던 내가 이해했을 정도니 오히려 쉬운 편이라 해도 무방할 것이다. 하지만 모든 일이 사례처럼 쉬운 것은 아니다. 때로는 수 시간을 노력해도 고쳐지지 않는 문제가 있을 수도 있으며, 문제는 해결되었지만, 원인을 알 수 없는 경우도 존재한다.

최종윤 프로듀서는 문제를 해결하는 세 가지 단계에 대해 이야기하기 시작했다.

1. 기술적인 해결에서의 관점

장애를 최소화하고, 추가 장애를 예방하며, 얼마나 많은 인적, 물적 자원을 투입할지 정한다(트라이아지)

2. 플레이어와 소통하는 관점

정보에 대한 가시성을 제공한다. "문제가 발생해 수정 중입니다."와 "문제가 발생해 수정 중이며, 1시간 이내로 완전히 해결될 것입니다."는 다르다. 또한, 안정성을 확보하고, 지역적 특성에 따라 유저와의 소통 방법을 조절해야 한다.

3. 라이브 운영 조치 관점

장애 때문에 손해를 입은 플레이어가 있는지 파악해야 한다. 그 외에 추가로 발생할 수 있는 피해자를 미리 방지해야 하며, 플레이어에게 신뢰를 줄 수 있도록 처신해야 한다.

▲ 문제 해결 과정엔 생각해야 할 요소들이 있다.


최종윤 프로듀서의 강연은 이렇게 마무리되었다. 이후 몇몇 사례를 통해 토론하고, 각자의 생각을 논하는 시간이 진행되었는데, 이 과정에서 최종윤 프로듀서도 생각지 못한 참신한 방법의 이슈 해결법들도 나올 정도로 청중들의 이해도는 높았다.

1시간이라는 시간을 정말 빠르게 흘려보낸 강연. 생각해보면, 유저의 입장에서 게임사는 애증의 대상이다. 라이브 서비스를 아무리 열심히 한다고 해도, 모두에게 이득이 될 수는 없다. 최종윤 프로듀서가 중간마다 강조한 내용 중 하나가 바로 '피해를 최소화하면서 신뢰를 잃지 않을 적절한 선을 찾아라'였으니 말이다. 그 때문에 오늘 이 순간에도 많은 플레이어들에게 욕을 먹으면서, 한편으로는 그들을 위해 일하고 있을 라이브 프로듀서들이 존경스러웠다.

길었던 강연의 끝. 최종윤 프로듀서는 라이브 프로듀서가 가져야 할 마음가짐이자, '라이엇 게임즈'의 철학을 한 번 더 강조하면서 강연을 마무리 지었다. "초점을 플레이어와 같게 맞출 것(Player Focused)"