What! Studio : Day 1) "<AxE> 클라이언트, 서버 개발 포스트모템" 감상 - 김웅룡
Created by JIN XIONGLONG [woongryong] on 4월 24, 2018
클라
포로토타이핑 빠르게 하기 위해 Unity 로 갔다.
"개발 단계에서 하드코딩, 코드복붙 등 코딩 안티패턴을 남발했다. 결과 프로토타입 코딩 속도가 엄청나게 잘나왔다. 잘한 것 같다."
- 필자 감상: 기술부채의 극도로 공격적인 사용이 "스타트업" 프로젝트에는 득보다 실이 확실히 많이 클 수 있구나. 부채는 어디서나 적절하게 사용하는 사람한테는 좋은 무기!
"기술 부채 상환도 전문 담당자가 있고, 피처 담당자도 같이 병렬로, 지속적으로 상환(리팩토링)에 노력했던게 잘한 것 같다."
"Unity 는 버그가 참 많다."
"Android 에만 출시할지언정 Xcode 는 깔라. Xcode 의 디버깅 / 프로파일링 툴 참 좋다."
오토 있는 게임이라 유저들이 오래 돌리는데, IL2CPP 의 GC인 Boehm GC 가 좋지 않아서 메모리 파편화가 심해서 게임을 오래 돌려두게 되면 클라가 점차 뻗는다. 유니티 엔진 선진화를 기대한다고 함.
서버
서버는 C++.
런칭 초기 장애 없었다 자랑.
"빠른 개발 / 안정적인 개발" 모순관계에서, 당연히 어려운 문제이지만, 회사에 "전문 지원 조식" 이 있어 가능했다고 말했다. "게임 개발팀은 게임 개발에 집중" (100% 일치 인용.)
듀랑고 서비스 파트의 작용 / 가치를 재조명?
- 듀랑고 팀 합류 전 스타트업에서 개발하던거라 많이 공감. (더 이상 자세한 정보는 생략)
SSDT (SQL Server Data Tools) 크게 대서특필 칭찬. 신세계였다고 함. 담당자의 말을 인용해 "구석기시대에서 신석기시대 진입한 느낌." (인용 오류시 정정요망.)
- 소스 코드 버전과 스키마 버전 불일치시 실행 거부하는 기능.
- 해시 코드로 SQL Server 스키마 버전관리.
- 알고 보면 Alembic 같은.
- 이 해시코드가 Alembic 버전 코드 같은건지 아니면 DDL 문자열 해싱인지 (e.g. SHA1) 에 따라 Alembic 이 더욱 유사한 비교일지 아니면 듀랑고 서버 Couchbase Index 버전관리(해시 기반 맹글링)가 더욱 유사한 비교일지 알 수 있을듯. (SSDT 좀 더 공부해봐도 알 수 있을듯) (아시는 분 정정 요망.)
- 자동 관리해주는 것도 아니고 이 실행 거부(를 통한 alert) 기능 만으로도 라이브에 터질번한 이슈를 잡아줬다고 함.
- 그리고 소스코드와 스키마 버전을 따로 관리했다면 발생하는 버전 불일치가 라이브에서 돌이키기 어려운 큰 문제로 번질 수 있음을 어필.
- 안그래도 요즘 듀랑고 서버 Elasticsearch 스키마 수정한 사람이 버전 넘버를 올리는걸 깜빡한 (몰랐던) 케이스가 있어서, ES 스키마도 Couchbase Index 처럼 해시 기반으로 바꿀까 고민중이었는데, 더욱 더 진지하게 고민하게 됨. 단일서버화 작업이 끝나면 바로 할지도 모른다.
서버 장애 원인으로 C++ 변수 오타 (헝가리언 네이밍 프리픽스 누락) 였었던 적을 대표로 스샷 올리셨다.
- C++은 정적 언어이기에 정적 분석기를 쓰셨으면 사전에 잡혔을지도 라는 생각 들었다. (C++전문가 아님.)
- 왓스튜디오 합류후 개인적으로 얻은 2대 깨달음 중의 첫번째가 "강력한 도구의 힘"이다.
Document generated by Confluence on 5월 02, 2019 16:24