블로그

gurugio의 이미지

CPK 2.3.5

도배해서 죄송합니다. 합쳐서 올리면 너무 길것 같아서 나눠서 올립니다.
관심좀..굽신굽신 =)
------------------------

gurugio의 이미지

CPK 2.3.4

2단계에서는 빌드와 관련된 모든 정보를 하나의 파일에 모아서 처리해보았습니다. 그런데 아직도 하나가 각 Makefile에 남아있습니다. 바로 빌드 명령입니다. 실제로 컴파일러, 링커를 호출하는 빌드 명령이 각 Makefile에 남아있고, 누군가가 실수로, 혹은 잘 몰라서, 아니면 잠깐 급해서라도 이 명령을 손대면 전체 제품의 빌드에 문제가 생길 수 있습니다. 이번에는 아예 빌드 명령까지 분리해서 각 서브 디렉토리의 Makefile에는 이 디렉토리의 최종 산출물에 대한 정보만 저장되도록 만들어보겠습니다.

gurugio의 이미지

CPK 2.3.3

빌드 순서를 생각해보면 configure는 프로젝트를 빌드할 플랫폼에 대한 정보를 얻습니다. 그리고 make가 실행되면서 make에 지정된 옵션에 따라 빌드가 시작됩니다. 따라서 실질적으로 빌드 프로세스를 조정할 수 있는 것은 make의 옵션입니다. 따라서 make의 옵션을 인식해서 옵션에 맞게 빌드를 진행할 수 있도록 Makefile을 작성해보겠습니다.

gurugio의 이미지

CPK 2.3.2장

먼저 아주 단순한 Makefile을 작성해보겠습니다. GNU make가 제공하는 매크로는 사용하지 않고, 개발자가 모든 명령을 직접 Makefile에 써주는 형태를 보여드리겠습니다.

가장 먼저 만들 것은 소스 트리의 가장 상위 Makefile입니다. 지금부터 소스에서 가장 상위 디렉토리가 현재 디렉토리라고 가정하겠습니다. 따라서 가장 상위의 Makefile은 ./Makefile이라고 표시됩니다. 다음은 ./Makefile의 내용입니다.

# config.mk is generated by configure
include config.mk

all:
make -C src
make -C test

clean:
make -C src clean
make -C test clean

gurugio의 이미지

CPK 2.3.1장

빌드 과정을 준비하기 위해 빌드 대상이 될 소스를 몇개 만들겠습니다. 소스가 저장되는 디렉토리는 src와 test가 있습니다. src 디렉토리는 CA라이브러리에 들어갈 소스들이 저장됩니다. 그리고 test 디렉토리는 CA라이브러리의 각 API를 테스트할 유닛 테스트 소스들이 저장됩니다.

현재는 configure에서 생성해준 플랫폼 정보가 있으므로 이 정보를 알려주는 API를 만들어보겠습니다. 그리고 이 정보를 화면에 출력하는 유닛 테스트를 만들어보겠습니다. 엄밀히 말하면 유닛테스트 프로그램이 화면에 데이터를 출력하고 끝난다면 테스트로서 의미가 없지만 실행 파일을 빌드하는 예제를 만들기 위해서 그렇게 만들어보겠습니다.

다음은 src/sys_info.c 입니다.

/*********************************************************************
* $Id$
*********************************************************************/

#include
#include

jachin의 이미지

자신을 사랑하는 프로그램 만들기!

컴퓨터를 하다보면 일로 느껴질 때가 많습니다.

자신이 하는 일이 어느 때인가 '기계적인 일의 반복'이라는 것을 알게 되지요.

그럴 때엔, '컴퓨터'가 자신을 위해 봉사하도록 만들어보세요.

주변 친구들의 생일도 예쁘게 보여줄 수 있도록, 프로그램도 만들어보고,
내가 자주 사용하는 SNS 서비스 프로토콜도 분석해봐서 주변 친구들의 이야기도 따로 묶어 엮어보고,
블로그 글들 긁어다가 자기 자신이 좋아하는 분야별로 묶어두도록 만들어보고...

저요? 저야 뭐... 할 수 있는게 있나요. ^^

