퀵바

ki**** 님의 서재입니다.

사실 게임 프로그래머 리더십에 대한 이야기

웹소설 > 일반연재 > 현대판타지, 게임

kistch
작품등록일 :
2022.05.11 13:48
최근연재일 :
2022.07.17 19:55
연재수 :
50 회
조회수 :
17,271
추천수 :
1,103
글자수 :
233,327

작성
22.06.13 09:15
조회
360
추천
17
글자
11쪽

적응 6

DUMMY

사내 테스트 직전에 발견된 높은 확률로 로그인이 안 되는 문제가 발생했다. 그로 인해 팀장님은 처음으로 팀원들이 전부 있는 앞에서 화를 냈다.

그로 인해 서버 파트나 클라이언트 파트나 서로 난처하긴 마찬가지였다. 그때 경력 많고 카리스마 넘치는 서버 파트장님이 말했다.


“서버 쪽은 서버 로그로 패킷 받았는지 확인해보고, 방화벽도 체크해볼 테니 클라이언트 쪽도 패킷 제대로 보내고 받고 있는지 체크 좀 해주세요.”


둘 다 같은 파트장이었지만, 클라이언트 파트장인 이영식 파트장님은 서버 파트장님에게 항상 별다른 의견을 내지 못하고 끌려다닌다. 오늘도 서버 파트장님에게 아무 말 하지 못한 이영식 파트장님이 태훈 님에게 말했다.


“태훈 님. 이건 모바일 환경에서만 안 되는 거니까 모바일 빌드 담당인 태훈 님이 좀 봐주세요.”


나는 아차 싶어서 말했다.

“지금 긴급 사항인데, 태훈 님 혼자 봐도 될까요?”

“태훈 님이 빌드 다 준비했는데 뭐가 문제인가요? 우리는 그쪽 알지도 못하잖아요?”

“그래도···”

“이진수 님. 클라이언트 파트장은 접니다. 선을 지키세요.”


이슈를 수정하는데 무슨 선이 필요한가 싶었지만, 나는 직책을 앞세운 이영식 파트장팀의 논리에 아무 대꾸를 하지 못했다. 그리고 클라이언트 파트 사람들은 다들 자기 자리로 돌아 갔다.

나는 다시 메모했다.


“위급 상황일 때 옆에 함께 봐줄 수 있는 작업 파트너 혹은 부사수를 둬야 한다.”

“직책자가 직책과 권한을 무기로 논리를 펼치면, 상대는 수긍이 아닌 포기를 하게 된다.


이영식 파트장님은 태훈 님에게 이슈를 맡겼지만, 전사 테스트를 취소할 수도 있는 이슈를 가만히 지켜보고만 있을 수는 없었다.

나는 서버와 통신하는 코드가 들어 있는 네트워크 클래스들을 쭉 훑어봤다. 그러나 서너시간이나 코드를 본 보람도 없이, 크게 문제가 될 만한 부분을 찾지 못했다.

그래서 나는 빌드와 네트워크쪽 클래스 위주로 SVN로그를 시간의 역순으로 모조리 읽어 나갔다. 그래도 다행인 점은 클라이언트가 5명이나 되지만, 나 이외에는 다들 작업량이 거의 없어서 세달치 로그를 보는데 시간이 얼마 들지 않았다는 것이다.

그러다 태훈 님의 커밋에서 의아한 로그를 봤다.


“음? 이게 뭐지?”


커밋 로그에는 이렇게 적혀 있었다.

“모바일 빌드를 위한 네트워크 최적화. (TCP보다 UDP가 몇 배는 빠름)”


네트워크가 간헐적으로 단절되어 게임에서 튕기는 원인을 찾은 것 같다.

