본문 바로가기

분류 전체보기

[C#] NUnitLite, Jenkins CI 연동하기 http://pjc0247.tistory.com/26위 글에 이어서 NUnit Lite와 Jenkins CI를 연동하는 방법에 대해서 알아봅니다. Jenkins 쪽의 환경을 구성합니다. 아래 과정은 이 글에서는 생략합니다.1. 아이템을 만들고, 2. SVN, Git에서 체크아웃되도록 설정한 뒤 3. 프로젝트를 빌드합니다.프로젝트의 빌드는 MSBuild 플러그인을 사용하면 편리합니다. 젠킨스에 NUnit 플러그인을 설치합니다. https://wiki.jenkins-ci.org/display/JENKINS/NUnit+Plugin이 플러그인은 이전 글에서 언급한 테스트 결과 xml 파일을 읽어서 젠킨스상에 표시해주는 역할을 합니다. 또한 테스트 결과가 실패일 경우 빌드 결과도 실패로 표기합니다. (Jenkin.. 더보기
[Ruby] autoload http://ruby-doc.org/core-2.1.0/Module.html#method-i-autoload autoload는 클래스가 사용되는 시점에 해당 클래스가 포함된 rb 파일을 lazy 하게 로드할 수 있도록 하는 기능을 제공합니다. autoload? 메소드를 사용하면, 특정 클래스에 대해 autoload 가 지정된 파일 경로를 가져올 수도 있습니다. 더보기
[Roslyn] 코드 정렬(Formatting) 하기 Code FormattingRoslyn을 이용하여 코드를 자동 정렬시킬 수 있습니다.먼저 Nuget 패키지 관리자를 통해 Microsoft.CodeAnalysis 패키지를 추가합니다. 출력 결과 혹은 MS에서 제공하는 별도의 도구를 사용합니다. https://github.com/dotnet/codeformatter 더보기
[Ruby] at_exit 루비 Sinatra 의 간단한 예제 코드는 아래와 같습니다. require 'sinatra' get '/' do "Hello" end 위의 코드를 실행하면 바로 웹 서버가 실행되는데, 이 동작은 약간 이상합니다. 분명히 라우팅만 지정했을 뿐이고, 서버를 실행하는 코드는 아무데도 없습니다. 파일의 끝이 나와서 프로그램이 꺼져야 하는데, 꺼지지 않고 계속 서버가 실행됩니다. 이는 at_exit를 이용한 트릭이며, 사용자가 직접 서버를 켜는 코드를 작성하지 않아도 되도록 도와줍니다. at_exit는 앱이 종료될 때 실행되는 콜백을 지정하는 함수입니다. 단순히 블록 하나만 넘겨주면 되며, 사용법은 아래와 같습니다. at_exit do puts "Run Server" end at_exit를 여러번 실행하면, 콜백.. 더보기
[Unity] JsonUtility 사용하기 Unity 5.3 버전에서의 변경 사항 중에는 JSON API의 추가가 포함되어 있습니다. (http://blogs.unity3d.com/kr/2015/12/08/unity-5-3-all-new-features-and-more-platforms/)이전 버전의 유니티에서는 JSON을 사용하려면 외부 라이브러리를 사용하여야 했는데, 각각의 JSON 라이브러리는 iOS/IL2CPP와 호환이 좋지 않은 것들도 있었으며, 게임에 추가한 외부 플러그인에서 JSON 라이브러리를 사용하는 경우도 있어 실제 게임 앱은 하나인데 그 안에 JSON 라이브러리만 2~3종류가 들어가있는 경우도 종종 있었습니다. 유니티에서는 아마 이러한 문제점들을 파악하고 이를 위한 해결책으로 Unity 자체적으로 JSON 라이브러리를 제공하게.. 더보기
[js] JSONP & POST http://alotaiba.github.io/FlyJSONP/ JSONP 특성상 POST 요청은 수행할 수 없다. 하지만 몇 가지 트릭을 사용하면 JSONP의 장점을 살리면서도, POST요청을 보낼 수 있는데, FlyJsonP는 그러한 트릭을 구현한 구현체중의 하나이다.FlyJsonP 내부적으로는 YQL을 사용한다. (https://developer.yahoo.com/yql/) 즉, GET요청으로 야후 서버한테 정보를 넘겨주면, 야후 서버가 대신 POST를 날려서 결과를 알려주는 구조이다. 클라이언트가 직접 요청을 날리는것이 아니기 때문에 몇가지 케이스에서는 문제가 될 수도 있는 소지가 있지만, 대부분의 경우 괜찮다고 생각한다. 다만 한가지 주의할 사항이 있다. YQL에서는 몇몇 특수문자를 허용하지 않.. 더보기
Keychain Item Accessibility Constants https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/#//apple_ref/doc/constant_group/Keychain_Item_Accessibility_Constants아래의 상수들은 kSecAttrAccessible 에 허용되는 값 들입니다. 이 값을 지정하여 키체인 아이템에 대한 접근 속성을 지정할 수 있습니다. DeclarationSWIFTlet kSecAttrAccessibleAfterFirstUnlock: CFString let kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly: CFString let kSecAttrAccessibleAlway.. 더보기
[Ruby] SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError) Ruby HTTPS 연결에서의 아래와 같은 에러가 발생할 때C:/Ruby22/lib/ruby/2.2.0/net/http.rb:923:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError) 위 파일을 rb 파일이 위치한 폴더에 다운받습니다. 방법 1. SSL_CERT_FILE 환경 변수 설정하기 ENV['SSL_CERT_FILE'] = (__dir__ + '/cacert.pem') 또는 방법2. 수동으로 인증서 지정하기 uri = URI("https://api.github.com/some_api_path") req = Ne.. 더보기
[C#] Code Contracts 사용하기 Code Contracts는 이전 방식인 assert들을 깔끔하게 정리할 수 있는 새로운 방법입니다.Code Contracts를 사용하기 위해서는 먼저 Visual Studio 확장 프로그램을 다운받아야 합니다. https://visualstudiogallery.msdn.microsoft.com/1ec7db13-3363-46c9-851f-1ce455f66970위 링크에서 프로그램을 다운받고 설치 후, Visual Studio를 재시작합니다. Code Contracts를 테스트하기 위한 테스트 솔루션/프로젝트를 만듭니다. 여기서는 C#을 사용하겠습니다. 프로젝트의 Properties에 들어가보면 탭 아래에 Code Contracts 탭이 새로 추가된것을 볼 수 있습니다. 해당 탭에 들어가서 아래 그림과 같.. 더보기
[C#] NUnit, NUnitLite 사용하기 이 글은 NUnit3을 기준으로 작성합니다. 테스트용 솔루션을 하나 만듭니다. 이름은 nunit_test 로 하고, 하위로 foo_library, tests 프로젝트를 두개 추가합니다.foo_library는 실제 구현체이고, '클래스 라이브러리' 프로젝트로 생성합니다.tests는 foo_library를 테스트하는 프로젝트로, '콘솔 응용 프로그램' 으로 생성합니다. 이 프로젝트는 '참조'에 foo_library를 가집니다. foo_library에 구현을 작성합니다. 간단하게 Sum 메소드를 만들어보겠습니다. 이제 Foo::Sum 에 대한 테스트를 작성해야 할 차례입니다.tests 프로젝트에 NuGet 패키지 추가 -> 'NUnit', 'NUnitLite' 를 추가합니다. NUnitLite는 설치 시, 자.. 더보기