버그로 인한 메모리 오염, 즉 예상되지 않은 메모리 값 변경, 참조 등에 의해서 발생한다.

 

원인을 다양한데 대부분 안전하지 않은 함수의 사용, 잘못된 함수 사용, 잘못된 포인터 사용 등 프로그래밍 실수로 인해서 발생한다.

 

실수로 사용중인 메모리를 다른 엉뚱한 곳에서 메모리를 덮어쓴다거나 들어가지 말아야할 메모리 주소에 데이터가 들어가는 것을 의미한다.

 

 Memory corruption이 발생했을때 이 메모리에 잘못된 값이 쓰여졌다는 것은 바로 알 수 있지만 이 잘못된 값이 어디서 온 것인지 알기가 쉽지 않다.

 

왜냐하면 사용중인 메모리에 다른 값이 쓰여졌을 당시에는 문제가 발생하지 않고 이후에 덮어씌워진 메모리를 다시 사용할 때가 되어서야 에러가 발생하기 때문이다.

 

만약에 운이 나쁘다면 디버그 중에는 그 잘못 쓰여진 메모리를 다시 사용하는 일이 발생하지 않다가 프로그램을 릴리즈하고 출시한 이후에 실제 버그가 발생하는 경우가 있을 수 있다.

 

그렇게 되면 구매자는 언제 터질지 모르는 시한폭탄같은 프로그램을 구매하게 된 것이고 곧바로 화를 내며 환불을 요구하게 될 것이다.

 

출시한 이 후에야 버그 리포트를 받은 프로그래머 역시 멘탈이 무너질 것이 분명하고... 이 문제를 해결하는 것은 매우 힘들 것이다.

 

그리고 멀티 쓰레딩을 하면서 여러 쓰레드에 한 메모리에 접근하는 상황이면 더욱 복잡하다.

 

포인터를 잘못 다뤄서 이런 문제가 발생하는 경우가 많기 때문에 항상 포인터를 다룰 때는 조심해야 한다.

 

 

 

[유니티 어필리에이트 프로그램]

아래의 링크를 통해 에셋을 구매하시거나 유니티를 구독하시면 수익의 일부가 베르에게 수수료로 지급되어 채널의 운영에 도움이 됩니다.

 

에셋스토어

여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다.

assetstore.unity.com

 

Easy 2D, 3D, VR, & AR software for cross-platform development of games and mobile apps. - Unity Store

Have a 2D, 3D, VR, or AR project that needs cross-platform functionality? We can help. Take a look at the easy-to-use Unity Plus real-time dev platform!

store.unity.com

 

Create 2D & 3D Experiences With Unity's Game Engine | Unity Pro - Unity Store

Unity Pro software is a real-time 3D platform for teams who want to design cross-platform, 2D, 3D, VR, AR & mobile experiences with a full suite of advanced tools.

store.unity.com

[투네이션]

 

-

 

toon.at

[Patreon]

 

WER's GAME DEVELOP CHANNEL님이 Game making class videos 창작 중 | Patreon

WER's GAME DEVELOP CHANNEL의 후원자가 되어보세요. 아티스트와 크리에이터를 위한 세계 최대의 멤버십 플랫폼에서 멤버십 전용 콘텐츠와 체험을 즐길 수 있습니다.

www.patreon.com

[디스코드 채널]

 

Join the 베르의 게임 개발 채널 Discord Server!

Check out the 베르의 게임 개발 채널 community on Discord - hang out with 399 other members and enjoy free voice and text chat.

discord.com

 

반응형

+ Recent posts