TCP와 UDP는 인터넷 통신을 하기 위해 사용하는 규약의 종류다. UDP는 TCP보다 서너 배 정도 빠른 속도를 갖지만, 패킷 손실과 순서에 대해서 보장을 하지 않는다. 이 말은 메신져로 예를 들면, 내가 누군가에게 메시지를 보냈는데, 그 메시지가 진짜 도착했는지 혹은 보내진 여러 개의 메시지의 순서가 올바르게 도착했는지 보장하지 않는다는 뜻이다.

반대로 TCP는 패킷이 순서대로 진짜 잘 도착했는지 확인하는 과정이 있기 때문에 속도는 느리지만, 내가 보낸 패킷(메시지)이 순서대로 진짜 잘 도착했는지 보장해준다.

만약, 철수가 영희에게 “안녕?”과 “빠잉” 이란 메시지를 순차적으로 보냈다고 했을 때 TCP는 조금 느린 속도로 “안녕?”과 “빠잉”이 순서대로 확실히 도착한다. 반면 UDP는 속도가 빠른 대신 “빠잉”이 “안녕?”보다 상대방에게 먼저 도착할 수도 있고 메시지 자체가 아예 가지 않을 수도 있다.


태훈 님은 나름 최적화를 하고 싶어서 통신 규약을 TCP에서 UDP로 변경한 것 같다. 그리고 개발자들이 테스트하는 개발 환경은 유선 랜으로 인터넷이 연결되어 있기 때문에, 패킷에서 손실이 발생할 일이 거의 없다. 그래서 문제가 없었겠지.

하지만 무선 네트워크를 쓰는 모바일 환경에서는 얘기가 다르다. 확률은 1% 미만으로 적긴 하지만, 게임에서는 1분에 수십번씩 서버와 통신한다. 그래서 단 1번이라도 패킷 유실이 나면, 게임이 멈췄던 것이다.

애초에 설계는 TCP로 되어있었고, 패킷이 유실된다는 가정을 하지 않고 코드가 작성됐을 테니, 높은 확률로 서버와 연결이 끊기는 것은 당연한 결과다.


마침 클라 파트장님은 서버 파트장님의 자리로 가서 이 문제를 어떻게 해결할지에 대해서 논의하고 있었다. 나는 그리로 갔다.


서버 팀장님이 말했다.

“서버 로그를 보니 서버는 패킷을 받고 정상적으로 회신했어요. 방화벽도 이슈 없고요.”


클라 파트장님은 어쩔 줄 몰라 하고 있었다.

그때 내가 나섰다.


“프로토콜 쪽 패킷 수정 내역을 보니까 지난주쯤 패킷 프로토콜이 UDP로 바뀌었더라고요.”


서버 팀장님은 놀라면서 클라 파트장님에게 따지듯 말했다.

“뭐라고요? 누가 그런 짓을? 로그인 패킷처럼 손실되면 안 되는 패킷에 누가 UDP를 씁니까?”


이슈 수정을 위해 내가 찾은 원인을 공개하긴 했지만, 나는 또다시 이영식 파트장님이 짜증을 부릴까 봐 더 이상 말하지 않았다. 그리고 이영식 파트장님도 아무 말 하지 않고 이 상황을 지켜만 보고 있었다. 아마도 할 말이 없었겠지.


서버 파트장님은 이성적인 사람이다. 징벌할 타이밍과 수습을 해야 할 타이밍을 구분할 줄 안다.


“서버 쪽은 제가 UDP로 바꾸란 지시를 한 적이 없는데, 도대체 누가? 흠··· 아무튼 서버고 클라고 범인은 나중에 찾기로 하고 다시 TCP로 바꾸시죠.”


얼굴이 벌게진 이영식 파트장님은 알겠다고 대답했다.

그리고 다시 서버 팀장님이 말했다.


“아 참. 진수 님 맞죠?”

“네 맞습니다.”

“아무튼 원인 찾아줘서 고마워요. 진수 님 덕분이 주말 출근 안 해도 되겠네.”


나는 나름 도움이 된 것 같아서 기뻤다. 하지만, 이영식 파트장님은 그렇지 않았던 것 같다.

