손가락이 아프다. 머리는 지끈거린다.

있어도 없어도 압박스런 마감. 지금 일은 특히나 마감이 연기되면서 대체 언제로 연기된건지, 어떻게 된건지도 알 수 없는 상태여서 스트레스는 더욱 더 심각하다. 일의 진척은 많으면 많고 적으면 적다. 뭔가 하긴 했는데 그게 아직 전체적으로보면 일부에 불과하기 때문에 전체 진행률은 얼마 되지 않는다.

온톨로지라는 말은 수년전부터 들었지만 실제로 쓰려고 시도한 건 이번이 처음이기 때문에 시행착오가 많다. 이렇게 할까? 저렇게 할까? 결국 모델링 문제이고, 경험이 부족하다보니 뒤엎기가 일쑤이다. 한 번 뒤집을 때마다 손가락이 마비될 지경이다. 꼭 그럴 필요는 없지만, 적어도 내가 쓰기 편하려면 온톨로지 클래스마다 레퍼가 필요하다. 그러다보니 생각없이 시간을 요하는 코딩이 좀 많다. 정말 이 땐 손가락만 죽어난다. 웃긴건 이것도 익숙해지다보니 딴 생각하면서 코딩을 하더라. 레퍼 클래스는 대충 40개 정도이고, 자체 언어를 표현하기 위한 클래스도 40개 가까이된다. 특히나 자체 언어를 표현하기 위해서는 독자적인 문법 설계가 필요했고 그에 따라 파서를 작성해야 했으며, 매치 알고리즘과 심볼 처리 때문에 머리가 터질 지경이었다.

온톨로지는 컨셉을 정의하며 실제로 어떤 데이터를 만들려면 인디비듀얼(individual, 이거 한글로 뭐라고 써야해?)을 생성해야 한다. 정의한 컨셉은 꽤나 복잡한 구조를 갖기(가질 수 있기) 때문에 인디비듀얼을 손으로 생성한다는 것은 사람이 할 짓이 못된다. 툴도 내 요구를 만족시키지는 못한다. 얽히고 섥힌 데이터 구조를 생성하는 데엔 프레임 기반 온톨로지 에디터인 프로티지만으로는 택도 없다. 결국 나는 스크립트 언어를 하나 정의하고 파서를 만들었다. 꼬박 이틀이 걸렸다.

오늘은 4시간 째 테스트 케이스를 만들고 있다. 고작 10 개를 테스트 하는데 버그가 왜이리 많은건지. 게다가 중간에는 온톨로지 스키마를 변경하는 바람에 생각없는 코딩을 또 했다. 이제 막 하나의 제어문을 테스트 했을 뿐이다. 그것도 가장 기본적인 제어문. 아직도 제어문은 11가지나 더 남아있다. 이것만 하면 다 끝나나? 아니다. 수행 중에 언제라도 정의된 상황에 어긋나면 수행을 변경해야 하는데 이걸 테스트하는 것도 만만치 않다. 수행이 내부에서 새로운 수행을 파생시키는 것 역시 테스트해야 한다. 아아- 일주일동안 테스트만 하겠구나!

기존의 수행 로직이 지역적 최적화를 수행하는 바람에 아주 돌아버릴 지경이다. 머리가 따라가지 못한다. 게다가 최근의 요구 사항 덕분에 이 최적화가 문제가 되는 듯 하다. 내 입장은 최적화 따윈 팔아먹기 직전에 하는거고, 속도가 느리면 CPU를 갈아끼면 된다-인데 이게 잘 안먹히니 문제다. 코드를 작성한 사람은 자신의 코드에 미련을 갖는다는 이야기를 들었던 것 같다. 딱 그런 상황이 아닌가 싶다. 테스트 케이스를 어느 정도 만들고 나면 최적화 코드를 빼러릴 생각이다. 뭐라하면 나도 뭐라 할 생각이다.

슬픈건 이렇게 다 만들어 놓고나면, 이전의 수행과 전혀 달라지는게 없다는 것이다. 뭐라도 좀 바껴야 그럴싸할텐데! 그게 없다니!! 역시 비주얼을 포함시켜야 하나... 신중하게 고려하고 있다. 이 바닥은 멍청한 사람들이 많아서 뽀대를 굉장히 중요시 여기는 듯 하다. 시스템 가장 깊은 곳에서 소리 소문 없이 조용히 동작하는 이 녀석은 대체로 멋진 평가를 기대하기 어렵다. 정말 화려하게 티를 내지 않는 한 계속 그럴 것 같다.

