인프런 커뮤니티 질문&답변
[Session#2] 강의
작성
·
338
1
안녕하세요. Session2 강의에서 Send구현을 했는데 막힌부분이 있습니다.
Send에 Lock을 걸어주셨는데 그 이유가 Send를 여러 쓰레드가 호출해서 RegisterSend() 함수가 동시다발적으로 실행되면 안되니 Lock을 걸어준다고 이해했습니다.
그런데 궁금한게 지금 상황이 좀 이해가 안되는것 같습니다. 제가 이해한 상황은 아래와 같습니다
현재 Session은 DummyClient에서 Accept한 세션소켓으로 주고 받고 하는중이다.
(OnAcceptHandler 함수가 실행되고 해당 세션소켓을 인자로받아 Session.Start를 해줬으니깐.)>
서버가 Send를 여러 쓰레드로 해서 해당 세션소켓으로 정보를 보내는 상황????
서버에서 멀티쓰레드로 Send를 사용해서 정보를 보내는 건가요?
퀴즈
네트워크 기초 이론 학습이 서버 프로그래밍에 중요한 이유가 무엇일까요?
서버 하드웨어 선택에 도움이 되어서
동시 접속 처리 및 해킹 방어 등 안정성 확보를 위해
데이터베이스 설계를 더 효율적으로 할 수 있어서
클라이언트 UI 디자인 실력을 향상시켜서
답변 2
2
그 부분은 나중에 컨텐츠를 만들어 봐야 감이 잡힙니다.
Session은 말 그대로 클라의 대리인 정도라고 볼 수 있습니다.
특정 클라에게 패킷을 보내려면 Session을 통해 보내야 하는데,
온라인 게임에서는 보내야 할 정보가 굉장히 많습니다.
주변에 NPC, 플레이, 몬스터가 이동하거나 공격하거나,
하는 모든 행동들을 알려야 하는데
Send 하는 게임 로직이 이리 저리서
동일한 클라를 대상으로 호출될 수 있습니다.
ex) Player 주변 몬스터가 움직여서 패킷 보내야 함
ex) 우편물이 도착해서 해당 Player한테 패킷 보내야 함
...
0