그는 클라파트 자리로 돌아가자 태훈 님에게 씩씩거리며 말했다.


“태훈 님!! 이거 누가 UDP로 바꾸랬어? 어?”

“그거··· 파트장님이 UDP가 더 빠르다고··· 서버도 그때 같이 바꾸시라고···”

“아니 그렇다고 클라가 말도 없이 서버 코드까지 바꿔버리면 어떡해···”


이영식 파트장님은 화가 많이 난 듯 보였고, 그 화는 예상대로 내게 튀었다.

“내가 통신 쪽 코드 보라고 했어요? 스킬이나 잘 만들 것이지 왜 통신 코드를 봤어?”


이영식 파트장님 입장이 난처해져서 화가 난 것은 알겠지만, 그렇다고 해도 문제 수정하는 것을 부정하는 것은 옳지 않아 보였다.


“제가 통신이나 빌드 담당은 아니지만, 긴급 상황일 때는 같이 봐줘야 할 것 같아서 같이 봤습니다.”

“네가 그렇게 잘났어? 잘났으면··· 어휴! 말을 말자.”


그는 자리를 박차고 나갔고, 나도 내 자리로 돌아왔다. 나는 자리에 앉아서 내가 무얼 잘못했는지 곰곰이 고민해봤다. 하지만 역시나 내 잘못은 없었던 것 같다.

나는 또다시 메모장을 꺼냈다.


“상대방을 비하하려는 의도 없이 순수하게 돕고 싶은 마음으로도, 상대방을 화나게 할 수 있다.”


나는 수고한 보람도 없이 욕만 먹었지만, 어쨌든 우리 프로젝트는 한고비 넘겼다고 생각했다. 어리석게도 말이다.

이영식 파트장님은 태훈 님에게 다시 TCP로 변경하라고 지시했고, 잔뜩 긴장한 태훈 님은 TCP로 다시 변경 후 사내 테스트 당일인 월요일 오전까지 빌드를 만들어 두겠다고 했다.

나는 우리 프로젝트 사내 테스트의 운명이 또다시 태훈 님 한 명에게 맡겨지는 것이 불안했다. 하지만 서버 튕기는 현상의 원인을 찾은 일 때문에 이미 이영식 파트장님에게 한 번 경고를 받았기 때문에 오늘은 더 이상 나서지 않기로 했다.


다음 주.

우리 팀 게임인 프로젝트명 CT의 사내 시연 날이 됐다. 다행히 패킷을 TCP로 바꾸고 나서 서버에서 튕기는 현상은 없어졌지만, 또 다른 문제가 발생했다.

바로 최적화 이슈.

우리 게임의 일주일간 사내 테스트 결과는 너무 처참해서 결과 자체가 공유되지 않았다. 다만 그 주 팀 회의 시간에 팀장님이 다시 한번 화내는 모습을 볼 수 있었을 뿐이었다.


사내 테스트 직후 팀 주간 회의.

팀장님이 불안과 화를 품은 목소리로 말했다.


“다들 이미 분위기 보셔서 아시겠지만, 저희 게임은 사내 테스트 결과에서 등급 외 판정을 받았습니다.”


같이 주간 회의에 참석해 있던 아트 팀의 임아린 팀장님이 물었다.

“사내 테스트인데 등급 외 판정도 있나요?”

“네··· 전투 시 랙이 너무 심해서 게임 자체를 할 수 없다는 피드백이 대다수였습니다. 그래서 게임 자체를 못 해봤다고 등급 외 판정을 받았습니다···”


게임에서 최적화가 잘 안되어있으면 게임 플레이 도중 버벅임이 발생하는데, 이를 랙이라고 한다. 랙은 대부분 클라이언트의 문제다. 그래서 이영식 파트장님은 좌불안석이 되어 태훈 님에게 따지듯 물었다.

“태훈 님. 분명 주말에 디바이스로 테스트 다 해보셨잖아요?”

