시간의 흐름, 그리고 오픈소스

따뜻한 이야기 2008/10/13 01:55 by daybreaker

최근 모종의 일(?) 때문에 우분투를 본격적으로 써야 할 일이 생겼습니다. 뭐, 그동안 데비안이나 우분투를 서버용으로 오랫동안 사용해왔기 때문에 새삼스런 일은 아니지만, 이번에는 데스크탑 운영체제로 사용해야 했기 때문에 실제 작업 환경을 구축하는 일이라 좀더 다른 의미가 있지요.

제가 데스크탑 버전을 마지막으로 써본 것이 우분투 6.x 시절입니다. 노트북에 멀티부팅으로 깔아서 잠깐 써봤던 정도이고, 아직 본격적으로 이용해야겠다는 생각은 들지 않았었습니다. 절전 모드 동작이 불안하다든지, 당시만 해도 소리가 나오게 하기 위해 설치 후 잡다한 삽질을 해야 했다든지, 특히 설치 직후 한글 입력과 미려한 한글 글꼴 사용을 위해 이것저것 해야 할 일이 너무나 많았습니다. 관련 지식이 있는 사람이라면 그래도 한두 시간의 삽질로 해결할 수 있겠지만 전혀 경험이 없는 사람들이나 일반 사용자들의 경우엔 접근하기 어려웠고, 우분투를 주 운영체제로 사용한다는 건 일종의 모험 같은 것이었습니다.

시간이 흘러흘러 2년여가 지났습니다. 약 2년 전부터 듀얼코어급 데스크탑을 사용하기 시작했고, 학교에서 라이센스를 나눠준 Windows Vista를 써오고 있었습니다. 그러다가 얼마 전 새 하드디스크를 구입하게 되었고, 그동안 가상머신에서 깨작깨작(...) 가지고 놀던 우분투를 멀티부팅으로 제대로 깔아볼 수 있었습니다.

우선 놀라운 것은 별다른 설정 없이, 설치 과정에서 한글 키보드 레이아웃을 선택한 것만으로 한영 전환이 기본으로 동작했다는 점입니다. 한글 윈도우를 쓴다면 지극히 당연한 일이지만, 리눅스에서는 아직까지 당연한 게 아니었습니다. 제가 할 일은 두벌식 대신 세벌식을 쓰도록 바꾸는 정도 뿐이었습니다. 글꼴 또한, 최근 배포되기 시작한 NHN의 나눔 시리즈나 아리따체 등 기본 은글꼴 시리즈 외에도 선택의 폭이 커져 보다 미려한 화면을 볼 수 있게 되었지요. (특히 나눔고딕의 경우 우분투에서 웹페이지 기본 글꼴로 아주 잘 어울립니다.)

ubuntu-screenshot

우분투 듀얼모니터 적용 스크린샷

게다가, Windows Vista도 한 번에 잡지 못했던 8800GTS 그래픽카드 드라이버도 독점드라이버 사용 클릭 한 번으로 해결했고, 고급 사용자들만이 성공할 수 있었던 무한한 삽질(-_-)의 듀얼모니터 설정 또한 nvidia-settings라는 프로그램을 이용해 아주 간단하게 끝마칠 수 있었습니다. 거기에 절전·최대절전모드까지 완벽하게 동작하고 있습니다. ㅠ_ㅠ

이제 윈도보다 설치가 간단해진 것 같습니다. 웹브라우저, 오피스, 통합 메신저 등이 기본으로 깔려 있기 때문에 개발자처럼 특별한 소프트웨어를 필요로 하는 경우가 아니라면 설치 후 기본 UI 글꼴, 바탕화면 그림 등 몇 가지 손보는 것 외에는 별로 할 일이 없습니다. 다만, 오픈소스 운영체제의 특성상 처음부터 독점 소프트웨어를 설치할 수 없기 때문에 mp3를 처음 재생할 때 코덱 설치 안내가 뜬다든지 그래픽카드 드라이버도 한 번 더 클릭해서 활성화해줘야 하는 단점은 있지만 어차피 윈도우 깔고 나서도 칩셋 드라이버며 온갖 드라이버를 깔아야 하는 수고스러움을 생각한다면 오히려 더 간단합니다. 그래픽 드라이버 쪽에서 아직 독점소프트웨어에 의존해야 하는 부분은 있지만, ATI도 오픈소스 드라이버 발표를 확정했고(아직까지 ATI보다는 nVidia 쪽이 리눅스에서 쓰기 편합니다), nVidia의 리눅스 드라이버 지원도 잘 이루어지고 있어 사용자 입장에서는 전혀 문제될 것이 없습니다.
사실 아주 초창기 때는 리눅스의 그래픽 환경을 사용하기 위해 자기가 가진 모니터와 그래픽카드가 지원하는 수직·수평 주파수 값을 알고 있어야 했을 정도니 사용자들이 쓰기엔 요원해보이는 적도 있었습니다.

