허당 레몬도리
c# 메모리 효과적으로 관리하는 방법
가. 언어유형/C# 2016. 1. 27. 16:08

C/C++를 사용하면서 포인터 때문에 괴로워 해본 적이 있는가? 그렇다면 C#에 관심을 가져보는 것이 좋다. C#은 다음과 같은 특징들을 제공하기 때문이다. - 메모리 해제에 신경 쓰지 않아도 된다. - 이미 삭제된 메모리에 접근하는 실수를 방지해준다. - 잘못된 캐스팅으로 엉뚱한 메모리에 접근하지 않게 한다. - 배열 크기보다 큰 메모리에 접근하지 못한다. - 메모리 단편화에 대해 신경 쓰지 않아도 된다. 편한 C#, 마구잡이로 사용하면 낭패 골치 아픈 메모리 관리를 신경 쓰지 않아도 된다는 점은 사용자들에게 무척 편리하게 다가온다. 하지만 C#에서도 메모리를 다루기 위해서는 세심한 주의가 필요하다. 마음 놓고 개발하다 당황했던 과거 필자의 경험을 살펴보도록 하자. 개발 초창기, 게임 플레이 중에 주기..

WeakReference 클래스
가. 언어유형/C# 2016. 1. 27. 15:27

WeakReference 클래스 가비지 수집에 의한 개체 회수를 허용하면서 개체를 참조하는 약한 참조를 나타냅니다. 약한 참조에는 가비지 수집기는 개체에 액세스 하는 응용 프로그램 허용 하면서 개체를 수집할 수 있습니다.개체에 필요한 경우 여전히에 대 한 강한 참조를 수집 되지 않도록 방지 합니다.짧은 사용 및 긴 약한 참조 하는 방법에 대 한 자세한 내용은 참조 약한 참조. 생성자 이름 설명 WeakReference(Object) 지정된 개체를 참조하여 WeakReference 클래스의 새 인스턴스를 초기화합니다. WeakReference(Object, Boolean) 지정된 개체를 참조하고 지정된 재활성화 추적을 사용하여 WeakReference 클래스의 새 인스턴스를 초기화합니다. WeakRefer..

Environment 클래스
가. 언어유형/C# 2016. 1. 25. 14:02

현재 환경 및 플랫폼에 대한 정보 및 조작 방법을 제공합니다. 이 클래스는 상속될 수 없습니다. 출처 : 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..

문자값에 변수값 넣기
가. 언어유형/C# 2016. 1. 22. 11:10

이전에 아래와 같은 코드 많이 사용했지만 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"); } 설명..

Enumerable.Repeat<TResult> 메서드
가. 언어유형/C# 2015. 12. 11. 10:55

반복 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..

게임 DB 설계 시 궁금? 좋은 답변
가. 언어유형/SQL Query 2015. 12. 2. 11:32

출처 : 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 Tabs Version Upgrade

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..

OS 확인

출처 : 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..