본문 바로가기

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 만 다른 설정 더보기
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... 더보기
디피-헬만 키 교환, 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/%E.. 더보기
디피-헬만 키 교환 출처 : 위키백과 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 형식인 경우지만, 해당 키는 서명을 하는 경우에만 사용된다. 실제.. 더보기