“네··· 분명 테스트 못할 정도로 느리지는 않았어요···”


팀장님이 둘의 말을 끊었다.

“딱 태훈 님이 쓰는 최신형 스마트폰에서만 안 느립니다. 그것도 싱글 플레이 일 때만요. 최신 스마트폰에서도 파티플레이를 하면 랙이 심하게 걸립니다···”


분위기의 심각성을 느낀 임아린 팀장님과 우리 팀 팀원들은 모두 아무 말도 하지 못했다.

5분 정도 정적이 흐른 뒤 팀장님이 말했다.

“오늘 주간 보고는 따로 하지 않겠습니다. 다들 자리로 돌아가시고, 클라이언트 파트장님만 남아 주세요.”


이영식 파트장님을 제외한 모두는 회의실 밖으로 나왔다.

나는 왜 최적화 문제가 이렇게 크게 발생했을지 유추해봤다. 빌드 테스트 담당이었던 태훈 님의 핸드폰은 최신 기종인 은하계 S5였다. 하지만 아직까지 대다수의 사람은 1~2년 전 기종을 사용하고 있었고, 이 시대는 스마트폰이 급하게 발전하고 있던 시대라 스마트폰의 성능은 매년 일취월장하고 있었다. 그래서 태훈 님의 최신형 스마트폰에서는 랙이 발생하지 않았다.

테스터가 단순히 최신 스마트폰을 사용하는 것이 일파만파 번진 배경에는 사내 테스트 직전에 있었던 UDP 패킷으로 인한 서버 튀기는 현상이 있다. 이 튕기는 이슈 때문에 우리 팀 팀원들은 아무도 디바이스로 게임을 테스트할 수 없었다. 튕기는 이슈는 주말에 태훈 님이 수정했고, 그래서 혼자 출근해있던 태훈님이 자신의 최신형 스마트폰으로 잠시 테스트한 것이 우리 팀 테스트의 전부였다.

지금 생각해보면 사내 테스트 시간을 조절해서라도 팀원들이 다 같이 테스트를 해봤어야 했다. 사내 테스트니 대충 해도 된다는 안일함과 증명 없이 태훈 님의 “가능하다”라는 한 마디만 믿었던 것이 이 사단을 만들었다.


팀장님과 한 시간이나 면담을 한 이영식 파트장님이 회의실 밖으로 나오는 것이 보였다. 하지만 최적화 사태를 해결하고 책임져야 할 이영식 파트장님의 표정은 의외로 나빠 보이지 않았다.

그의 표정이 의외로 괜찮았던 것은 그가 이 최적화 사태의 원인을 모두 내게 뒤집어씌웠기 때문이다.


이 작품은 어때요?

< >

