본문 바로가기

Dev

cdecl/asb - Http benchmarking and load test tool for windows, posix # cdecl/asb - Http benchmarking and load test tool for windows, posix - wg/wrk (Modern HTTP benchmarking tool)과 기능이 비슷한, Windows 버전으로 만들게 된 커맨드 라인 툴. - boost::asio 와 asio 에서 지원하는 ssl(openssl)을 이용하여 구현. - VC++ 2013 환경에서 개발하고, 라이브러리 패키지 NuGet으로 관리. - Posix 환경은 g++ (4.8 이상, -std=c++11), boost 라이브러리 및 libssl-dev (openssl) 패키지 설치 # 테스트 결과 - 테스트 환경 ; Laptop Intel i5(4세대), 4 Core, 8G RAM, Windows 8.1 6.. 더보기
Bonobo - Simple git server for Windows # Bonobo - Simple git server for Windows - Git 서버를 윈도우즈 환경에서 운영하기 위한 플랫폼 - IIS 7 이상, .NET Framework 4.5, ASP.NET MVC 4 환경 # 설치 - IIS 설치 : Windows 7 이상이면 "프로그램 및 기능" - "Windows 기능 겨키/끄기" 에서 설치 가능 * 응용 프로그램 개발 기능에서 .NET 4.5 확장성 및 ASP.NET 4.5 활성화 - .NET Framework 4.5 설치 (Windows 8.1 이상은 이미 설치 됨) https://www.microsoft.com/ko-KR/download/details.aspx?id=30653 - ASP.NET MVC 4 (http://www.asp.net/mvc/m.. 더보기
Catch (A modern, C++-native, header-only, framework for unit-tests, TDD and BDD) Github : https://github.com/philsquared/Catch Tutorial : https://github.com/philsquared/Catch/blob/master/docs/tutorial.md # 특징 - CppUnit, Google Test, Boost.Test 등등 다른 프레임웍크에 비해 의존성이 없는 헤더파일(catch.hpp) 하나면 사용 할 수 있음 * C++ Test Framework 비교 - 별도 빌드 모듈로 운영 할 수도 있음 - 크로스 플랫폼 지원 # 사용 - TEST_CASE 라는 기본 단위 테스트에 SECTION이라는 작은 부분으로 나누어서 테스트 할 수 있음 - 기본적으로 REQUIRE 와 CHECK 의 평가식을 이용하여 로직 검증. - REQUIRE 와 .. 더보기
C++ REST SDK (casablanca) 간단 샘플 * https://casablanca.codeplex.com/ The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services. What's in the SDK:Features - HTTP client/server, JSON, URI, asynchronous streams, WebSockets client, oAuthPPL Tasks - A powerful model for c.. 더보기
[C++11] Variadic template # Variadic template - template 에서 타입의 인자를 가변으로 처리 할 수 있는, 새로운 ... 표현식이이 생겼다 - http://en.wikipedia.org/wiki/Variadic_template - 그리고 또 다른 설명인 MSDN의 링크 http://msdn.microsoft.com/ko-kr/library/dn439779.aspx variadic 템플릿 함수를 통합하는 대부분의 구현은 일부 양식의 재귀를 사용하지만 전통적인 재귀와는 약간 다릅니다. 전통적인 재귀는 같은 서명을 사용하여 자신을 호출하는 함수를 포함합니다. (오버로드하거나 템플릿화할 수 있지만 매번 동일한 시그너처가 선택됩니다.) Variadic 재귀에는 다른 수의 인수(거의 항상 줄어듦)를 사용하여 varia.. 더보기
Mybatis 테스트 # Mybatis 를 콘솔 어플리케이션 환경에서 테스트 - 한글소개 : http://mybatis.github.io/mybatis-3/ko/ - 다운로드 : https://github.com/mybatis/mybatis-3/releases - SQL Server용 Microsoft JDBC Driver 4.0 : http://www.microsoft.com/ko-kr/download/details.aspx?id=11774 # mybatis.xml - mybatis 의 기본 설정 파일 - 다중 DB 연결 관리(environment) 및 다중 매퍼파일 등록을 관리 - 다중 DB 연결 테스트를 위해 같은 DBMS의 DB 만 다른 설정 DOCTYPE configuration PUBLIC "-//mybatis.o.. 더보기
SHA1 해쉬함수, boost 라이브러리로 구현 # SHA1 해쉬 함수의 경우 crypto++ 라이브러리로 사용 가능 하지만, 간단히(?) boost 라이브러리도 가능. http://www.cryptopp.com/ 실행 : http://coliru.stacked-crooked.com/a/4d6de3acd08dee1c#include #include using namespace std; #include #include string ToSHA1(const string s) { boost::uuids::detail::sha1 sh; sh.process_bytes(s.c_str(), s.length()); unsigned int digest[5]; sh.get_digest(digest); string r; for(int i = 0; i < 5; ++i) { r.. 더보기
디피-헬만 키 교환, C++ 예제 # 큰수를 나타내기 위해 boost::multiprecision 의 cpp_int 클래스 이용 http://www.boost.org/doc/libs/1_56_0/libs/multiprecision/doc/html/boost_multiprecision/tut/ints/cpp_int.html # 큰수를 나타내는 boost 지원 3개의 클래스 비교 http://www.boost.org/doc/libs/1_56_0/libs/multiprecision/doc/html/boost_multiprecision/tut/ints.html # 소수 판별을 위한 boost::multiprecision 의 miller_rabin_test 함수 사용 # 밀러 라빈 소수 판별법 http://ko.wikipedia.org/wiki/.. 더보기
디피-헬만 키 교환 출처 : 위키백과 http://ko.wikipedia.org/wiki/%EB%94%94%ED%94%BC-%ED%97%AC%EB%A7%8C_%ED%82%A4_%EA%B5%90%ED%99%98 디피-헬만 키 교환위키백과, 우리 모두의 백과사전.디피-헬만 키 교환(Diffie–Hellman key exchange)은 암호 키를 교환하는 하나의 방법으로, 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 한다. 휫필드 디피와 마틴 헬만이 1976년에 발표하였다.디피-헬만 키 교환은 기초적인 암호학적 통신 방법을 수립하였으며, 이후 1977년 공개 키 암호 방식인 RSA 암호가 제안되었다.방식[편집]앨리스와 밥이 공개된 통신망에서 디피-헬만 키 교환을 하기 위해서는 다음과 같은 절차를 .. 더보기
SSL 키 교환 방식 출처 : http://eastdg.wordpress.com/2014/04/09/ssltls-%EA%B8%B0%EB%B3%B8/ Key Exchange (키 교환)SSL/TLS이 사용할 수 있는 몇몇 키 알고리즘들이 있는데, 대부분의 키 알고리즘들은 서버의 공개키를 이용하여 동작한다. 다음은 많이 쓰이는 키 알고리즘 들이다.RSA: 서버의 키…….유형이 RSA 형식인 경우 사용가능하다. 클라이언트는 46바이트의 랜덤 값과 2바이트 버전을 포함한 총 48바이트의 “pre-master secret” 값을 만들어 서버의 공개키로 암호화 하여 전송한다. 이러한 경우 ServerKeyExchange 과정은 없다.DHE_RSA: 서버의 키 유형이 RSA 형식인 경우지만, 해당 키는 서명을 하는 경우에만 사용된다. 실.. 더보기
해쉬 함수 SHA1CryptoServiceProvider, SHA1Managed 차이 SHA1CryptoServiceProvider는 윈도우의 CryptoAPI(CAPI)를 래핑한 unmanaged 구현체 이고, SHA1Managed는 .NET으로 구현한 Managed 코드 SHA1Managed가 상대적으로 느리다고 하는데, 그 차이는 ms 단위의 속도를 중요시 하지 않는 업무라면 문제 없을 듯 하고, 자체 구현이라 이식성도 좋아 보임 물론 사용 가능 하다면 SHA1CryptoServiceProvider 쓰는것이 최선.. http://codeissue.com/issues/i34dda6deaad90a/difference-between-sha1-sha1cryptoserviceprovider-sha1managed-and-sha1cng SHA1CryptoServiceProvider: this i.. 더보기
How to Configure MSDTC to Use a Specific Port in Windows Server 2012/2012R2 출처 : http://blogs.msdn.com/b/distributedservices/archive/2012/01/16/how-to-configure-the-msdtc-service-to-listen-on-a-specific-rpc-server-port.aspx My name is Steven Graves and I am a Senior Support Escalation Engineer on the Windows Core Team. In this blog, I will discuss how to configure MSDTC to use a specific port on Windows Server 2012/2012R2 as this has slightly changed from the way it is .. 더보기