MySQL의 라이센스 모델이 가지는 의미는? MySQL은 결국 죽임을 당할 것인가?

우선 이 글은 The importance of the license model of MySQL or Can MySQL be killed?을 번역한 글임을 밝힙니다.

급하게 번역했기 때문에 오역이 있을 수 있음을 양해 바랍니다. 이하 내용은 번역된 내용입니다.

지난 몇 주간 받았던 공통적인 질문들에 대해 답하기 위해 이 포스트를 남깁니다.

A. MySQL이 없어질까?

1. MySQL을 죽이기 위한 제일 간단한 방법은 라이센스를 더이상 팔지 않거나 그 가격을 굉장히 높게 하는 것입니다.

2. 다른 시나리오는 중요한 부분에 대한 개발 인력을 확 줄여버리는 것입니다. 그러면 사람들은 MySQL의 미래에 대해 의심하기 시작할 것이고 서서히 MySQL을 죽여나갈 것입니다. 특히나 현재의 라이센스가 그대로 있다면 더욱 그럴 것입니다. (MySQL의 코어는 대부분 거대한 커뮤니티가 아닌 SUN의 개발자들을 통해 개발되어왔다는 사실을 기억해야 합니다.)

B. “하지만 누구나 fork할 수 있지 않나?”

누군가 GPL 프로젝트(혹은 그 코드)를 이용해서 fork할 순 있겠지만 그 프로젝트나 코드를 둘러싼 경제적 인프라 스트럭쳐까지는 쉽게 복제할 수 없습니다.

MySQL은 엔드 유져용 애플리케이션이 아니고, 인프라 스트럭쳐 프로젝트는 시스템 스택의 깊은 곳에까지 관여되어 있습니다. 최근 MySQL을 이용해서 혁신을 이뤄냈던 기술적인 파트너들은 대부분 MySQL로부터 라이센스를 받아서 자신의 closed 소스 어플리케이션혹은 (스토리지 엔진 같은) 코드와 MySQL을 조합해서 사용할 수 있었고, 라이센스를 통해 파트너들로부터 받아들이는 직간접적인 수입은 경제 인프라스트럭쳐의 굉장히 큰 부분이었습니다. (이들이 어디서 돈을 벌 수 있는가 정도로 생각하심 될 것 같습니다.)

GPL 프로젝트의 인프라스트럭쳐를 포크하는 것을 통해선 위에서 언급한 파트너쉽 같은 일을 할 수 없고, fork된 프로젝트는 자신들만의 closed 소스 파트와 이 프로젝트를 섞어 사용할 수 없도록 만듭니다. 파트너들이 MySQL코드와 자신들의 코드를 섞어 사용할 수 없게 된다면, 이 파트너들은 MySQL이 아닌 다른 프로젝트를 찾게 될 것이고 결국 MySQL로의 자금 이입이나 MySQL을 둘러싼 기술 혁신은 멈춰버릴 것입니다. 다른 프로젝트들에는 누구나 참여해서 돈을 벌 수 있으니 결국 이런 프로젝트들이 MySQL이 하던 일을 대신하게 되는 것이죠.

MySQL을 위한 기술 지원 회사를 만들 수도 있겠지만 이런 것들만으론 MySQL 유져들이 만족할만큼 MySQL 개발할 수 있는 돈을 충분히 벌 수 없습니다. 그러므로 이런 회사들은 MySQL을 조금 천천히 죽게 만들 뿐 살려낼 수는 없습니다.

오라클처럼 많은 사람들이 일하는 회사에 대항할 경쟁력을 가진 상태로 MySQL을 살아있게 하려면 MySQL을 위해 일하는 사람도 많아야 합니다. 이를 통해 충분한 수입을 얻을 수 없다면 (앞에서 언급했듯이 지원을 통해선 충분한 수입을 얻지 못합니다.) 일부 몇 개 회사들만이 개발에 참여하게 될 것이고, 투자회사에서의 지원도 줄어들게 될 것 입니다. 결국 서비스를 통해서 벌어들이는 돈이 전부가 될 것이지만 이 돈은 그리 큰 규모가 될 수 없습니다.