Comment ' 9

  • 작성자
    Lv.41 페일블루
    작성일
    22.06.13 11:28
    No. 1

    재미있어요!

    찬성: 2 | 반대: 0

  • 작성자
    Lv.63 하양2
    작성일
    22.06.13 12:58
    No. 2

    오탈자가 있어요 자리에 가서

    찬성: 2 | 반대: 0

  • 답글
    작성자
    Lv.7 ki****
    작성일
    22.06.13 13:30
    No. 3

    으익 저녁에 집에가서 수정해두겠습니다 감사합니다

    찬성: 1 | 반대: 0

  • 답글
    작성자
    Lv.7 ki****
    작성일
    22.06.13 14:01
    No. 4

    고쳤습니다 ㅎㅎㅎㅎ오묘하게 오타가 났네요

    찬성: 1 | 반대: 0

  • 작성자
    Lv.99 Greed
    작성일
    22.06.13 20:19
    No. 5

    소설보면서 답답하기는 싫으니 하차합니다

    찬성: 2 | 반대: 0

  • 답글
    작성자
    Lv.7 ki****
    작성일
    22.06.13 20:54
    No. 6

    피드백 감사합니다. 전개를 위해 어쩔수 없이 고구마가 들어갔는데, 특별히 답답한 포인트를 알려 주실수 있을까요?
    제게 처음 스토리에 대한 피드백 주신 분이라 괜찮으시면 의견을 듣고싶습니다.

    찬성: 1 | 반대: 0

  • 작성자
    Lv.24 gy******..
    작성일
    22.06.14 09:08
    No. 7

    현실성 있는 고증과 재미는 있는데, 사이다에 절여있는 문피아 웹소설 계층과는 맞기 쉽지 않을듯.

    찬성: 2 | 반대: 0

  • 작성자
    Lv.24 gy******..
    작성일
    22.06.14 09:12
    No. 8

    고구마를 맥이면 해당 화 안에서 사이다로 마무리를 짓거나 연참해서 다음화에 바로 정리가 들어가야 요즘 사이다충들을 만족시킬 수 있을 것 같습니다.

    찬성: 2 | 반대: 0

  • 답글
    작성자
    Lv.7 ki****
    작성일
    22.06.14 09:48
    No. 9

    다음 주 부터는 사이다를 좀 넣어보도록 하겠습니다
    조언 감사합니다 그래도 반응 해주시니까 좋네요 ㅎㅎ

    찬성: 1 | 반대: 0


댓글쓰기
0 / 3000
회원가입

사실 게임 프로그래머 리더십에 대한 이야기 연재란
제목날짜 조회 추천 글자수
공지 잠시 휴제하려고 합니다. 22.07.24 116 0 -
공지 연재 주기를 변경하려고 합니다. 22.07.10 52 0 -
공지 다음 주(6월 20일~) 연재는 이번주 주말에 몰아서 하겠습니다 22.06.17 262 0 -
50 리펙토링 2 +2 22.07.17 169 14 12쪽
49 리펙토링 1 22.07.10 170 9 11쪽
48 사실 진수 이야기는 여기서부터 22.07.08 157 10 11쪽
47 나만의 빽 만들기 3 22.07.07 159 9 11쪽
46 나만의 빽 만들기 2 22.07.06 177 12 12쪽
45 나만의 빽 만들기 1 22.07.05 168 9 11쪽
44 나만 몰랐던 고백 22.07.04 193 12 11쪽
43 고구마는 최대한 짧게 22.07.01 220 15 11쪽
42 피싱 vs 피싱 2 22.06.30 211 13 12쪽
41 피싱 vs 피싱 1 22.06.29 216 12 11쪽
40 임아린의 노하우 2 22.06.28 230 13 12쪽
39 임아린의 노하우 1 +1 22.06.26 261 14 11쪽
38 파트장 변화시키기 2 +1 22.06.19 273 14 12쪽
37 파트장 변화시키기 1 22.06.19 299 14 11쪽
36 민희 씨와 의지 +2 22.06.18 288 16 12쪽
35 고주영과 최적화 4 +2 22.06.18 302 16 11쪽
34 고주영과 최적화 3 +2 22.06.17 298 20 11쪽
33 고주영과 최적화 2 +1 22.06.17 293 21 12쪽
32 고주영과 최적화 1 +1 22.06.16 296 15 11쪽
31 적응 8 +2 22.06.15 298 16 11쪽
30 적응 7 +3 22.06.14 305 19 11쪽
» 적응 6 +9 22.06.13 361 17 11쪽
28 적응 5 +3 22.06.10 307 19 12쪽
27 적응 4 +1 22.06.09 297 20 12쪽
26 적응 3 +3 22.06.08 310 19 12쪽
25 적응 2 +2 22.06.07 316 19 12쪽
24 적응 1 +2 22.06.06 327 22 9쪽

구독자 통계

신고 사유를 선택하세요.
장난 또는 허위 신고시 불이익을 받을 수 있으며,
작품 신고의 경우 저작권자에게 익명으로 신고 내용이
전달될 수 있습니다.

신고
비밀번호 입력