너무 복잡해지고 어지러워져서
코어부분을 그냥 Lib로 빼버려서 완전히 분리시켰다.
라이브러리 생성법
ServerCore > 속성 > 구성 속성 > 일반 > 출력 디렉터리
$(SolutionDir)\Libs\$(Configuration)\
이렇게 하면 lib파일이 해당경로에 추출된다
프로젝트 위치 상위에 Libs폴더 안에 디버그/릴리즈 로 생성됨
ChatServer > 속성 > 링커 > 일반 > 추가 라이브러리 디렉터리
$(SolutionDir)\Libs\$(Configuration)\
똑같은 경로로 맞춰서 lib를 포함시킨다
ChatServer > 속성 > 링커 > 입력 > 추가 종속성
ServerCore.lib
실제로 포함시킬 라이브러리를 지정해줘야한다
라이브러리로 이동하면서 Iocp부분을 좀 리펙토링했다.
이름도 수정하고, 변수명도 억지로 뭔가 맞췄는데 오히려 가독성이 떨어지는것같아서
전회사에서 쓰던 m_iNum 식으로 바꿨다.
쓸데없는 Shared남발로 오히려 코드가독성이 떨어지는것같아서
Core대부분 익숙한 raw ptr로 수정하고
SendBuffer / RecvBuffer +오버랩드를 세션(이전Client)이 들고있게하고
Send시 버퍼에 쌓고 버퍼에 쌓인만큼 1회씩 보내기,
하지만 쌓이는건 버퍼에 계속 쌓이게 해뒀으니 쌓인만큼 보내는것이다.
익숙한 링버퍼를 이용해서 SendBuffer를 리펙토링 하였음.
성능이런거는 구현이 되고나서야 측정을 하는것으로 하고 처음부터 다닥다닥 붙이니까
오히려 가독성뿐아니라 코드를 이해하는데도 어려워져서 정리하면서 수정했다.
서브프로젝트 하나 더파서 ChattingServer를 테스트 완료했고
내일은 GameServer리팩토링 하면서 구조를 쌓아가봐야겠다.
데이터 파싱도 우선 테스트를 위해 패킷매니저 일정부분 뜯어서 간단히 사용했다.
수정후 채팅서버 / 기존 클라이언트
현재 서버 구조상태
여기서 확장을 좀더 한다고 생각을 하면 분산서버까지도 가능하지 않을까? 싶다.
어느정도 구조가 잡혀서 Game이 잘흘러가면
채팅서버는 분산서버로 한번 해볼까 한다.
'학습 노트 > 개인학습' 카테고리의 다른 글
250614 토요일 @ 48일차 (0) | 2025.06.15 |
---|---|
250611 수요일 @ 45일차 (0) | 2025.06.12 |
250609 월요일 @ 43일차 (0) | 2025.06.10 |
250608 일요일 @ 42일차 (0) | 2025.06.09 |
250607 토요일 @ 41일차 (0) | 2025.06.08 |
댓글