공부겸 온라인 게임 시스템을 만들어 보고있습니다.
롤처럼 로비프로그램,게임프로그램 이렇게 나눠서 개발하고 있구요
로비에서 파티생성후 파티장이 게임시작 누르면 파티장이 리슨서버 호스트가되어 게임을 생성하고 파티원들은 리슨서버 클라가되어 들어가는 방식입니다.
여기서 고민이 되는게, 지금 만든 로비프로그램의 역할은 채팅, 파티원모집과 같은 커뮤니케이션 기능만하고있습니다.
그런데 게임이 끝난뒤 결과를 db에 갱신해야할일이 생기는데
이것도 로비서버에 보내서 처리하자니 하나의 서버가 너무 많은 기능을 담당하는게 아닌가 싶어서 로비서버와 더불어 전적관리서버 프로그램도 하나 만들어야하나? 하는 생각이 들어서 질문 올려봅니다.
쓸데없이 말이 길어진것같아서 죄송합니다, 혹시 이부분에 대해서 행님들은 어떤생각을 갖고계신지 궁금합니다
- dc official App
일단 너가 필요한 개념은 스케일다운을 할 수 있는 능력이 필요한거 같애. 초보일수록 보통 쓸대없는 스케일업을 많이해. 난 이것을 이렇게 표현해 "처음부터 아이언맨을 만들려고 하고 있군"
- 하나의 서버에서 다 개발할 수 있는데. 미래를 걱정하며 초반부터 이것저것 나누고 분리를 미리시키는 생각 ( 도커도 쓰고, 도메인도 나누고, 기능별로 다 분리시키고, 백엔드도 분리시키고, 프레임워크도 쓰고, 레벨별 여러 언어를 쓰고, 트레픽관리 서버도 두고, 보안서버들도 다두고 ) 그런것을 최대한 뺄수 있는 사람일 수록 고수야. 더할수록 고수가 아니라. 결론적으로 그것을 프로젝트가 작은거부터 점점 커진다는 생각으로 일단은 가장 작게 결과물을 도출하는것이 가장 중요해. 나누고 분리하는 것도 그떄부터 하나씩 재구현을 해가며 업그레이드 시켜나가는거야.
좋은말씀 정말 감사합니다, 사실 전부터 덩치를 너무 불려나가고있지않나 싶은 고민은 들고있었는데 이렇게 조언해주시니 머리가 약간 뚫리는 기분이네요... - dc App
사실 90%이상의 초보개발자들이 저지르는 실수야~. 너만 그런게 아니라... 그런데 잘 생각해봐. 페이스북이 막 프레임워크도 쓰고 백엔드 분리시키고 그렇게 다 쓰면서 완성했을까? 일단 통으로 개발하고 분리할꺼 분리하고 그렇게 업그레이드 시켜나간거야. 그부분을 잘 이해한다면 넌 다른 초심자보다 하루 빨리 초보 개발자를 탈출하고, 남들처럼 붕뜬 실력보다. 실제 결과물이 많이 존재하는 개발자가 될수 있어.
개발은 사용한 "기술"이나 "스케일"이 아니라, 구현된 "기능"에 집중되어야 한다.