C/C++를 사용하면서 포인터 때문에 괴로워 해본 적이 있는가? 그렇다면 C#에 관심을 가져보는 것이 좋다. C#은 다음과 같은 특징들을 제공하기 때문이다. - 메모리 해제에 신경 쓰지 않아도 된다. - 이미 삭제된 메모리에 접근하는 실수를 방지해준다. - 잘못된 캐스팅으로 엉뚱한 메모리에 접근하지 않게 한다. - 배열 크기보다 큰 메모리에 접근하지 못한다. - 메모리 단편화에 대해 신경 쓰지 않아도 된다. 편한 C#, 마구잡이로 사용하면 낭패 골치 아픈 메모리 관리를 신경 쓰지 않아도 된다는 점은 사용자들에게 무척 편리하게 다가온다. 하지만 C#에서도 메모리를 다루기 위해서는 세심한 주의가 필요하다. 마음 놓고 개발하다 당황했던 과거 필자의 경험을 살펴보도록 하자. 개발 초창기, 게임 플레이 중에 주기..
WeakReference 클래스 가비지 수집에 의한 개체 회수를 허용하면서 개체를 참조하는 약한 참조를 나타냅니다. 약한 참조에는 가비지 수집기는 개체에 액세스 하는 응용 프로그램 허용 하면서 개체를 수집할 수 있습니다.개체에 필요한 경우 여전히에 대 한 강한 참조를 수집 되지 않도록 방지 합니다.짧은 사용 및 긴 약한 참조 하는 방법에 대 한 자세한 내용은 참조 약한 참조. 생성자 이름 설명 WeakReference(Object) 지정된 개체를 참조하여 WeakReference 클래스의 새 인스턴스를 초기화합니다. WeakReference(Object, Boolean) 지정된 개체를 참조하고 지정된 재활성화 추적을 사용하여 WeakReference 클래스의 새 인스턴스를 초기화합니다. WeakRefer..
현재 환경 및 플랫폼에 대한 정보 및 조작 방법을 제공합니다. 이 클래스는 상속될 수 없습니다. 출처 : https://msdn.microsoft.com/ko-kr/library/system.environment(v=vs.110).aspx 속성이름설명CommandLine이 프로세스에 대한 명령줄을 가져옵니다.CurrentDirectory현재 작업 디렉터리의 정규화된 경로를 가져오거나 설정합니다.CurrentManagedThreadIdGets a unique identifier for the current managed thread.ExitCode프로세스의 종료 코드를 가져오거나 설정합니다.HasShutdownStartedGets a value that indicates whether the current..
이전에 아래와 같은 코드 많이 사용했지만 string filename = DateTime.Now.ToString(); for (int i = 0; i < 10; i++) { Console.WriteLine("Before"); Console.WriteLine(filename + "_" + i.ToString() + ".txt"); //or Console.WriteLine(string.Format("{0}_{1}.txt", filename, i)); } 이제 아래 형식으로 사용면 아주 편하더라~ string filename = DateTime.Now.ToString(); for (int i = 0; i < 10; i++) { Console.WriteLine($"{filename}_{i}.txt"); } 설명..
반복 List형태의 데이터 생성 시 사용.반복되는 단일 값이 들어 있는 시퀀스를 생성합니다.Sample : List list = new List(Enumerable.Repeat(0, 12)); IEnumerable strings = Enumerable.Repeat("I like programming.", 15); foreach (String str in strings) { outputBlock.Text += str + "\n"; } /* This code produces the following output: I like programming. I like programming. I like programming. I like programming. I like programming. I like pro..
출처 : http://www.gpgstudy.com/forum/viewtopic.php?p=83676 1. 게임에 관련된 DB를 설계할 때 부하에 관련되어 고려해야 할 사항들이 어떤게 있나요? 모든 성능 이슈가 그러하지만 DB에게 있어서는 Trade-Off 가 대단히 중요합니다. 우선 내가 구현하고자 하는 DB가 어떤 목적의 DB인지 파악하는 것이 무엇보다도 중요하죠, 일반적으로 게임은 OLTP 입니다. 즉 Insert / Update / Delete 가 빈번히 발생하는 구조로 되어 있는 것이 일반적인 형태입니다. 즉 OLTP 환경에서는 단위 트랜잭션이 최대한 짧게 유지 되도록 하는 것이 대단히 중요합니다. 이 경우 Lock 조정을 위해서 ISOLATION LEVEL 을 조정하여 여러 트랜잭션이 블로킹을..
jquery 1.5.1에서 쓰던 Tabs가 2.1.1에서 작동을 안함. function initializeTabs() { var tabOject = $("#tabs"); tabOject.tabs({ select: function (event, ui) { if (ui.index == 0) { tab1(); return; } if (ui.index == 1) { tab2(); return; } } }); } 그전 jquery 1.5.1를 계속 써야 하는가를 고민하다가 바뀐게 있을거야!찾아보다보니 activate라는 놈이 생겼네. select라는게 없어진...참고 : https://api.jqueryui.com/tabs/그래서 바꿔보았음. function initializeTabs() { var tabOjec..
출처 : http://r5xsv3.tistory.com // JavaScript Document // 만든이 : 다섯방울 (http://r5xsv3.tistory.com) // Data : 2014.03.09 // Version : 0.1 // 참조 http://www.openspc2.org/userAgent/ // OS 버전 보기 var uanaVigatorOs = navigator.userAgent; var AgentUserOs= uanaVigatorOs.replace(/ /g,''); var Ostxt=""; var OSName=""; var OsVers=""; // This script sets OSName variable as follows: // "Windows" for all versions..