나는 오랜 전에(그래봤자 몇 년 전) 운영체제를 만들기 위해서 코딩을 한 적이 있다. 운영체제를 만든다는 게 웬만한 개발자들에게는 '헉~'하는 느낌일 수도 있겠지만,
'한승훈'이라는 저자가 쓴 '64비트 멀티코어OS 원리와 구조-OS개발 60일 프로젝트'라는 과감한 제목의 책과 인터넷 서치를 통해 프로세서에 전원이 공급되면서부터 벌어지는(이런 느낌은 물리학자들이 '빅뱅 직후에 어쩌구'하는 것과 비슷하다) 여러가지 일들에 대해 연구했고, 이 과정에서 메모리를 이용하는 방식에 대한 다양한 기술적 방식들을 배울 수 있었다.
내가 리눅스를 만들 건 아니었기 때문에, 가상 환경에서 내가 만든 OS로 부팅으로 하고, 특정 메모리의 영역의 비트를 화면에 출력(어셈블러 출력은 printf와는 차원이 다르다. 이 작업중에 C를 왜 고급언어라고 하는지 알게된다)하는 것으로 그 이상의 작업을 하지는 않았다. 더 하면, 우선 컴파일러부터 만들어야 하는데(어셈블러로 계속 작업하든가), 그럴 시간적 여유를 낼 수는 없었다.
대신 이 때 알아낸 운영체제의 동작원리를 이후의 코딩에 충실히 적용해 나갔다. 자바스크립트로 '클라이언트 OS'라는 개념을 만들어 내었고(웹에 할당된 메모리 공간을 운영체제처럼 활용하는 개념), 모든 고급언어의 고급테크닉을 운영체제에서 사용하는 매우 저수준의 코어한 알고리즘으로 환원했다. 나처럼 매우 고수준의 언어를 쓰는 사람이 운영체제 알고리즘을 쓴다는 것은 곧 주변의 환호와 경멸을 동시에 낳았고, 나는 '개발신' 아니면 '괴물' 이라는 극단적인 별명을 갖게 되었다. 하지만 정작 나는 '집기양단,용기중執其兩端, 用其中(양쪽을 다 잡은 뒤, 그 가운데를 써라)'이라는 중용 6장의 철학을 충실히 구현하는 중이라고 스스로 생각했다.
나는 빛보다 빠른 물질은 없다는 것과, 언어보다 복잡한 알고리즘은 없다는 것과, 운영체제보다 철저한 프로그램은 있을 수 없다는 것을 '나는 생각한다, 고로 존재한다'는 명제만큼이나 의심하지 않고 믿는다.
이번에 개발한 jSteem 서비스는 이런 나의 철학을 충실히 구현한 프로그램 아키텍쳐이자 모델이다. 여기에 쓰인 특징 몇 가지를 말하면, 그건 프로그램 세계의 '경천동지'를 일으킬 수 있기 때문에 특별히 언급하지는 않는다. 이 방식이 상용화되면 개발자들의 대량 해고는 불가피하다. 그리고 아마 그 전에 나는 개발자들 사이의 불꽃튀는 논쟁 사이에서 산화되고 말 것이다. 기억하자! 나는 스티브 잡스도, 제프 딘도 아니다. 그냥 변방의 연약한 개발자. 항상 몸을 사려야 한다.
단지 퍼포먼스가 말하게 하자.