본문 바로가기

Programming

[Ubuntu] 우분투에 깃 서버(Git Server) 환경 구축 - 1 우분투에 Git 서버를 구축하기 위한 방법입니다.먼저 root 계정으로 접속합니다. su - 그 이후에 패키지 업데이트를 실행합니다. apt-get update 업데이트가 다 실행된 이후에 Git을 설치하면 됩니다.Git 설치는 간단하게 다음 명령어로 설치됩니다. apt-get install git 중간에 설치를 계속할 것인지 물어보는데 Y를 누르면 됩니다.이것으로 Git의 설치가 완료되지만 이 상태에서는 사용하기에 무리가 있습니다.그렇기 때문에 Gitolite를 설치해서 Git 서버를 관리하고 사용할 수 있는 환경을 구성합니다.Gitolite 설치는 아래 링크에서 확인 가능합니다.2015/05/08 - [Programming/Git] - [Ubuntu] 우분투에 깃 서버(Git Server) 환경 구축.. 더보기
[C++11] 가변인자 템플릿을 위한 sizeof... 연산자 가변인자 템플릿의 지원으로 템플릿을 작성하는 것이 더 편리하게 되었습니다.C++11의 가변인자 템플릿에 대한 설명은 아래 링크를 통해서 참조할 수 있습니다.2015/03/05 - [Programming/C++11&14] - [C++11] 가변인자 템플릿(Variadic Templates)가변인자 템플릿이 추가되면서 sizeof...연산자가 추가되었습니다.sizeof...은 기존의 sizeof와는 약간 다른 기능을 합니다.sizeof...은 파라미터 팩의 수를 가져오는 역할을 합니다.가변인자로 넘어온 파라미터를 파라미터 팩이라고 하는데 ...이 실제 몇 개의 인자인가 알 수 있습니다.이전 가변인자 템플릿의 예제를 가져와서 조금 수정해 보도록 하겠습니다. #include using namespace std;.. 더보기
[C++11] 가변인자 템플릿(Variadic Templates) C와 C++에는 가변인자 함수가 존재합니다....이라는 생략 부호를 사용하는 특이한 형태의 함수입니다.C/C++에는 대표적인 가변인자 함수인 printf가 존재합니다. 가변인자 함수에 대해서는 아래의 링크를 참조하시면 됩니다.2014/12/07 - [Programming/C&C++] - 가변 인자 함수의 사용법(vprintf, vsprintf)2014/12/07 - [Programming/C&C++] - 가변 인자(Variable Arguments) 내부 구조C++11에는 가변인자를 템플릿에도 적용이 가능하게 되었습니다.가변인자 템플릿은 다음과 같은 형식으로 되어 있습니다. template returntype functionname(Arguments... args); template class class.. 더보기
afx_msg의 의미 afx_msg는 MFC에서 메소드(이벤트 핸들러)를 오버라이딩 할 때 앞에 자동적으로 적히게 됩니다.afx_msg는 다음과 같이 정의되어 있습니다.#define afx_msg결론적으로 afx_msg는 아무 의미가 없는 정의입니다.afx_msg는 보통 virtual의 의미를 담고 사용합니다.virtual에 대한 내용은 아래의 링크를 통해서 확인할 수 있습니다.2014/12/03 - [Programming/C&C++] - 다형성과 가상함수부모클래스에서 virtual로 선언한 이후에 자식클래스가 구현할 수 있게 해주는 것입니다.부모만 virtual 선언하면 자식은 굳이 virtual을 선언하지 않아도 됩니다.그런데도 afx_msg를 사용하는 이유가 있습니다. 부모클래스의 메소드(함수) 중에는 virtual이 .. 더보기
[Boost] boost::lexical_cast를 사용하는 형변환 C/C++은 int 형을 std::string으로 변경하거나 std::string을 int로 변경하는 다양한 방법이 존재합니다.다만 그 방법이 직관적이지 않기 때문에 파악하기가 쉽지 않은 단점이 있습니다.C에서는 strtol(), atoi() 등의 함수가 제공이 되서 상호 변환을 할 수 있습니다.C++에서는 다음과 같은 형식으로 string을 int 형식으로 변경이 가능합니다.#include #include #include void main() { std::stringstream ssNum("5"); int i = 0; ssNum >> i; std::cout 더보기
[정렬 알고리즘] 삽입 정렬(Insertion Sort) 정렬 알고리즘인 삽입 정렬입니다.배열의 앞쪽부터 시작해서 순회하면서 정렬을 합니다.그리고 앞 부분의 정렬된 부분에서 선택된 값의 위치를 찾아서 이동시키는 알고리즘입니다.기본적으로 버블 소트나 선택 정렬보다 성능이 좋고 구현이 간편한 장점이 있는 정렬입니다.또한 추가적인 메모리가 크게 필요 없는 In-Place 알고리즘입니다.반복문을 돌리기 위한 변수와 swap을 위한 변수 정도가 추가로 필요합니다.그리고 같은 값이 있을 때 그 순서가 변경되지 않는 안정 정렬입니다.Wiki에서 확인할 수 있는 삽입 정렬의 정렬 방식입니다.http://en.wikipedia.org/wiki/Insertion_sort이 영상이 삽입 정렬의 모든 것을 보여주고 있습니다.두 번째 값부터 시작해서 각각의 값들이 앞부분의 정렬된 부.. 더보기
[Boost] Visual Studio 2013에 Boost 적용해서 개발하기 Boost를 사용하기 위해서는 기본적으로 헤더 파일(hpp 파일)을 추가해서 사용이 가능합니다.하지만 Boost의 강력한 기능을 사용하기 위해서 Boost를 빌드해서 라이브러리를 생성해서 사용합니다.Boost의 빌드 방법은 아래의 링크를 참조하면 됩니다.2015/02/07 - [Programming/C&C++] - [Boost] Boost 빌드 방법빌드가 완료된 Boost를 Visual Studio에 적용해서 사용하는 방법입니다.먼저 간단하게 Console Application을 생성합니다.예제로 작성했기 때문에 이름은 BoostExam으로 변경하였습니다.프로젝트에 맞는 이름으로 사용하면 됩니다. 기본적인 설정으로 두고 Finish를 눌러서 프로젝트를 생성합니다.Boost를 사용하기 위해서는 Includ.. 더보기
[Boost] Boost 빌드 방법 Boost는 C++ 표준이 되기 전 미래의 C++의 표준을 사용할 수 있는 라이브러리입니다.Boost에는 이미 C++ 표준 위원회의 위원들이 참여하고 있고 대부분 C++ 표준으로 채용되고 있습니다.Boost를 통해서 좀 더 쉽고 편하게 개발이 가능합니다.Boost를 사용하기 위해서는 아래 링크를 통해서 다운로드를 받습니다.http://www.boost.org/ 현재 기준으로 Boost의 버전은 1.57.0입니다.다운로드를 받고 빌드를 해서 Boost를 사용해야 합니다.Boost의 일부 기능은 헤더 파일을 추가해서 사용하기도 하지만 전체적인 기능을 사용하기 위해서는 빌드가 필요합니다.Boost를 다운 받고 압축을 해제합니다.booststrap.bat를 실행합니다.그러면 다음과 같이 b2.exe와 bjam... 더보기