목록전체 글 (113)
메피카타츠의 블로그
오늘은 이전에 계획했던대로 가비지 컬렉터의 작동 방식과, 가비지 혹은 GC Alloc을 줄이는 방법에 대해서 정리해보겠다. 가비지 컬렉터란? 가비지 수집 기본 사항 | Microsoft Learn 가비지 수집 기본 사항 가비지 수집기의 작동 원리와 최적 성능으로 구성하는 방법에 대해 알아봅니다. learn.microsoft.com 가비지 컬렉터에 대한 내용은 마이크로소프트 문서에 자세히 잘 정리되어있다. 요약해보자면, 가비지 컬렉터는 메모리의 할당과 해제를 관리해주기 때문에 개발자에게 편의성을 제공하며, 메모리 보안 또한 제공한다. 가비지 컬렉터는 메모리가 추가로 필요하거나, 프로그래머가 직접 호출할 때 실행되는데, 애플리케이션 루트에서 접근할 수 없는 개체들을 가비지로 간주하고 해당 메모리를 해제한다...

메모리 관리에 대한 탐구 (1) :: 메피카타츠의 블로그 (tistory.com) 메모리 관리에 대한 탐구 (1) CS 면접 관련 질문들을 공부하면서 스마트 포인터에 대해 찾아보게 되었다. 이와 관련해서 안에 쓰여져 있는 내용들 중 잘 모르는 것이나 궁금한 것들을 찾아 꼬리에 꼬리를 물다보니 꽤나 오랜 mepkatatsu.tistory.com 당연한 얘기일지 모르겠지만 가비지 컬렉터에 관한 내용들을 찾다보니 메모리와 관련된 내용으로 귀결되었다. 이전에 메모리 관리에 대한 탐구 (1)이라고 쓴 이후로 2를 안썼는데, '가비지 컬렉터에서 가비지란 무엇인가?' 라는 내용으로 스택 영역과 힙 영역을 중심으로 정리한 이 글이 2탄이 되겠다. 스택 영역/힙 영역 가비지 컬렉터 이야기를 하기 위해 스택 영역과 힙 영..

이전 글에서 다루었던 이 책에 처음 내용은 기초 필수 수학으로 시작한다. 그 내용 중에서도 가장 먼저 등장하는 것이 벡터이다. 유니티에서 벡터는 굉장히 중요하고 자주 다루는 개념이다. 위치를 나타내거나 이동, 회전, 다양한 부분에 사용된다. 책에서는 벡터의 개념이나 기본적인 연산 방법, 단위 벡터, 내적, 외적, 직교화, 위치 벡터, 마지막으로 DirectXMath 라이브러리의 벡터에 대한 내용을 다룬다. 기본적이고 찾아보면 나오는 내용들이기 때문에 따로 정리하지는 않고, 이런 내용들을 보면서 생각한 내용과 추가로 찾아본 것들에 대해서 적어보고자 한다. 같은 벡터라도 기준계가 다르면 좌표 표현이 달라진다는 것이다. ... 우리가 어떤 벡터를 좌표로 규정하거나 식별할 때 그 좌표가 절대적인 수치들이 아니라..

최근 일주일 간 무엇을 하면 좋을까 고민을 많이 했다. 향후 도움이 될만한 지식을 배우려고 이곳저곳 건드려봤는데 딱히 깊이 있는 공부를 하지는 못한 것 같다. 기존 프로젝트를 이어하기에는 팬게임의 한계로 인해 애매한 부분들이 있고, 새로운 프로젝트를 시작하기에도 중간에 끊길 가능성이 있어서 손을 대지는 못하고 있었다. 그러다가 오늘 중학교 시절 친구를 만나게 되었다. 우연찮게 프로필 사진을 보니 게임 개발을 하고 있던데, 주변 친구 중에 게임 개발자가 거의 없어서 굉장히 반가웠다. 중학교 때는 곧잘 어울려 다녔지만 졸업 이후로는 연락을 하지 않아서 거의 8년 만에 연락을 해봤는데, 다행히 친구도 굉장히 반가워했다. 친구는 군대에서 게임 기획을 하고, 그 기획을 바탕으로 창업 지원을 받아 현재 창업을 했다..