저는 놀랐습니다. 하나의 철학으로 시작한 오픈소스 운동이 수많은 사람들의 손을 거치며 리눅스를 탄생시키고 그것이 점점 발전하여 이제는 정말로 사용자 입장에서 쓸 만한 그 무엇이 되었다는 것에 말이죠. 물론 우분투 뒤에는 엄청난 재력가인 마크 셔틀워스의 든든한 후원이 있었기는 합니다만 기본적으로 오픈소스 철학 하에 만들어지고 있고 그의 지원이 없었어서 시간이 더 걸렸더라도 결국엔 이렇게 발전했으리라 생각합니다. 아무튼, 이제 슈프림 커맨더와 같은 윈도우 전용 게임을 하거나 비주얼 스튜디오 개발을 하지 않는 이상 우분투를 메인으로 써도 되겠다는 생각이 들었습니다.

인터넷 뱅킹과 전자상거래를 이미 모든 웹브라우저에서 이용할 수 있는 유럽에서는 실제로 우분투를 메인 운영체제로도 많이 사용하고 있습니다. 스웨덴 교환학생할 때 기숙사 같은 층 친구도 우분투를 데스크탑 운영체제로 사용하고 있었지요. (아, 한국의 IT 현실이 이럴 때 특히 안타깝습니다.) 자신의 용도에 맞추어, 굳이 상용 제품 없이도 컴퓨터 생활을 할 수 있는 세상을 리눅스와 우분투가 열어주었습니다.

상용 소프트웨어들도 그 나름대로의 장점이 있습니다. 문제가 발생했을 때 따질 수 있는 창구가 존재한다는 점이 대표적이겠죠. 하지만 이제 오픈소스 소프트웨어들도 상용 소프트웨어만큼의 기능·성능을 가지기 시작했고 그로 인해 기업들이 독과점할 수 있는 여지를 줄여버렸습니다. 따라서 오픈소스의 존재로 인해 상용 제품을 파는 기업들은 계속해서 부단히 노력해야 할 수밖에 없고, 이는 소비자 입장에서 보다 다양한 선택권을 주는 효과를 가져옵니다.

니들웍스의 모토 또한 그러한 웹의 다양성 유지·확보가 중요한 부분을 차지하고 있죠. 텍스트큐브 또한 마찬가지입니다. 누구나 생소한 개념이었던 블로그를 비교적 손쉽게 설치하고 사용해볼 수 있는 토양을 마련하였고, 이는 우분투와 같이 독점 서비스들에 대한 훌륭안 대안재가 되었습니다. 한편으로는 그만큼 더 분발해야겠다는 책임감도 생깁니다.

저는 가끔 생각합니다. 단순히 지식정보화시대라는 낱말로 표현되지 않는 오픈소스가 세상을 어떻게 변화시켰는지, 어떻게 변화시키게 될지에 대해 후대의 역사학자들이 어떻게 평가할지 말이죠. 인류가 수백, 수천년 후에도 계속 번영한다면 아마도 굉장히 특이한, 굉장히 중요한 사건으로 기록되지 않을까 싶습니다.

이상 갑자기 쓸데없는 감상(...)에 젖어본 우분투 사용자(...)였습니다;;;

ps. 여기서 '독점'이란 단어는 단순히 시장을 장악한다는 의미뿐만 아니라, 폐쇄적인 라이선스·약관을 가진 경우도 포함합니다.
필자
author image
Daybreaker(아침놀)입니다. 현재 KAIST 전산학과에 재학 중이며 전산 외에도 물리, 음악, 건축 등에 관심이 많습니다. Needlworks 내에서는 각종 홈페이지 제작 및 서버 관리 등과 함께 Textcube 개발에 참여하고 있습니다.

홈페이지 : http://daybreaker.info

2008/10/13 01:55 2008/10/13 01:55

실종아동찾기 캠페인 (findingNemo 프로젝트) 관련 서버 장애 및 오류 복구 안내

머리아픈 이야기 2008/10/08 17:37 by inureyes

실종아동 찾기 캠페인 프로젝트 및 플러그인 동작 오류에 대한 안내를 드립니다.