또한 리차드 스톨만이 언급했던 것처럼 MySQL에선 GPL2만을 사용할 수 있으므로, GPL3 코드와는 결합될 수 없습니다. 이 말은 GPL3를 사용하는 자유 소프트웨어 프로젝트들에서 MySQL을 사용할 수 없다는 것입니다. 하지만 이 문제는 경제적인 문제에 비교하면 대단한 문제라곤 할 수 없습니다.

C. “GPL은 충분히 쓸만한 라이센스인가?”

제 생각에 GPL은 굉장히 훌륭한 라이센스입니다. 이 라이센스는 GPL로 된 프로젝트들을 자유롭게 해주는 동시에 회사들이 풀타임으로 개발에 참여하면서 충분히 돈을 벌 수 있는 가능성도 제공하고 있습니다. 또한 GPL은 이런 회사들이 이 제품을 강력하게 관리할 수 있도록 보장해줍니다. (특히나 그들의 *closed source* 기술 파트너들을 위해) 이게 바로 투자자들이 GPL을 사용하는 회사에게 투자하고 싶어하는 이유라고 할 수 있습니다. 투자자들은 이 제품을 fork하는 것을 통해 이 코드에 대한 권한을 줏어가는게 불가능하다는 사실을 알고 있기 때문이죠.

D. 결론

아마 Sun과 오라클도 이 사실을 알고 있을 겁니다. 이게 바로 Sun이 MySQL을 비싼 가격에 사들였던 이유이고, 오라클이 MySQL을 바보로 만드려는 이유이죠.

MySQL을 fork하기만 하는 정도로 간단한 문제였다면 Sun은 MySQL을 사지 않았을 것이고, 오라클은 MySQL을 포함해서 SUN을 사는 대신 MySQL fork를 만들었을테니까요.

오페라 웹표준 강좌의 한글화와 번역체…

가끔 번역된 문장을 읽다보면 어색함이 느껴질 때가 많다. (물론 말의 체계가 다른 두 언어 사이에서 번역을 진행한다는 것은 쉬운 일이 아니다.) 오늘 RSS를 훑어보다 clearboth에서 진행하고 있는 ‘오페라 웹표준 강좌‘의 번역문을 발견했는데, 어색한 한글 표현에 조금 아쉬움이 느껴졌다.

이제 당신은 CSS를 이용해서 레이아웃을 잡고 스타일을 주는데에 익숙하며, 자바스크립트에서 변수, 함수, 메서드 등의 기본적인 개념을 이해하는 첫 발을 내딛었다 – 비록 그 첫발이 좀 비틀거렸을 수 있지만 말이다. 자 이제는, 그러한 지식을 이용해서 당신의 사이트를 방문하는 이용자들에게 상호작용적이고 또한 역동적인 행동behavior을 제공하기 시작할 때이다. 자바스크립트를 이용해서 이벤트를 조종하는 것은 당신에게 프랑켄슈타인 박사의 세계로 한걸음 내딛게 하며, 또한 당신의 창조물에게 진실로 생명을 부여하는 것이다!

from 49. 자바스크립트 이벤트 핸들링

번역문의 ‘소개’ 파트는 위와 같다. 이 파트의 시작 부분을 살펴보자. ‘이제 당신은 CSS를 이용해서 레이아웃을 잡고 스타일을 주는데에 익숙하며, 자바스크립트에서 변수, 함수, 메서드 등의 기본적인 개념을 이해하는 첫 발을 내딛었다 – 비록 그 첫발이 좀 비틀거렸을 수 있지만 말이다.‘ 영어에서는 우리 말과 어순이 다르다. 뭔가에 대해 이야기하고 뒤에서 계속 부연을 하곤 한다. 하지만 우리 말은 이런 식으로 잘 표현을 하지 않는다. 그러므로 ‘비록 그 첫발이 좀 비틀거렸을 수 있지만 말이다.‘ 식으로 뒤에서 부연하기 보다는 이와 비슷한 표현을 앞에 넣는 게 좋지 않을까 싶다.

