https://arca.live/b/alchemystars/96463853

이전글 보고 오면 좋음


들어가기 가기 앞서 난 게임 쪽 개발자는 아님

또 투어독 내부 인원도 아니고 관련 소식을 아는 것도 아니지만, 프로그램 개발 팀 내 으레 있는 일 같아서 끄적여 봄


현재 백야극광은 크게 2개의 버전으로 운영되고 있음

하나는 글섭 버전이고 하나는 중섭 버전

2개의 버전을 관리 할 때 가장 이상적인 방법은 뭘까?

바로 둘 중 하나를 다른 하나의 완벽한 하위 버전으로 만드는 방법임.

이해를 돕기 위해 거북이와 아킬레우스로 표현해보자


글섭은 거북이고, 중섭은 아킬레우스.

원 하나가 한번의 업데이트이며, 같은 색은 동일한 내용이라고 하자.

위에서 말한 이상적인 방법이란 다음과 같음.

글섭은 이전과 마찬가지로 계속해서 업데이트를 이어나가고, 중섭은 그 업데이트를 시간을 두고 하나씩 순서대로 적용.

즉 중섭은 항상 과거 버전의 글섭인 상태가 됨.(중섭이 글섭의 과거 리비전)

이렇게 했을 때의 장점은, 무엇보다도 안정성을 확보할 수 있음.

글섭과 중섭 간 변경점은 버그 수정 외에는 없기 때문에 운영하는 버전은 2개지만 사실상 하나의 버전 관리만으로 충분함(글섭)


근데 현재의 백팡은 어떻냐면

대충 이런 상태임.

이렇게 되면 중섭은 더 이상 글섭의 하위 버전이라고 할 수가 없음. 과거에 저런 상태였던 적은 없으니까.

업데이트 순서나 내용이 바뀐 시점부터 중섭은 따로 소스 코드 관리를 해줘야 하는 상황임.

이러면... 굉장히 할 일이 많아짐.

저 상태에서 중섭이 빨간색 업데이트를 하려고 코드를 넣는 순간 코드 충돌을 피하기 힘들고

버전이 2개니 테스트도 2배, 배포도 2배, 글섭엔 없던 버그도 중섭에 막 생기고...

심지어 저 보라색 같은 업데이트를 중섭 기반에서 작업하고 글섭에 넣으면 많이 골치아플 거임.(화살표가 반대로 가는거지)

아마 정련 적용 안되는 버그가 비슷한 흐름에서 생겼을 거라 추측함. 


돌아와서, 아니 그러면 그냥 아까 말한 이상적인 방법으로 하면 되지 않나요?

할 수 있는데, 그건 어디까지나 프로그램 관리 차원의 이야기지 운영과는 다름

이건 진짜 뇌피셜인데 아마 사업부에서 운영 지시가 내려왔거나, 아니면 개발진에서 공수 단축을 위해 업데이트 하나로 양 쪽에서 써먹으려고 했을 거 같음. 

전자면 어쩔 수 없는거고, 후자면 생각 잘못 한거라 본다.

그리고 아마 한번 해보고 느꼈겠지.

아! 좆됐다! 이거 빨리 하나로 합쳐야 한다. 안그러면 무조건 공수 부족해서 업데이트 못하고 달리기 시합이고 뭐고 다 죽게 생겼다.


아무튼 일단 일은 벌어졌고 어떻게 수습하느냐인데 방법은 크게 3가지 있음

1. 거북이는 세우고, 아킬레우스가 달린다.

가장 확실하고 가장 빨리 이 상황을 해결하는 방법임.

글섭을 위한 컨텐츠 개발을 잠시 멈춰두고, 그 시간 동안 중섭이 열심히 업데이트를 따라잡는거지.

그림은 저렇지만 어쨌든 코드 덩어리기 때문에, 결과적으로 같은 코드를 사용하게 되면 관리를 한 곳만 해도 됨.

한번 따라잡으면 그 뒤로는 하나의 버전으로 쭉 가면 되고.(물론 이런저런 추가작업이 조금은 필요 하겠지만)

이 문제의 가장 큰 단점은, 거북이가 할 게 없음. 그냥 계속 복각 이벤트나 핥으면서 이 시간이 빨리 끝나기를 비는 수 밖에...


2. 거북이가 천천히 가고, 아킬레우스가 존나 달린다.

글섭은 평시보다 조금 느린 템포로 업데이트를 진행하고, 그 사이 중섭이 주기를 빨리 해서 따라잡는 방법

1번보다 훨씬 유한 방법임.

한다면 아마 글섭 주기가 6~7주, 중섭이 2주 간격으로 달려야 할 듯?

근데 그러면 중섭 매출 꼴아박을텐데 이렇게 할까? ㅋ


3. 1번과 2번을 섞는다.

거북이는 가다서다 가다서다 하고, 아킬레우스는 달린다.

그림 또 그리기 귀찮아서 생략

1번과 2번을 적절하게 취하는 방법임.

예를 들어 글섭은 이벤트 2개 중에 하나는 복각으로 하고, 중섭은 계속 새 이벤트로 쭉 달리면 시간은 좀 걸려도 만남.

이러면 유저들은 중섭이나 글섭이나 크게 불만은 없을텐데, 개발진은 지금까지 해온 미친 똥꼬쇼를 년 단위로 더 할 수도 있음. 와!

저번 글에도 적어뒀지만, 추가 개발을 하면서 기존 코드 개선 하는 건 진짜 미친 짓임.


개인적으론 아마 3번으로 갈 듯? 개발진이야 1번이 제일 좋은데 사업부가 그걸 놔둘리도 없고... 2번은 언감생심이고

한 가지 걱정되는 건 또 글섭 중섭 동시 업데이트가 끼면 점점 해야할 일이 많아질 거라는 거 정도?

일이 하면 줄어야 되는데 느는 거 보면 개발자 입장에서 ㄹㅇ 현타 엄청 옴...

이번에 티나 이벤 복각하는 거 보고 한번 끄적끄적 해봤음. 별 일 없으면 좋겠다. 끗