그냥 자유롭게 컴퓨터를 쓸 수 있기 위해 노력했답니다.

여러분들도 컴퓨터의 노예가 아니라, 컴퓨터의 주인으로서 자유를 만끽하시길 바랍니다.

dormael의 이미지

drupal db 테이블 optimization 스크립트

역시 누군가 만들어 놨을거라 생각!

근데 스크립트에 아뒤, 비번 넣은거는 보안팀에 한대 맞겠는데 좋은수 없을까용?

http://blog.schmichael.com/2007/08/03/drupal-database-maintenance-script/

나빌레라의 이미지

Vim 어디까지 사용해 봤니?

xNIX 바닥 개발자들을 구분하는 많은 기준이 있겠지만, 그 중 선호하는 에디터 기준으로 나누는 방법이 있다.

VI(M) vs. emacs

나는 이맥스를 잘 쓰고 싶어하는 VIM 사용자이다. 이 바닥에서 학생시절부터 코딩질을 십년 넘게 하면서 VIM만 사용해 왔다. 한 때 이맥스를 쓰고 싶어 잠시 사용해보기도 했으나 이내 VIM으로 돌아왔다. 아~ 정말 이맥스를 잘 쓰고 싶다.

어떤 프로그램을 잘 다루고 싶을 때 가장 먼저 하는 일은 인터넷에서 해당 프로그램에 대한 howto 문서나 강좌를 찾아보는 일이고 그 프로그램이 꽤나 유명한 것이라면 서점에서 책을 사서 책을 보고 실습해 보며 익힌다.

국내서만 기준으로 인터넷 서점에서 검색해 보면, VI(M) 관련 책은 세 권이 나오고, 이맥스 관련 책은 두 권 나온다.

그누 이맥스 시작하기

나빌레라의 이미지

나빌레라의 프로그래밍하기 #8 (마지막)

8. 오브젝트 도출
이번 편을 쓰기 전에 제목을 무엇으로 해야 하나 약 1분간 깊은 고민을 했다. 제목을 정하기 위해 구글 검색을 할 정도였다. 이번 편에 작업하고자 하는 내용은 단순하고 명확하다. 지난 글에서 분석한 명사와 동사를 기준으로 데이터 베이스의 테이블과 코드 로직의 메소드, 코드 로직의 자료 구조등을 도출해 내는 작업이다. 나는 이것들을 통칭할 수 있는 용어로 "오브젝트"라는 용어를 직관적으로 떠올렸다. 하지만 바로 이어서 "엔티티"라는 용어가 치고 올라왔고 내 머릿속은 복잡해 졌다.

지리즈의 이미지

좋은 인터페이스란(1)?

모든 사용자에게 좋은 인터페이스란 유토피아 같은 것이다.

사용자가 가지고 있는 신체적 특성(예, 장애)는 두 말할 것도 없이 지식 수준, 연령 등 고려할 요소는 매우 많고 이 모든 사용자들을 만족할 만한 통일된 UI란 존재할 수 없다.

내가 요즘 인터페이스에 대한 생각을 다시 가지게 되는 것은 80이 넘으신 할머니에게 집에서 사용하지 않는 노트북에 우분투를 깔아서 드리면서 부터 이다.
소일거리가 별로 없으신 할머니께서 지루해 하시는 것 같아, 수도쿠 같은 게임이라도 즐기시라고 한 것인데, 생각보다는 적응을 잘 하셨다.
수도쿠보다는 마장이나 특히 kdiamond를 즐겨 하시지만...

80이 넘으신 문맹에 가까운 할머니께 우분투 데스크탑은 어떨까?
(문맹은 아니시지만, 글을 읽는 속도가 매우! 느리시다)

사실, 그냥 기본으로 우분투를 설치한 상태라면 사용하시기가 절대로 쉽지 않을 실 것이다.

그래서, 내가 한 것이 자동로그인, 스크린세이버 이후 암호입력제거, 키링에서 암호입력제거 등등
많은 보안 관련 루틴을 우회하게 하는 것이었다.

페이지

RSS - 블로그 구독하기