개발
-
웹페이지 만들면서 느꼈던 거지만 디자인패턴은 이해하기가 정말 힘든것 같다 (…..) 지난 겨울방학때 만들었던 홈페이지는 Code Igniter를 이용해서 MVC(Model-View-Controller)를 대충 봤는데 (사실 RoR로 계획하고 있었는데, RoR도 MVC였는데…?) 여튼 이번에 갑작스레 WPF를 접하게 되어서 연구실 형에게 들어보니 데이터바인딩을 해보면 신세계라고 해서 우와 나도 해봐야겠다 해서 해봤는데 아무리 생각해도 이건 윈폼에서 하던거랑 별반 다를게 없어서 조금 더 알아보고…
-
Shared Library Windows에서 .dll(동적라이브러리) 파일과 비슷하게, gcc/g++에서는 컴파일 할때 공유 라이브러리를 사용할 수 있다. 공유 라이브러리를 만들고 사용하는 방법은 다음과 같다. 공유 라이브러리로 만들 코드는 -fPIC 옵션을 사용해서 목적파일까지만 생성하고, 해당 목적파일과 -shared 옵션을 이용하여 so파일을 생성한다. 이때 생성할 파일의 이름은 lib라는 접두어가 붙는다. 생성된 so파일을 사용하는 실행파일의 코드는 다음과 같은 옵션을 붙여서 컴파일 한다.…
-
#if, #endif로 디버그와 릴리즈용 컴파일을 구별할 수 있다. [code language=”csharp”] using System; namespace CSharpConsole { class Program { static void Main(string[] args) { #if DEBUG Console.WriteLine("Debug"); #endif Console.WriteLine("Hello World!"); } } } [/code] 위 코드를 Debug로 빌드하면 Debug와 Hello World!가 모두 출력되지만, Release로 빌드하면 Hello World!만 출력된다. 그러나 위와 같이 #if/#endif블록을 나누는 것은 보기에도 안좋고,…
-
const는 컴파일 상수이다. 적용이 컴파일 시에 이루어진다. readonly는 런타임 상수이다. 적용이 런타임에 이루어진다. 이 차이를 알아보기 위해서 다음과 같은 시도를 해보았다. 1. 다음과 같은 두 상수가 정의된 클래스 라이브러리 ConstantTestLib를 만들고 dll파일 제작 [code language=”csharp”] namespace ConstantTestLib{ class MyConstant{ public const int CONST_MAX = 2500; public static readonly int RDONLY_MAX…
-
– public member field보다는 property를 이용하는 편이 낫다. 다음과 같은 클래스에 대해서 [code language=”csharp”] class Namecard{ public string name; … } [/code] name을 not null로 만들기 위해서는 여러 코드를 고쳐야한다. 그러나 프로퍼티를 이용하면, [code language=”csharp”] class Namecard{ private string name; public string Name{ get { return name; } set { if(value == null) throw new…