Code Highlight를 적용하기 앞써 어떤 제품들이 있는지 확인해보자. Prism Rainbows Snippet Geshi Syntax Highlighter Google Code Prettify Highlight.js SHJS : Syntax Highlighting in JavaScript Quick Highl...
[CMAKE] TUTORIAL STEP5
이번에는 생성된 소스 파일을 어플리케이션을 빌드하는 과정에 어떻게 넣을수 있는지 보자. 이번 예제에서는 빌드 과정의 한 부분으로서 미리 계산된 제곱근의 테이블을 생성하고, 해당 테이블을 우리 어플리케이션에 컴파일해보자. 이를 위해서는 일단 테이블을 생성하는 프로그램이 필요하다. MathFunctions 의 하위 디렉토리에 이런 작업을 하는 MakeT...
[CMAKE] TUTORIAL STEP4
이번에는 대상 플랫폼이 지원하지 않는 기능에 의존적인 몇몇 코드들을 추가하는 상황에 대해서 알아보자. 이번 예제에서는 대상 플랫폼이 log와 exp 함수의 지원여부에 의존적인 코드를 추가할 것이다. 물론 거의 대부분의 플랫폼에서 해당 함수를 지원한다. 하지만 이번 튜토리얼에서는 대부분 지원하지 않는다고 가정한다. 만약 사용하는 플랫폼이 log 함수를...
[CMAKE] TUTORIAL STEP3
다음 과정으로 설치 규칙과 테스트 관련 정보를 프로젝트에 추가해보자. 설치 규칙은 매우 직관적이다. 아래의 두줄을 라이브러리의 CMakeLists 파일에 다음 두줄을 추가해서 MathFunctions 라이브러리와 헤더 파일을 설치할 수 있다. install (TARGETS MathFunctions DESTINATION bin) install (FI...
[CMAKE] TUTORIAL STEP2
이제 우리 프로젝트에 라이브러리를 추가해보자. 해당 라이브러리는 우리가 앞 서 구현한 제곱근을 계산하는 라이브러리다. 그러면 컴파일러에서 제공하는 기본 제곱근 계산 함수 대신에 이 라이브러리를 사용할 수 있다. 해당 튜토리얼을 위해서 이 라이브러리는 MathFunctions라는 디렉토리에 두도록 한다. 그리고 이 라이브러리의 CMakeLists에는 아...
[CMake] Tutorial Step1
항상 필요할때 필요한 부분만 찾아서 사용하던 CMake. 이번에 공부를 해보고자 CMake 사이트의 Tutorial을 번역하면서 예제를 따라 해보기로 했다. A Basic Starting Point(Step1) 소스 코드로 부터 실행 파일을 만들수 있는 간다한 프로젝트에서 CMakeLists 파일에 단 2줄만 필요로 한다고 해보자. 이것은 우리 튜토리...
Github Gist 코드 공유
블로그에서 코드 공유를 위해서 WordPress Plugin을 사용했었다. 예전 부터 Github에서 Gist란 서비스를 보긴 했지만, 사용해보지 않고 있었다. 최근 Jetbrain 사의 IDE를 사용하면서 Gist만들기가 보여 Gist란 무엇인가란 궁금증이 생겨서 사용해봤다. 내가 사용하고 느낀 Github Gist는 Code Snippet 공...
ld linker (링킹의 기본 이해)
ld는 리눅스 시스템에서 사용하는 링커이다. gcc는 collect2를 호출해 링킹 과정을 수행하는데, collect2는 내부적으로 진짜 링커인 ld를 호출해 링킹 과정을 수행한다. 링킹 과정이란? 컴파일과 링킹에서 마지막 과정으로 조각한 오브젝트 파일들을 하나의 바이너리 이미지로 합치는 과정이다. 링킹 과정은 결합과 재배치 딱 두마디로 요약할 ...
Proxy Pattern
프록시 패턴은 이름에서 알 수 있듯이 대리인 역활을 한다. 대리인이라고 하지만 본 객체의 역활을 모두 수행하는 것은 아니다. 프록시는 본질적 작업을 본 객체에게 위임을 하여 수행한다. 이를 통해서 본 객체의 본질적 작업을 수행하기 전과 후에 작업을 추가할 수 있다. 또한 본질적 작업이 무겁다면 그 작업이 필요로 할 때 초기화를 수행할 수 있다. ...
State Pattern
OOP에서 프로그램 할 대상을 ‘클래스’로 표현한다. 일반적으로 클래스는 구체적인 사물 또는 존재하지 않는 것을 표현한다. 여기에서 State Pattern은 ‘상태’를 클래스로 표현한 패턴이다. divide and conquer : 상태 클래스로 표현하여 복잡한 프로그램을 분할한다. State Pattern은 한 가지 상태에 대해서 처리 할...