게임 서버쪽 공부하시는 분들이라면 모두 웬만한 분들은 아실 Rookiss선생님의 강의이다.
C++쪽 서버 강의도 있는데, 지금 만들고자 하는 게임이 그리 서버쪽에 큰 포퍼먼스를 기대해야하는 종류가 아니어서 C#을 공부할 겸 C#강의를 듣고있다.(다음 습작은 C++서버 기반으로 만들 것이다.-이것도 높은 포퍼먼스가 필요 없지만 연습용이다.-)
C++은 이미 한번 들은 적이 있는데 약 1년 전이어서 기억이 가물가물하다.
그래도 직업이 이쪽인데 당연히 큰 틀은 기억하고 있고, C++과 C# 둘 다 비슷한 부분은 많다.
특히 오늘 들었던 '멀티쓰레드'부분도 이미 C++에서나 여기저기서 많이 치였던 경험이 있는 부분이다.
그래도 굳이 다시 듣는 것은 중요하고 혹시 잊어버린 부분이 있나 싶어서 인데, 아직까지 잊어버린 부분은 없는 것은(살짝 졸립고 지겨운 감이 있다는 것은) 다행인 듯했다.
강의 내용은 간단하게 '싱글쓰레드'와 '멀티쓰레드'의 차이 - 프로그램은 싱글쓰레드를 가정하고 작동한다 - 때문에 멀티쓰레드를 사용하려면 그에 맞는 조정이 필요하다. 정도가 되겠다.
(멀티쓰레드-락-은 1. 강의에 있고. 2. 다른 블로그에도 자세히 나와 있으며. 3. 그리 중요하게 생각해야할 파트가 아니라 판단. 하기 때문에 자세히 서술하지 않는다.)
멀티 쓰레드 문제는 생각보다 찾기 쉽지만, 만들때나 유지보수 할 때 굉장히 사람의 신경을 많이 거슬리게 하는 부분이다.
'여기선 당연히 필요하지!' 하는 부분은 성능이 살짝 고민되서 락 범위를 줄여보고, '여긴 당연히 필요 없지!' 하는 부분은 뭔가 걱정이 되서 한번 더 보고 '정말 필요가 없나?' 하고 고민하게 된다.
물론 최신 서버는 JobQueue를 적극적으로 사용해 락을 잘 사용하지 않지만, 옛날 게임 유지보수는 좀 힘들었다.
락이란 뭔가 쓰면 쓸수록 성능 저하나 유지보수의 문제로 멀리하게 되는 녀석이지만, 급할 때 구원해줄 튼튼한 동아줄 같은 녀석이란 생각이 든다.
다만 사람 특성에 따라 좀 다를지도 모르지만 최신 게임에선 많이 사용되지 않는 녀석이니 한번 실습하고 가볍게 넘기는 것도 나쁘지 않다.
마지막으로 락의 성능에 관한 본인에 대한 생각은 요즘 PC의 성능이 워낙 좋기 때문에 락을 떡칠한 결과 멀티쓰레드의 가면을 쓴 싱글쓰레드(락을 사용할 때 가장 주위해야 할 것!)가 아닌 이상 성능에 그리 문제는 가지 않을 것이다.
'C/C++/C#' 카테고리의 다른 글
C# 게임 서버 공부(6) (0) | 2024.11.19 |
---|---|
C# 게임 서버 공부(5) (2) | 2024.11.18 |
C# 게임 서버 공부(4) (0) | 2024.11.17 |
C# 게임 서버 공부(3) (0) | 2024.11.16 |
C# 게임 서버 공부(2) (2) | 2024.11.15 |
최근댓글