10월 1일부터 TNF/Needlworks 의 메인 서버인 TNF1에 오류가 생겨 이후 서버 이전 및 복구 작업을 진행하였습니다. 그 과정에서 실종 아동 찾기 플러그인 파일의 마지막 백업일이 2008년 2월이라 당시의 파일을 복원하며 임시파일인 RSS 캐시 데이터가 10월 8일 새벽 4시경부터 오전 10시 30분까지 노출되었습니다. 이로 인하여 과거의 정보가 출력되는 문제와 함께, 해당 데이터를 12시간 단위로 캐싱해서 사용하는 티스토리의 플러그인도 과거 정보를 보여주는 문제가 있었습니다.

현재는 서버 복구 작업및 과거 캐시 파일들에 대한 삭제 작업이 이루어진 상태입니다.

이번 데이터 장애는 서버 복구 과정에서 과거 파일을 사용하면서 해당 서비스와 같이 백업 되었던 임시파일이 출력된 경우이므로, 실종 아동의 데이터 보관과는 아무런 연관이 없음을 알려 드립니다. 또한 TNF/니들웍스의 서버 복구 과정에서 일어난 사고이므로, 캠페인에 관련해서 도움을 주시는 어린이 재단과는 관련이 없음도 함께 알려 드립니다.

예상치 않은 긴급 복구 작업으로 인하여 과거의 임시 저장 데이터가 출력된 부분에 대하여 관계자 분들께 죄송하다는 말씀을 드립니다. 또한 관련하여 문제를 해결하기 위해 도움을 주신 어린이 재단 및 다음 커뮤니케이션 측에 감사의 말씀을 드립니다.

필자
author image
inureyes 입니다. 하고 싶은 일과 해야 할 일의 균형 맞추기를 하며 즐겁게 살고 있습니다. N/W에서는 구성을, TC에서는 교리 전파? 및 사회자?를 맡고 있습니다. 오전과 오후에는 물리학을, 저녁 시간에는 코딩을 하며 삽니다.
http://forest.nubimaru.com

2008/10/08 17:37 2008/10/08 17:37

PHP5와 텍스트큐브

머리아픈 이야기 2008/08/29 01:14 by inureyes

오랜만에 글을 적습니다. 핑계라면 핑계이겠습니다만, 살아가면서 가끔 여러 일들을 겪으며 정리가 필요한 시기가 니옵다. 비단 한 사람만이 아니라 사람들의 모임에도 그런 시가기 오지요. 그 시기를 어떻게 지나가는지가 참 중요하다는 생각이 듭니다.

간만의 글 치고는 고른 내용이 좀 딱딱하겠습니다. 텍스트큐브 1.8 이후부터 실행을 위해 PHP5.2 와 MySQL 4.1 이상을 기본 사양으로 요구하는데, 오늘은 그에 대한 설명이나 변화점을 이야기 하려고 합니다.

국내의 대부분의 PHP 어플리케이션들은 PHP4를 기준으로 제작되고 있습니다. 여러 이유가 있지만, 가장 큰 이유는 프로그램을 설치할 수 있는 환경을 주로 제공하는 호스팅 업체들이 PHP5 를 지원하는 경우가 적기 때문입니다. PHP4 와 PHP5 는 숫자 하나 차이가 나지만, 굉장히 다른 특성을 보이는 언어입니다. 그래서 PHP4를 기준으로 만들어진 응용 프로그램들은 PHP5에서 동작하지 않는 경우들이 간혹 있습니다.

그렇다고 PHP5 가 굉장히 새로운 언어는 아닙니다. 물론 PHP4 보다는 최근에 나왔지만, 어디까지나 상대적으로 보았을 때 입니다. 올해는 PHP5가 나온지 5년이 된 해입니다. PHP 5.3과 PHP6 이 개발 중에 있으며, 멀지 않아 사용할 수 있게 될 것입니다.

지금까지 PHP 4.3을 기준으로 제작되던 텍스트큐브가 PHP 5.2를 기본 환경으로 선택하게 된 근본적인 이유는, 더이상 PHP 4 가 개발되지 않는다는 점 때문입니다. PHP 4의 공식적인 지원은 얼마전 종료 되었습니다. PHP.net에서는 보안을 포함한 여러 문제로 사용자들이 PHP 5.2 이상으로 이주할 것을 권고하고 있습니다. 웹을 둘러싼 환경은 빠른 속도로 변하게 될 것입니다. 이러한 과정에서 니들웍스와 텍스트큐브 개발 그룹도 결정을 해야 했습니다.

