서버 공부를 하고싶은데 어디서 부터 시작해야할지 모르겠습니다.
회사에서 리눅스를 공부를 하라고하네요!
서버는 심오? 비밀 스러운것? -> NO!
클라는 학원도있고 뭐 해서 조금 대중적인거 같은데
서버는 아직 대중적이지는 않은거 같다.
다른 컴퓨터에서 연결이 가능하도록 대기 상태로 상시 실행중인 프로그램이다.
ex) 영업중인 식당
-> 손놈이 올 수 있도록 식당을 열고 대기중
-> 손놈이 오면 식당 규칙에 따라 메뉴 제공
프로그램을 뜻하는 경우도 있고 프로그램을 실행중인 컴퓨터를 말하는 경우도 있지만
그런게 크게 중요하지는 않다.
1. Web Server(aka, HTTP Server...)
ex) 맥도날드 같은거
1-1 테이크 아웃 전문 포장 식당
1-2 손놈이 음식을 받아서 떠나면, 그 이후로는 연락이 끊긴다.
1-3 질의 응답 형태
2. Game Server(aka, TCP Server, Binary Server, Stateful Server...)
2-1 일반식당
2-2 서빙 직원이 와서 손놈에게 물어볼 수도 있고
2-3 손놈이 추가 주문을 하기도 하고
2-4 실시간 Interection이 있다!
Take Out 포장 전문
드물게 정보를 요청/갱신 한다.
실시간 Interection이 필요하지 않다.
식당에서 손놈에게 먼저 접근을 할 일이 없다(<- 손님 물 드릴까요?)
주문 후 손놈이 바로 떠나면, 손놈의 상태를 당분간 잊고 지낸다(Stateless)
우리가 클래시 오브 클랜이라는 SNG게임을 예로 들어서 생각을 해보면은
실제로 게임이 진행이 된다음에 뭔가 랭킹 시스템을 만들기 위해서 결과물만 툭! 던져주고,
저장한다음에 결과만 불러오면은 끝남.
이렇게 단순하게 한번만 교류를 하는 경우에는
Web Server를 사용하면 편리하게 구현을 할 수 있다.
그리고 만약 클릭커 게임을 만드는데 최종적으로 랭킹을 관리를 하고싶다라고 할때
하나의 게임이 완료가 되었으면, 결과물을 보낼 때도
당연히 Web Server를 사용하게 될 것이다.
Web Server는 단순히 게임서버에 국한되지 않고 웹 서비스를 만드는데 사용.
-> 구글, 아마존, 네이버 등등
처음부터 만드는 경우는 없고, 프레임 워크를 하나 골라서 사용
Web Server는 홈페이지를 만들때 가장 먼저 사용이 되었고 발전이 되었다.
이제 그 기술이 워낙 훌륭하고 여러방면으로 사용을 할 수 있으니까
이제 그것을 우리가 게임쪽으로 끌고와서 사용을 하게 되는 것이다.
그리고 웹이 워낙 돈이 많이 되다보니까 -> 프레임 워크도 많이 존재함
우리는 C#을 사용을 하니까 ASP.NET을 통해서 알아 볼 것이다.
아무튼 웹서버는 요청/응답 정도의 간단한 경우에만 사용을 하는 것이다.
스타나, 와우같은것은 실시간으로 유져와 게임을 하는 것이다.
내가 마린을 움직였으면 움직인 마린이 상대방한테도 똑같이 움직여야 할테고
언디 레이드같은 경우도 내가 스킬쓰면 다른 유져들도 똑같이 내가 스킬을 쓰는 것이 보여야함.
Game Server의 경우는 Web Server와는 다르게
게임/장르 에따라 요구 사항이 너무나도 다르다.
EX) 회전초밥 / 삼겹살 / 호텔 뷔페 / 국밥
그럼 무엇을 고려해야 할까?
이번파트에서 살펴 볼 것들은 특히나,
멀티쓰레드랑, 네트워크, 서버구조 이렇게 세가지를 집중적으로 살펴 볼 것이다.
DB는 말그대로 데이터를 저장을 하는 것인데, 이것은 다다음 파트에서 할 것이고
이렇게해서 이해를 하셔야 할 부분은
MMO_RPG를 만든다고 했을 때
가장 핵심이 되는 부분은 "게임 서버" 부분이기는 하다.
이녀석이 사실은 모든 컨텐츠를 돌릴 것이기 때문에
게임서버가 80% 확률로 중요하게 활용이 되겠지만
그렇다고 해서 웹서버가 온라인 게임을 만들때 아예 사용이 안되는 것은 아니다.
웹서버에 만들어진 좋은 기능들이 많기 때문에 굳이 처음부터 다 만들지 않고
처음에 인증을 하거나 로그인 하는 부분은 웹서버로 만들어 두고
그 다음에 한번 인증을 통과를 하면은
그다음으로 게임 서버로 넘어와가지고
이제 게임이 실행이 되도록 만들어 주는 경우가 굉장히 많은데
그렇기 때문에 조금 피곤하기는 하지만
"서버 프로그래머"라고 하면은 이런 웹서버나 게임서버를
반반씩은 어느 정도를 이해를 하고 있어야지만
여러가지 프로젝트를 진행하는데 도움이 된다는 말이 된다.
물론 이게 진짜 대기업이라고 했다면은
담당하는 파트가 확실히 정해져있기 때문에
MMO파트에 들어가게되면은
거의 게임서버밖에 안다루게 될 것이다.
platform팀에서 대부분 그런 작업을 도와주게 되겠지만
나는 그게 아니라
인디게임을 생각을 하고 혼자 이런저런 작업을 다해보고 싶다라고하면은
이제 웹에 대한 지식도 필요로 하게 된다는 말이다.
그런데 여러분이 딱히 MMO에 관심이 없다라고 하더라도
서버는 한번씩은 공부를 하면 굉장히 도움이 많이 되는 부분이 무엇이냐 하면은
예를 들어 랭킹 시스템을 만들고 싶다라고 가정을 해보자
실시간일 필요는 없지만
애니팡같은거 보면은 내 친구들의 순위를 볼 수 가 있는데
그런거는 사실 게임서버까지 갈 필요 없이
웹서버랑 DB에 대한 지식만 있으면 맨들 수 있는 부분이다.
그런데 어느상황에서 무엇을 사용을 할지 알고싶으면 한번씩은 모든 코스를 다 밟아 야지만
그런 지식들이 생길 것이다.
그래서 Part4, 5, 6 웹서버,게임서버 DB를 다루게 될 것이다.
Over time, Oliver began to experiment with various betting systems, such as the Fibonacci sequence and the Labouchere method. He https://luckytigercasinopokies.com/ kept a close eye on the wheel's patterns and learned to adjust his bets based on observed trends. His methodical approach led to a more consistent winning streak, and Oliver’s confidence grew with each successful session. The journey from a roulette novice to a strategic player highlighted how a mix of patience, observation, and strategic adjustments could enhance one’s gaming experience and success.