조금 비틀거렸을 지는 모르겠지만 이제 당신은 … 하는 첫 발을 내딛었다.

아직 어색하지만 조금 더 우리 말 다운 표현이 된 것 같다. 그런데 여기서 말줄임 표로 표현한 부분도 한 번 다듬어야 할 필요가 있어보인다. 말줄임표로 표현했던 표현은 다음과 같다. ‘CSS를 이용해서 레이아웃을 잡고 스타일을 주는데에 익숙하며, 자바스크립트에서 변수, 함수, 메서드 등의 기본적인 개념을 이해…‘ 쉼표를 통해 대등한 두 가지를 부연이 나열되어 있으니 각각을 앞의 문장에 넣어보자.

조금 비틀거렸을 지는 모르겠지만 이제 당신은 CSS를 이용해서 레이아웃을 잡고 스타일을 주는데에 익숙하며 첫 발을 내딛었다.‘,
조금 비틀거렸을 지는 모르겠지만 이제 당신은 자바스크립트에서 변수, 함수, 메서드 등의 기본적인 개념을 이해하는 첫 발을 내딛었다.

둘 다 조금은 어색한 느낌이 나므로 다음과 같이 수정해보자.

조금 비틀거렸을 지는 모르겠지만 이제 당신은 CSS를 이용해서 레이아웃을 잡고 스타일을 주는데에 익숙해지기 위한 첫 발을 내딛었다.‘,
조금 비틀거렸을 지는 모르겠지만 이제 당신은 자바스크립트의 변수, 함수, 메서드 등과 같은 기본적인 것들을 이해하기 위한 첫 발을 내딛었다.

이 정도 되면 각각은 충분히 자연스러워진 것 같으니 두 문장을 다시 하나로 합쳐보자.

조금 비틀거렸을 지는 모르겠지만 이제 당신은 CSS를 이용해서 레이아웃을 잡고 스타일을 주는데에 익숙해지기 위한 그리고 자바스크립트의 변수, 함수, 메서드 등과 같은 기본적인 것들을 이해하기 위한 첫 발을 내딛었다.

위로 돌아가서 이전 번역문과 한 번 비교해볼 경우 훨씬 자연스러워진 것을 확인할 수 있다.

살펴보는 김에 마지막 문장도 한 번 살펴보자. ‘자바스크립트를 이용해서 이벤트를 조종하는 것은 당신에게 프랑켄슈타인 박사의 세계로 한걸음 내딛게 하며, 또한 당신의 창조물에게 진실로 생명을 부여하는 것이다!‘ 이 문장에서의 주어는 ‘자바스크립트를 이용해서 이벤트를 조정하는 것‘이다. 그런데 우리 말 체계에서는 무생물을 주어로 사용하는 경우는 거의 없다. 주어를 당신으로 바꿔서 문장을 재구성해보자.

자바스크립트를 이용해서 이벤트를 조정하는 것을 통해 당신은…‘ 다시 읽어보았을 때 훨씬 어색하지 않은 것을 확인할 수 있다.

이제 그 다음 구 부분을 살펴보자. ‘당신에게 프랑켄슈타인 박사의 세계로 한걸음 내딛게 하며…‘ 번역문을 자주 접할 수 있게 되어 어느정도 익숙해졌을 지도 모르겠지만 수동 표현은 그다지 친숙한 표현이 아니다. 그러므로 능동태로 다음과 같이 문장을 재구성해보았다.

자바스크립트를 이용해서 이벤트를 조정하는 것을 통해 당신은 프랑켄슈타인 박사의 세계로 한걸음 다가갈 수 있으며 …

