본 프로젝트에서는 Smart Contract를 응용하여 Serverless Architecture DataBase를 구현해보았습니다.
고전적인 Server-Client구조에서 발생하는 게임 내 재화 문제의 원인 중 하나는 Server와 Client사이의 동기화 시점에 의한 문제였습니다.
플레이어의 모든 순간을 매번 Server에 동기화할 순 없기 때문에 이를 해결하기 위해선 개발자의 섬세한 동기화 시점 선택을 요구했습니다.
이러한 부분에 있어서, ’공개 장부’라는 블록체인의 특성과, ’프로그래밍 가능’이라는 Smart Contract의 특성을 이용한다면 동기화 시점에 대한 고려가 필요없는 DataBase Server의 역할을 구현할 수 있지 않을까라는 궁금증을 가지고 개발을 시도해봤습니다.
프로젝트 진행 과정에서 전반적인 설계와 Server-Client간의 통신을 주로 구현했는데, Rest 방식을 이용하여 통신을 구현한 것이 인상적이었습니다.
또한, 처음으로 프로그래밍 가능한 동료들과의 협업이었기 때문에, 세심하게 상하위 설계를 마치고 실개발에 들어간 것이 흥미로운 경험이었습니다.
게임 자체의 완성도가 중요한 것은 아니었으므로, 간단하게 아이템 구매, 선물, 게임 기록 업데이트 3가지 상황만 가정하여 구현했습니다.
상위 설계의 경우, 다른 프로젝트나, 개인적인 개발 중에도 여러번 진행해봤지만, 각 객체의 기능과 Interface를 미리 설계하는 것은 생각보다 어려운 작업이었습니다.