온톨로지가 굉장히 유연한 데이터 구조임에는 틀림없다. 클래스는 고정적이지 않다. 실행 중에도 스키마를 변경할 수 있다. 그런데, 이걸 제어 구조를 표현하는데에 써버리니 새로운 제어 구조의 컨셉이 정의된다한들 기계가 스스로 뭔가 해주기를 기대하기는 어렵다. 아악- 뭔가 좋은 예가 없는걸까?

그래도 온톨로지의 동적인 자료 구조 덕분에 다른 시스템과 데이터 통합에서는 어느 정도 기대하는 바가 크다. 새로운 데이터 규격을 만들고 그것에 해당하는 파서를 만들고- 이런 뻘 짓을 안해도 될 것 같은 생각이 든다. 래퍼를 만들면서 느낀 거지만 익숙해지다보니 온톨로지라는게 은근히 쓸 만 하더라. (아닐 수도 있고- 따지지 말자)

뭐, 이렇게 말한다 해도, 아직까지는 마땅한 답이 없다. 정말로 뭔가 좋아졌다고 하기도 어렵고, 수행 속도가 더 떨어진건 어쩔 수 없는 사실이고, 온톨로지라는걸 내가 제대로 쓰고 있는지도 의문이다. 사실은 세번째가 가장 큰 고민이다. 제대로 쓰고 있는지를 모르기 때문에 답답한 게 좀 많다. 다행히 OWL-S 덕분에 대충 그럴싸하게 쓰고 있다는 생각이 들어서 답답함은 좀 줄었지만.

일정과 평가의 압박을 벗어날 수만 있으면, 타 과제와 통합이라는 압박을 벗어날 수 있으면, 인프라 프레임워크를 개발해야하는 부담을 덜 수만 있으면... 생각은 끝도 없다. 사실 이런 압박 없으면 아무것도 안할지도 모른다. 한가할 땐 한없이 게을러지는게 우리네 청춘 아니던가.

여엉차! 조낸 머리가 터질 것 같고, 손가락이 마비될 것 같고, 미친듯이 만들었더니 이게 아닌데? 라던가, 막상 보고나니 별로에요- 라던가. 별로 신경쓰지 않으련다. 망치면 망치는거다. 어쩌라고? 흥! 대신 잘 되면 큰 소리로 쪼아줄테다. 나도 성질 낼 줄 알거든.

이 글의 트랙백 주소는 http://semix2.tistory.com/trackback/356 입니다
  1. 행처리 2008/07/02 18:07 댓글주소 수정/삭제 댓글쓰기

    글 잘보고 갑니다. ㅋㅋ 여하튼 '큰 소리로 쪼아줄테다.'에 과연 큰소리로? 혼잣말이 아니구요? ㅋㅋㅋ 큰소리는 누구한테? 풉 동휘씨한테 ㅋㅋ 어쨋든 글 읽어보니 여전히 사업단은 이랬다 저랬다 인가요? 안습이군요 =_=;

    1. semix2 2008/07/03 13:09 댓글주소 수정/삭제

      큰 소리로 쪼는건 대중없이 아무한테나 떠벌떠벌- ㅋㄷㅋㄷ 사업단에서 이랬다 저랬다는 요즘은 심하지 않아요. 오히려 그냥 냅두는 정도. 대신 1년 중 평가가 4번입니다. 믿겨지세요? 4번이나 평가를 받는다고요!! 아오-

  2. 형태 2008/07/05 23:01 댓글주소 수정/삭제 댓글쓰기

    올만에 형 블로그 와봤더니...
    그대로네요..ㅎㅎ

    열심히하는 형 모습이 얼마나 멋진데요 ^^;
    힘내시고 담에 서울 가면 놀러 갈게요.

    1. semix2 2008/07/06 00:50 댓글주소 수정/삭제

      그대로라니- 아냐, 나 살 좀 빠졌어 ㅋㅋㅋㅋ
      서울 올라오거들랑 꼭 들러!!