나에게는 자동차와 관련된 취미가 있다. 아버지의 영향을 많이 받은 취미인데, 아버지께서는 어렸을 적부터 자동차에 대해 관심이 아주 많으셨다. 젊은 시절 자동차 관련 잡지를 구독하시기도 하고, 고등학교 때 면허도 따시고 열심히 돈을 모아서 오토바이를 사셨다고도 한다. 구입한 다음 날 밖에 나와보니 누가 훔쳐갔다는 슬픈 이야기가 있긴 하지만, 오토바이 사고 등 흉흉한 이야기에 대해 많이 들은 나로써는 어쩌면 다행이었을지도 모르겠다는 생각이 든다. 그때 아버지의 심정은 이루 말할 수 없었겠지만 말이다. 나도 어릴 적에 아버지를 따라 밖에 나가 아파트 주차장에 주차된 차들을 보며 이름을 외우곤 했다. 어째서 이게 시작됐는지는 모르겠지만, 아버지께서 차 이름을 알려주시고, 이후 내가 알아보는 것이 기특해서 종종 ..

모바일 게임과 PC 게임 사이에는 큰 차이가 존재한다. 모바일 게임과 PC 게임의 차이는 어떤 것이 있는지, 이런 차이가 국내 모바일 게임 시장에서 어떤 형태로 나타나는지 나름대로의 생각을 정리해보고자 한다. 모바일 게임과 PC 게임의 차이 1. 플레이 환경 모바일 게임과 PC 게임 사이의 가장 큰 차이는 플레이 환경이라고 생각한다. 플레이 환경 차이의 첫 번째는 화면 크기이다. 점점 큰 화면을 가진 모바일 기기가 등장하고, 갤럭시 노트, 아이패드 등의 태블릿도 존재하지만 그럼에도 불구하고 모바일 기기는 휴대성이 중요하기 때문에 모니터의 크기를 넘기는 힘들다. 보통은 스마트폰만 가지고 있는 경우가 많기 때문에 모바일 게임에 비해서 PC 게임은 10배 이상 큰 화면으로 즐길 수 있다는 장점이 있다. 두 번..

Tucker님의 "게임 네트워킹의 이해" 영상을 시청한 내가 Race Condition이라는 것에 대해 내가 알고 있었던 내용은, 멀티 쓰레드 방식에서 공유 자원에 접근하는 순서에 따라 결과가 달라질 수 있다는 것이었다. 또한 해당 영상에서는 "Locking을 쓰다보면 서로 간에 경쟁이 심해져서 Race Condition이 발생한다" 고 설명을 해서 Lock을 건 상태에서 발생하는 문제라고 이해하고 있었다. 그렇기 때문에 Race Condition 문제를 어떻게 해결하느냐? 라는 질문에 대해서 전혀 답을 낼 수 없었다. Lock을 걸은 상태이기 때문에 들어오는 순서에 따라 결과가 달라진다면, 들어오는 순서를 항상 일정하게 보장해줘야 할텐데, 언제 누가 들어올지도 모르는 상황에서 순서를 정한다는 것이 말이..
이전에 보았던 Tucker님의 게임 네트워킹의 이해 영상을 마저 시청하였다. 오늘은 Socket Programming과 MMORPG 서버 구조 편까지 전부 시청하여 마무리 정리까지 해보려고 한다. https://youtu.be/aWq9C7RARJI 1. Socket Programming 컴퓨터의 네트워킹은 NIC에서 이루어진다. NIC에서 데이터를 주고 받는 것을 제어할 수 있게 만들어주는 것을 Socket이라고 하고, 이 Socket을 이용하여 Programming을 하는 것을 Socket Programming이라고 한다. 자세히 보면 복잡하긴 하지만 궁극적으로 추구하는 것은 Input과 Output을 다루는 것이다. 이 I/O를 다룰 떄 중요한 기능 2가지가 Read와 Write이다. Read와 Wr..