텍스트큐브 1.7의 과거 환경 지원은 굉장히 폭넓습니다. PHP 4.3 과 MySQL 3.23 이상의 환경을 지원합니다. 이러한 지원은 사용자에게는 환경에 대한 고민을 하지 않아도 되는 이점이 있지만, 코드의 효율성 입장에서는 문제가 있습니다. 더 상위의 환경에서 텍스트큐브를 돌려도 속도의 이점을 볼 수 없기 떄문입니다. 예를 들면, 윈도우 비스타가 지원되는 환경에서도 도스 시절의 프로그램을 돌릴 수는 있지만 그 프로그램이 윈도우 비스타의 성능을 모두 끌어낼 수는 없는 것과 마찬가지입니다. 텍스트큐브가 하위 호환 모드로 동작할 때, 유니코드 환경 지원과 MySQL 3 데이터 베이스 지원을 위해 들어가는 서버 리소스는 텍스트큐브 전체 동작시 사용하는 리소스의 1/3 이상입니다.

개발 패러다임의 변화도 PHP 5.2를 택한 이유입니다. 텍스트큐브의 일부 컴포넌트는 객체 지향 패러다임을 기반으로 작성 되었지만, PHP 4 의 객체 지원은 굉장히 부족합니다. 또한 속도 부분에서 큰 손해가 있기 때문에 텍스트큐브 1.7까지는 일부의 객체 기반 코드 일부의 순차 처리 코드로 이루어져 있습니다. 그러나 텍스트큐브 2.0에서 사용될 TCF (텍스트큐브 코어 프레임웍 – 가칭입니다.)를 개발하는 과정에서 개발에 참여하는 분들은 현재 코드의 혼란을 최소화 하기 위해서 코드의 패러다임을 변경하기를 원했습니다.

위에서 설명 드린 것과 같이 PHP.net 에서의 PHP 4의 지원 중단, 과거 환경 지원으로 인하여 발생하는 성능 감소, 새 프레임웍을 둘러싼 개발 패러다임의 변화를 이유로 텍스트큐브 1.8 이후부터는 PHP 5.2와 MySQL 4.1 이상을 요구합니다. 새로운 프레임웍은 텍스트큐브 2.0부터 본격적으로 도입될 예정이며, 텍스트큐브 1.8은 텍스트큐브 1.x 코드를 새로운 환경의 특징을 살려 최적화하는, 다리 역할을 하는 주춧돌이 될 예정입니다. 텍스트큐브 1.8은 그 전까지 막혀 있던 병목들을 제거하여, 단위 시간당 더 많은 트래픽을 더 적은 CPU와 서버 로드를 사용해서 처리할 수 있는 가능성을 시험하게 됩니다.

간단하게 결졍된 내용은 아니었습니다. 기본 요구 환경의 변화와 관련하여 내부적으로 많은 토론이 있었습니다. 한국 호스팅 업체의 환경이 과련 이러한 요구 사항을 받아 줄 것인지부터, 새로운 환경의 어떤 특징을 살려서 코드를 써 나갈 것인지에 대한 이야기도 있었습니다.

그 논의에 참여하며 한가지 확신한 것이 있습니다. 정체는 무기력을 낳습니다. 텍스트큐브를 현재 한국 웹 호스팅의 현실에 맞게 개발하는 것도 중요합니다. 그렇지만 조금 눈을 밖으로 돌리고 조금 앞을 내다보려고 합니다. 지금이 현실에 대한 안주가 아닌 변화를 위한 적기입니다. 언젠가는 시작해야 하는 일입니다. 그래서 시작하려고 합니다.

덧) PHP 4.3 사용자 분들이 많고, 당장 쉽게 새로운 환경으로 이전하기 힘든 부분을 어떻게 지원할 것인지에 대한 논의도 있었습니다. 텍스트큐브 1.8을 개발하는 중, 성능 향상이나 기존 버전에서 구현이 불가능한 부분들을 제외한 기능이나 인터페이스 추가와 같은 부분들은 기존의 텍스트큐브 1.7 에도 계속 반영하고 발표할 예정입니다.

필자
author image
inureyes 입니다. 하고 싶은 일과 해야 할 일의 균형 맞추기를 하며 즐겁게 살고 있습니다. N/W에서는 구성을, TC에서는 교리 전파? 및 사회자?를 맡고 있습니다. 오전과 오후에는 물리학을, 저녁 시간에는 코딩을 하며 삽니다.
http://forest.nubimaru.com

2008/08/29 01:14 2008/08/29 01:14