본문 바로가기

Programing

(404)
[NUnit] 사례TDD - 완벽하지 않은 테스트 확장메서드를 이용해서 byte 배열을 Int32로 변환하는 정적메서드를 만들었다.모양은 아래와 같았다. (빅엔디안이라서 Reverse로 순서를 바꾸어주었다.) public static Int32 FromBytes(this byte[] value) { byte[] t = new byte[value.Length]; Array.Copy(value, t, value.Length); Array.Reverse(t); return BitConverter.ToInt32(t, 0); } 위에 대한 테스트는 아래와 같았다. [Test] public void FromBytesTest() { Byte[] b = new Byte[] { 0x29, 0x4A, 0xA6, 0xA5 }; Assert.AreEqual(0x294AA6A..
[C#] 내부 배열은 Int32.MaxValue 요소 이상으로 확장할 수 없습니다. 현상System.Runtime.Serialization.SerializationException : 내부 배열은 Int32.MaxValue 요소 이상으로 확장할 수 없습니다. 닷넷 프레임워크의 스펙의 한계이다. NUnit으로 테스트를 생성했을 때,, [Test] public void TotalPages_OnlySetCopyColorPage_ShouldBeAsSet( [Random(0, 100, 10)] int copyBlackPage, [Random(0, 100, 10)] int copyColorPage, [Random(0, 100, 10)] int printBlackPage, [Random(0, 100, 10)] int printColorPage, [Random(0, 100, 10)] int scanP..
[JavaScript] 시각화(visualization) 라이브러리(그래픽, 차트 등) 요즘 데이터 시각화에 관해 관심이 많다.웹 쪽에서는 자바 스크립트를 가지고 차트를 그리는 라이브러리가 많이 있는 것으로 알고 있다. 이름 사이트 라이센스 특징 1 Highcharts JS http://www.highcharts.com/ 비상용전제 하에 Free (링크) 다양,고품질,다양한레퍼런스, 상용 2 Flotr http://www.flotcharts.org/ MIT License (링크) 3 Flotr2 http://humblesoftware.com/flotr2/ MIT License (링크) 4 gRaphaël http://g.raphaeljs.com/ MIT License (링크) SVG 5 Protovis http://mbostock.github.io/protovis/ BSD License d..
[C#] DateTime.Now 분석 닷넷에는 시스템의 시간을 가져오는 방법은 DateTime.Now을 쓰면 간단하다.그런데 반대로 시스템의 시간을 설정하는 방법은 사람들은 잘 모르는 것 같다. StackOverflow 같은데 보면 Win32 함수를 마샬링해서 쓰는 방법뿐이다.심지어 MSDN도 마찬가지이다. How to: Get or Set the System Time GetSystemTime 와 SetSystemTime 함수를 Invoke해서 구현을 해놓았다. MSDN에도 그러하니 DateTime.Now는 내부적으로 GetsystemTime을 호출해서 DateTime 객체로 돌려주는 거겠지 생각을 했는데 틀렸다. 우선 Now는 아래와 같은 프로퍼티이다.public static DateTime Now{ get { return UtcNow.T..
[NUnit] 닷넷 환경의 테스트 주도 개발 Visual Studio 2008 환경을 사용하고 있다.닷넷에는 [테스트] 메뉴가 존재하지만 써 보았는데 JUnit+이클립스 같이 깔끔하게 돌아가는 환경은 아니다. 테스트를 할 때마다 생기는 로그 파일이 뭔가 부담스럽다. 그래서 NUnit이라는 오픈소스프로젝트를 사용하는데 많이 이용하는 것 같다.NUnit은 아래와 같은 GUI Runner를 제공한다. 하지만 이클립스 처럼 IDE 환경 내에서 바로 돌아가지 않아서 Visual Studio 따로 NUnit 따로 창을 두 개를 띄워서 개발을 해야 하니 뭔가 개발~테스트가 분리되어 있는 느낌이다. NHibernate를 검토하다 보니 비주얼 스튜디오에 플러그인 할 수 있는 도구가 있어서 써보니 괜찮았다.이름은 TestDriven.Net인데 오픈소스의 경우 Per..
[Node.js] SQL Server native 연결 github에 보면 모듈을 정리해 놓은 것이 있는데 https://github.com/joyent/node/wiki/modules데이터베이스에서는 Node.js는 Monngo DB가 대세 인 것 같다. RDBMS에서는 My-SQL이 그나마 라이브러리로 언급이 된다. 정작 회사에서 주로 사용하는 SQL Server이다.어제 찾아보니 TDS protocol로 구현되어 있는 계열 빼고는 node-sqlserver이 유일한 네이티브 모듈인 것 같았다. 문제는 npm install node-sqlserver로 단순히 설치가 안된다는 사실.C++ add on 때문에 빌드를 해야 하는데 솔루션 파일 인식 에러가 뜬다. https://github.com/windowsazure/node-sqlserver 에 보면 준비물..
[설계] 건축과 소프트웨어 개발 디자인패턴도 건축에서 나온 것으로 알고 있다.과거부터 소프트웨어를 만드는 것은 건축에서 따온 메타포가 많았다. 하지만 과하면 문제가 생기기 마련. 요구사항 분석 / 설계 / 구현 / 검증(테스트)로 이루어지는 폭포수 모델은 비판이 많았다. 건축과 소프트웨어 개발의 차이점: http://earlybird.kr/1512글쓰는 프로그래머 :: 소프트웨어 설계가 완벽할 수 없는 다섯 가지 이유: 글쓰는 프로그래머 :: 소프트웨어 설계가 완벽할 수 없는 다섯 가지 이유 켄트 벡의 테스트주도개발에서는 소프트웨어를 정원관리하듯 개발을 하는 것에 대해 저자의 글에서 다루고 있다.p.276)역자 주: 기존의 소프트웨어 공학에서는 소프트웨어 분야에 건축학의 메타포를 주로 적용해왔다. 건축학의 메타포를 적용하여 우리는 소프..
[Node.js] Add on, Buffer 객체 C++로 넘기기 중국쪽 블로그로 보이는 Dead Horse's Blog를 참고하면 된다.Creating a Proper Buffer in a Node C++ Addon라는 제목의 글도 해당 내용을 담고 있다.Wrapping a C++ Object to a v8 Object in a Node Addon 도 자바스크립트 객체를 C++ 클래스로 바꾸는 유용한 글이다. 알아둘 것1. node::Buffer는 node_buffer.h를 include 하면 된다. (node-v0.x.y.tar.gz의 src/node_buffer.h) - 처음에 Buffer라는 클래스를 사용하길래 어디있지 생각했는데, node.h만 include한다고 되는 것이 아니였다. - 어차피 node.lib를 이용해서 빌드할 것이라면 node_buffer...