문장의 나머지 부분을 살펴보자. ‘또한 당신의 창조물에게 진실로 생명을 부여하는 것이다!‘ 주어를 공유하고 있으므로 이 문장은 ‘또한 자바스크립트를 이용해서 이벤트를 조종하는 것은 당신의 창조물에게 진실로 생명을 부여하는 것이다!‘라는 의미를 가지게 된다. 하지만 주어를 바꿔버렸으므로 뒷 부분의 표현도 다시 수정해줘야할 것 같다.

자바스크립트를 이용해서 이벤트를 조정하는 것을 통해 당신은 프랑켄슈타인 박사의 세계로 한걸음 다가갈 수 있으며, 당신의 창조물에 진실된 생명을 부여할 수도 있게 된다.

자 이제 위에서 다듬은 문장으로 번역문을 업데이트 해보자.

조금 비틀거렸을 지는 모르겠지만 이제 당신은 CSS를 이용해서 레이아웃을 잡고 스타일을 주는데에 익숙해지기 위한 그리고 자바스크립트의 변수, 함수, 메서드 등과 같은 기본적인 것들을 이해하기 위한 첫 발을 내딛었다. 자 이제는, 그러한 지식을 이용해서 당신의 사이트를 방문하는 이용자들에게 상호작용적이고 또한 역동적인 행동behavior을 제공하기 시작할 때이다. 자바스크립트를 이용해서 이벤트를 조정하는 것을 통해 당신은 프랑켄슈타인 박사의 세계로 한걸음 다가갈 수 있으며, 당신의 창조물에 진실된 생명을 부여할 수도 있게 된다.

물론 아직 초벌 번역 정도 수준이다보니 저런 표현들이 많이 보이는 게 어찌보면 당연할 수도 있지만 저 정도로 만족하지 않고, 계속 어색한 문장을 다듬기 위한 노력이 필요할 것으로 보인다.

지난 해 CSS 완벽 가이드를 번역하면서 느꼈고, 지금도 확연히 느끼고 있는 것 중 하나지만 정말 번역을 위해서 필요한 건 영어를 얼마나 잘 이해하는가보다는 얼마나 자연스러운 우리 말 문장을 만들 수 있는가 하는 것이 아닌가 싶다.

더불어 따로 보수를 받는 것도 아니면서 저런 자원봉사를 해주는 clearboth 사람들에게 박수를… (이거 조금 병주고 약주고인가 -_-;; )

‘CSS 완벽 가이드’와 역자…

요번에 위키북스를 통해 출판된 ‘CSS 완벽 가이드‘의 경우 Eric. A. Meyer의 책을 남덕현님, 이준님, 연홍석님 그리고 저 이렇게 네 분이서 공동 번역을 하였습니다. (써놓고 보니 가나다라 순은 아니군요.)

그런데 온라인 쇼핑몰마다, 그리고 포털의 책 소개 페이지마다 역자는 전부 다르게 표기되어 있습니다. 아래는 ABCD순서로 본 각 쇼핑몰의 역자 표기입니다.

Continue reading ‘CSS 완벽 가이드’와 역자…

‘CSS 완벽 가이드’가 나옵니다.

제가 번역한 책인 CSS 완벽 가이드 (원제: CSS Definitive guide)가 드디어 출판됩니다. 작년 4월 쯤에 마지막 원고를 보냈고, 얼마 전 2월 11일 최종 원고를 받았습니다. 요번 주 월요일에 인쇄에 들어가서 3월 9일쯤에 출간될 예정이라고 하네요.

원 저자는 Eric Meyer입니다. 수년 전 CSS Zen GardenCSS/Edge를 봤을 때가 생각나네요. CSS만으로 만들어진 이 화려한 페이지들은 테이블 태그만을 활용하고 있던 제게 신선한 충격을 안겨줬습니다. 세월이 흘러 이 분의 책을 제가 번역하게 될 줄은 상상도 못했네요.

Continue reading ‘CSS 완벽 가이드’가 나옵니다.