inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Memory Pool #2

Memory Pool #2에서 Use-After-Free 문제 관련 질문입니다!

182

literate_t

작성한 질문수 68

0

안녕하세요!

개인적으로 메모리 관련한 수업..굉장히 잘 듣고 있습니다.
감사합니다!!

다름이 아니라 우리가 수업에서 제작한 코드는 47:33에서 언급하셨듯 Use-After-Free 문제가 남아 있는데요.

이 부분이 마소 성님들이 만든 SLIST 시리즈를 사용하면 해소가 되는 부분일까요? 아니면 SLIST와는 관련 없는 설계/구조적인 문제일까요?

관련해서 설명하실 때 직접 만들어서 사용하지 말라고 하신 부분에서, 마소의 SLIST는 이 문제를 어떻게 다루었는지 궁금증이 생겼습니다.

네트워크 MMORPG windows-server

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. literate_t님

Use-After-Free 문제는 주로 메모리를 해제한 후에도 해당 메모리를 참조할 때 발생하는 문제로, 프로그램의 불안정성을 초래할 수 있습니다. 이와 관련하여 Microsoft의 SLIST 구조는 이중 연결 리스트와 같이 메모리 블록들 간의 연결 구조를 사용하여 이를 일부 해결할 수 있습니다. SLIST는 ‘Lock-Free’ 단일 연결 리스트를 제공하여 성능을 개선하고, 메모리 소비를 최소화하며, 사용 후 해제된 메모리를 안전하게 관리하는 방법을 제공합니다.

SLIST와 관련된 구체적인 설명은 아래의 관련 질문을 통해 추가적으로 확인하실 수 있습니다:

  1. 메모리풀, 오브젝트풀 강의 관련 궁금한 점이 있습니다. - 이 링크에서는 메모리 풀 및 관련 구현 사항에 대한 토론이 진행되고 있으며, 테스트 방법에 대한 논의도 포함되어 있습니다. 이를 통해 Use-After-Free 문제 해결의 서브 구조로 활용될 수 있습니다.

  2. 메모리 크기가 큰 경우 풀 안하는 이유? - 메모리 풀의 사용 여부에 대한 설명과 더불어, SLIST와 같은 메모리 관리 기법이 큰 데이터 처리 시 어떻게 활용될 수 있는지에 대한 논의가 이루어집니다.

SLIST 및 유사한 고급 메모리 관리 기법은 실무에서 Use-After-Free와 같은 메모리 관리 이슈를 처리하기 위한 유용한 도구가 될 수 있습니다. SLIST는 이러한 문제를 해소할 수 있는 한 가지 방법일 수 있지만, 대부분의 경우 이러한 문제를 피하기 위해서는 코드 설계와 구조에 대한 신중한 검토와 테스트가 필요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Memory Pool에서 오버플로우 질문입니다.

0

63

2

포토폴리오 및 진로 관련하여 고민입니다.

0

112

1

포토폴리오 관련 고민입니다.

0

62

1

실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.

0

82

2

성능 테스트 결과

0

103

2

게임 서버 Stateful, Stateless 진로 고민

0

121

1

WaitOnAddress와 Sleep의 차이 질문

0

83

1

궁금한거 있습니다.

0

82

2

JobTimer 구동 스레드

0

107

2

TryPop() 동작 관련 질문

0

81

1

로드맵 C#서버 C++서버 방향성 질문

0

148

2

스레드 id를 출력할떄 메인스레드 id도 출력되나요?

0

73

1

생명주기를 위한 의도적 복사

0

86

2

락프리의 실무에서 사용 질문

0

139

2

32bit threadID와 16비트 상위 WriteFlag에 대해

0

101

2

mutex와 sleep 차이점

0

117

1

실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다

0

152

2

Stomp Allocator의 Release함수에 대한 질문입니다.

0

96

1

공부법 관련해서

0

183

2

MakeShared 함수 관련

0

114

1

지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.

0

144

2

운영체제관련 질문입니다

0

131

1

send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.

0

117

2

메모리 풀 질문있습니다.

0

124

1