정태영

졸업 프로젝트로 만들려고 하는 weblog 분석기의 핵심을 담당하게 될 B-tree 작성을 시작했습니다. Key 값의 Update 혹은 Delete 연산은 일어날 일이 없기 때문에 구현을 하지 않을 생각입니다.

우선 File Format 을 대강 잡아놓고, 트리에 값이 내가 의도했던 대로 들어가는 지를 확인하기 위한 Print function 작성을 완료했습니다. Deletion 이 없기 때문에 Node 두 개를 Merge 하는 연산은 필요가 없을 듯 하고, Split 에 어떻게 대처할 지는 이미 노트 위에 모두 정리해두었습니다. Split 시에 Node 를 재정렬하기 위한 QuickSort 와 Search 시에 사용할 BinarySearch 도 구현해야겠네요. (점점 구현해야 하는게 하나 둘 늘어갑니다. 귀찮아지면 Standard C library 에 있는 qsort, bsearch 를 사용할 지도 모르겠습니다.)

예전에 Data Structure 수업 같은걸 들을 땐 ‘그래서 저 트리를 도대체 어떻게 저장해야하는데!!’ 란 생각이 머릿 속에서 떠나질 않았었는데… 막상 포인터 대신 offset 을 이용하는 걸 제외하면 거기서 거기인 거 같습니다.

하여튼 막상 코드 작성을 시작해보니 B-tree 자체를 구현하는 건 그리 오래걸리지 않을 듯 싶어 한시름 덜었습니다. :) 다른 부분들도 여유시간을 충분히 가지고 완성되어 준다면, 디스크 캐쉬까지도 구현해볼 수 있겠네요.

코드는 subversion 을 통해 관리될 예정이며 아래 url 에서 열람이 가능합니다. :)
url: http://trac.unfix.net/browser/btree

덧: 내가 짠 코드지만 왠지 모르게 호감이 간다. 캬캬캬캬!!

정태영

드디어 마지막 학기입니다. 컴퓨터 공학 학위를 따기 위해선 졸업하기 전에 2학기에 걸쳐서 프로젝트를 진행해야 합니다. 대부분 두 학기 동안 한 가지 주제를 가지고 진행을 하지만, 개인적인 이유로 1학기 때 진행하던 프로젝트를 버리고 새로운 주제를 택하게 되었습니다.

1학기에는 초경량 웹서버를 목적으로 lex/yacc 를 이용 HTTP parser 를 만들고 accept -> fork 방식의 간단한 웹서버를 완성했었지만 졸업을 위한 프로젝트 이상의 의미가 느껴지지 않았습니다. 어짜피 작업을 할 바에는 좀 더 가치있는 프로젝트를 진행하는게 낫지 않을까 싶어서 주제를 ‘웹로그 분석기’로 변경을 하게 되었습니다.

‘webalizer’ 나 ‘google analytics’ 를 모델로 개발을 할 생각이며 b-tree 구현이 핵심이 될 듯 싶네요. 머릿 속에서 프로그램 구조는 이미 다 그려졌고, 남은 한 학기 동안 코드로 표현하는 일만 남았네요. 아무쪼록 성공적으로 프로젝트를 수행해서 webalizer 만큼 널리 쓰이는 웹 로그 분석기로 만들 수 있었음 하는 작은 바램입니다 ;)

정태영

제가 복수전공을 하고 있는 컴퓨터 공학과의 경우엔 4학년 1학기 / 2학기에 3학점씩 할당되 있는 전공필수! 프로젝트 과목이 있습니다. 1년 동안 한 가지 주제를 정해서 프로젝트를 진행하는 과목인데… 프로젝트 주제로 ‘초경량 웹서버’ 를 선택했습니다 :)

HTTP 관련해서 오랫동안 봐왔기 때문에 그래도 조금이나마 쉽게 접근할 수 있을 거 같아서 선택해봤는데… 과연 얼마나 쓸만한 걸 만들 수 있을지 모르겠군요. name based virtual host 랑 CGI 정도까지만 구현을 하려고 하고 있는데 흠흠 하튼 재밌을 거 같습니다.

주전공인 전자전기공학부의 졸업 프로젝트는… 영상 처리 관련된 걸 시키는 교수님을 선택했기 때문에 관련된 필터 작성이 될 듯 한데… 아주 흥미진진하군요… 캬캬캬… DFT, FFT 관련해서 실제 구현해 본 적이 없었는데… 이번 기회에 실제로 구현을 해볼 수 있을 듯 합니다. (라곤 하지만 인터넷에서 이미 다 구현된 소스까지 있는 곳을 찾아버렸네요)

간단하게 sharpen, edge detect, blur (뭐 어짜피 lowpass, highpass, bandpass filter 정도니까) 정도를 구현해 보고 싶은데… 어떻게 될 지는 교수님이 요구하는 걸 들어봐야겠군요.

하튼 올 한 해동안 제 자신을 업그레이드할 수 있었음 좋겠습니다. 그럼 오늘도 제 블로그를 찾아주신 모든 분들에게 행복이 가득하길 :)

p.s) DFT 와 FFT 관련해서 이론과 소스가 있는 곳은 아래에… (소스가 그닥 깔끔하진 않습니다)
http://astronomy.swin.edu.au/~pbourke/other/dft/