C# - Unit Test Mock

왜 사용하는가? Mock 라이브러리는 단위 테스트를 쉽게 하기 위해 존재합니다. 예를 들어서, 한 클래스 테스트에 데이터베이스를 활용해야 하는 경우가 있다고 가정을 합시다. 이 경우 직접 데이터베이스에 정보를 넣었다 뺐다 하면 상당히 큰 부담이 됩니다. 이런 부담을 주지 않고, 데이터베이스의 행동을...
더 읽기

마크다운 문법 - Table of contents

Table of contents ================= * [gh-md-toc](#gh-md-toc) * [Table of contents](#table-of-contents) * [Installation](#installation) * [Usage](#usage) * [STDIN](#stdin) * [Local files](#local-files) * [Remote files](#remote-files) * [Multiple files](#multiple-files) * [Combo](#combo) * [Auto insert and update TOC](#auto-insert-and-update-toc) * [Github token](#github-token) * [Tests](#tests) * [Dependency](#dependency)...
더 읽기

C# - Unit Test

준비 보통 프로그램이나 라이브러리 프로젝트에 추가 프로젝트로 유닛테스트 프레임워크를 사용하는 프로젝트를 만든다. 이렇게 하면 유닛테스트에 영향을 받지 않으면서 기존처럼 개발을 할 수 있다. 유닛테스트 프로젝트에 테스트 메소드를 만들면 테스트 탐색기에 리스트로 나온다. 유닛테스트 초기화와 실행 순서 지정한 유닛테스트만 실행 유닛테스트...
더 읽기

C# - 콘솔 키보드 입력, 프로그램 종료 키 조사

키보드 입력 class Program { static void Main(string[] args) { System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(키보드입력조사), null); while (true) { ...... System.Threading.Thread.Sleep(128); } } static void 키보드입력조사(object userState) { while (true) { var command = Console.ReadLine(); if (command == "종료") { ............. } }...
더 읽기

C# - ArraySegment 배열을 새로 할당하지 않고 특정 위치의 내용을 참고 하고 싶을 때

배열(예를들면 네트워크에서 받은 데이터를 저장한 버퍼 byte[] buffer)의 특정 위치에서 특정 크기만큼 참고하고 싶을 때 보통 새로 배열을 만든 후 복사해야 원하는 데이터만을 참조할 수 있다. 그러나 ArraySegment를 사용하면 새로 배열을 만들지 않으면서 버퍼의 특정 데이터를 참조할 수 있다. ArraySegment를...
더 읽기

C# - AutoMapper

기본 객체간의 복사를 자동으로 한다. 복사되는 객체에 복사한다. Nuget으로 설치 가능. 예 public class SourceType { public int SourceId { get; set; } public string Value { get; set; } public DateTime DateUpdated { get; set; } } public class...
더 읽기

C# - Debug 클래스

Debug 클래스 Debug 클래스는 그 이름대로 디버그 정보를 출력하는 클래스이다. Debug 클래스는 System.Diagnostics 이름 공간에 있다. 사용 예 using System.Diagnostics; Debug.WriteLine("Start Method"); Debug.IndentSize = 4; Debug.Indent(); Debug.Write("Debug.Write"); Debug.WriteLine("는 개행합니다."); for (int i = 0; i < 4; i++) { Debug.WriteIf(i%2==1,i);...
더 읽기

C# - List, Tuple, Queue, SortedList, SortedDictionary, SortedSet

List 정렬 https://msdn.microsoft.com/ja-jp/library/w56d4y5z(v=vs.110).aspx https://msdn.microsoft.com/ja-jp/library/b0zbh7b6(v=vs.110).aspx https://msdn.microsoft.com/ja-jp/library/234b841s(v=vs.110).aspx List<UserWeekTotalNetProfitResult> TopPlyser = new List<UserWeekTotalNetProfitResult>(); TopPlyser.Sort(PlayerCompare); static int PlayerCompare(UserWeekTotalNetProfitResult user1, UserWeekTotalNetProfitResult user2) { if (user1.TotalScore == user2.TotalScore) { if (user1.Level == user2.Level) { // UID는 절대 동점이 없음 if (user1.UID > user2.UID) { return -1;...
더 읽기

C# - XmlTextReader

XmlTextReader 로 XML 읽기 예제 1 <?xml version="1.0" encoding="utf-8" ?> <Config> <log4net> <root> <!--로그 레벨 지정. 아래에서는 INFO 레벨 이상만 로그가 남는다--> <level value="INFO" /> <!--어느 로그를 사용할 것인지 지정한다. 파일 로그와 날짜별 로그 사용--> <appender-ref ref="DayRollingLogToFile" /> <!--복수 지정...
더 읽기

Windows에 Rust 설치하기

Rust를 Windows에서 사용할 때 C++ 컴파일러가 별도로 필요하므로 먼저 VisualStudio Build Tools를 설치한다.(Visual Studio를 설치하면 된다) Rustup 설치 Rustup 사이트에 가서 rustup‑init.exe 링크를 클릭해서 다운로드 한다. 다운로드한 rustup-init.exe을 클리하여 설치한다. 설치가 끝난 후 아래 명령어를 실행하여 잘 설치 되었는지 확인한다....
더 읽기