Published on

(지구방위대 프로젝트) 처음부터 시작하는 서버 구축

Authors
  • avatar
    Name
    유사공대생
    Twitter

개요

게임 개발을 하는 친구가 프로젝트를 하는데 온라인 서버가 필요하다고 연락이 왔습니다. 저도 스프링을 처음부터 끝까지 짜본 적이 없어서 이번 기회를 통해 데이터 베이스 연결, 도메인 테이블, 레이어 설계를 모두 진행하려고 합니다. 개발 스택은 스프링 부트, 데이터베이스는 MySql, 인프라는 AWS ec2를 사용하여 구축할 예정입니다.

친구와 충분히 회의를 하고 지금 기본적인 설계와 인프라는 구축이 되어있는 상태입니다. 그래서 테이블 설계에 일주일이 걸렸는데 대략 이렇습니다.

image

게임 아이템이 생각보다 복잡했는데, 각각의 게임아이템은 이름이 같더라도 각각의 고유 id값을 가지고 있습니다. 그래서 아이템을 생성할 때도 일단 직접 일일히 해줘야 할 것 같습니다.(추후에 다른 방법이 있기를 바랍니다........)

유저-인벤토리

유저당 하나의 인벤토리를 가질 수 있어서 일대일 맵핑을 하였습니다. 인벤토리에서 아이템을 리스트로 불러올 수 있게 하였습니다.

인벤토리-아이템

일단 한 인벤톨리에 여러개의 아이템이 있어서 일대다 매핑을 하였습니다. 그리고 아이템의 종류가 6가지나 있어서 각각을 상속(식별)관계로 매핑, 그리고 종류는 Enum 타입으로 정의하였습니다.

유저-스테이지, 유저- 기본스탯, 유저-총스탯

유저가 스테이지를 어디까지 클리어했는지 알기 위해서 상속관계로 정의하였습니다.

총스탯은 아이템에 있는 스탯을 더해서 계산해야 하기 때문에 따로 빼두고, 백엔드에서 처리해서 보내줄 예정입니다.(솔직히 이정도까지 안해도 되는데, 이건 게임쪽에서 해야되는거 아닌가,,?? 아 몰라 일단 하고 나중에 시키자)

상점은 고유하게 하나만 있게 할 생각인데, 지금 보니까 조금 잘못 매핑한것 같기도 합니다.(추후 변경할 예정, 인벤토리에 연결할 게 아니라 상점용 인벤토리를 따로 만들어야 할 듯) 아니면 생각하고 있는 재미있는 방법이 NginX를 사용해서 상점 서버를 따로 만들어서 백엔드끼리 통신을 하는 것도 나쁘지 않을 것 같다는 생각입니다.