Just a Blog

[MiSTer FPGA] "MiSTer 프로젝트가 진짜 '오픈 소스' 프로젝트인가"에 대한 개인적 생각 본문

Game

[MiSTer FPGA] "MiSTer 프로젝트가 진짜 '오픈 소스' 프로젝트인가"에 대한 개인적 생각

wehong 2021. 3. 29. 23:19

1. 서론

최근 MiSTer 프로젝트가 사람들의 이목을 집중시키고 있다. 아케이드 기판 수집가들에게는 저렴하고 편리한 아케이드 기판 대체제로, 가정용 레트로 게임 콘솔 사용자들에게는 간편한 실기 대용으로, 올드 컴퓨터 하비스트들에게는 과거 컴퓨터의 레플리카로 받아들여진다.

그런데 MiSTer 프로젝트가 소개될 때 많은 전문가들과 매체에서 ‘오픈 소스(open-source)’라는 수식어를 붙인다. MiSTer 프로젝트의 공식적인 웹사이트라고 할 수 있는 Github의 wiki 페이지의 ‘DISCLAIMER’에 ‘MiSTer is an open source project’라고 적혀있으며, 해외 유명 레트로 게임 웹사이트 중 하나인 ‘RetroRGB’의 MiSTer 소개 페이지에서도 MiSTer 프로젝트를 ‘open-source project’라고 소개하고 있고, MiSTer 프로젝트를 대중에게 널리 알린 유투버 SmokeMonster도 MiSTer를 ‘open source FPGA platform’이라고 소개하고 있다.

MiSTer wiki 페이지의 설명
RetroRGB의 MiSTer 설명

'오픈 소스’라는 용어는 어떤 대상의 핵심이 되는 원천(source)을 공개해서 여러 사람들이 다양하게 활용할 수 있도록 하는 방식을 의미할 것이다. ‘open source’라는 용어를 찾아보면 거의 ‘open source software’가 함께 찾아지는데, 이는 최초 ‘open source’라는 용어가 ‘open source software’ 운동에서 비롯된 것이기 때문이며, 그래서 소스(source)는 사실 소스 코드(source code)를 의미하는 경우가 대부분이다. MiSTer 프로젝트는 하드웨어와 소프트웨어를 함께 사용하는 프로젝트이지만, MiSTer 하드웨어의 경우에도 HDL(hardware description language), 도면(schematic, pcb layout 등) 등의 소스코드로 구성되기 때문에 소스를 가지고 있는 프로젝트라고 볼 수 있겠다. MiSTer의 도면, HDL, 설정파일 등은 Github와 여러 웹페이지에 공개되어 있기 때문에, 그런 의미에서는 MiSTer는 소스가 공개된 오픈 소스 프로젝트라고 할 수 있다.

분명히 공개된 소스를 컴파일/합성할 수 있다. Quartus Prime Lite로 Github에 공개된 Apple II 코어, NES 코어를 컴파일 해 보니 코어가 만들어 진다.
schematic과 pcb layout 등 하드웨어 정보도 공개되어 있다

하지만 ‘오픈 소스 소프트웨어’ 운동의 핵심적인 관점에서 ‘오픈 소스’를 바라보면, 최근 MiSTer 프로젝트의 개발 방식을 생각해 볼 때 그 개발 방식을 오픈 소스 프로젝트라고 할 수 있는지 좀 다른 생각이 든다. 위키피디아에서 ‘오픈 소스 소프트웨어’의 의미를 검색하면 ‘누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는’이라는 용어가 나온다. 좀 더 첨언하면, 오픈 소스 소프트웨어 운동에서는 오픈 소스 라이센스 안에서 해당 소스 코드를 제한없이 들여다 보고 수정하고 사용할 수 있는 방식을 추구한다.

위키피디아의 '오픈 소스 소프트웨어' 정의

이 관점에 있어서도 MiSTer를 접근하는 사람들은 여전히 문제 없다고 할 지 모른다. 사용자는 Github에서 소스 코드를 마음대로 다운 받을 수 있고 빌드된 것을 사용할 수 있으며, 자기가 수정하거나 fork해서 자기만의 버전을 관리하는 것도 가능할 것이기 때문이다.
이는, 적어도 작년 후반부 까지는 유효한 말이었다고 본다. 하지만 작년 후반부 정도 부터 좀 다른 개발방식들이 소개되면서 이제는 정확히 이렇지는 않을 것 같다는 것이 나의 의견이다.

 

 

2. 본론

우선 먼저 개인적으로 개발자가 자기 개발 노력을 정당히 보상받는 것에 대해, 개인적으로 아무런 이견이 없음을 밝힌다. 오픈 소스 소프트웨어 및 하드웨어 만이 옳바른 개발방식이라고 생각하지 않으며 특히 해당 목적물을 상업적으로 판매하든 오픈 소스로 공개하든 그것은 순전히 개발자가 선택할 문제라고 생각한다.
최근 해외에서는 개발자들이 자신의 개발을 다른 사람들로부터 지원받는 방법에 하나로 Patreon 같은 후원 시스템을 사용하는 경우가 많다. 개발자는 최종 개발물을 상업적으로 판매하지 않아도 개발 활동에 대한 금전적 후원을 받으면서 개발할 수 있으며, 후원자들은 개발물이 아닌 개발자의 활동에 대해 감사의 표시를 할 수 있게 된다.

Patreon 웹페이지

Patreon 같은 시스템은 개발물 직접 구매, 클라우드 펀딩 등과 또 다른 형태로 개발자를 지원하여 개발활동이 활발히 일어나게 한다는 점에서는 좋은 대안 중 하나라고 생각한다. 다만 문제는 후원을 받는 개발자들이 후원자들에게 대한 특별 대우를 하기 위해 개발물을 비후원인에게는 비공개하는 경우가 많아, 이러한 방식이 오픈 소스의 방식과는 다르다는 점이다.
CPS1과 캡콤 초기 아케이드 시스템의 MiSTer 코어를 개발하는 칩 다자인 엔지니어 Jose Tejada(Jotego)씨는 Patreon 계정 후원자에게 CPS1, CPS1.5, CPS2 코어를 선 공개한 다음 나중에 전체 공개를 했다. MiSTer의 여러 코어 개발에 관여하면서 MiSTer 프로젝트를 리드하고 있는 Alexey Melnikov(sorgelig)씨도 최근 여러 코어들의 초기 개선 버전들을 Patreon 후원자들에게 먼저 공개한 후 최종 업데이트 한다.

Jotego의 Patreon 페이지. CPS2 게임 추가 지원 내용이 Lock되어 있다.
soregelig의 Patreon 페이지. MiSTer의 MacPlus 코어의 최신 반영 내용이 Lock되어 있다.

앞서 언급했듯, 개발자가 자신의 개발 활동에 후원을 받으면서 개발물을 만드는 과정에 문제가 있다고 생각하지 않는다. 그들은 작지 않은 노력에 대해 보상을 받을 수 있는 방법을 모색한 것이며, 그것이 MiSTer 프로젝트의 결과에 좋은 영향을 주고 있는지도 모른다.
하지만 이러한 형태가 계속되는 경우 MiSTer 프로젝트를 오픈 소스 프로젝트라고 부르는 것은 맞지 않다고 생각한다. 최종적으로 모든 사람들에게 공개된다고 하더라도 어느 특정한 순간에는 한정적인 사람들에게만 접근이 가능한 것이기 때문이다. 그리고 개발자를 응원하기 위해서 후원하는 것이 아니라 이 접근 권한을 얻기 위해 비용을 지불하는 것 처럼 후원한다면 이는 오픈 소스 정신에 정면으로 위배된다.
MiSTer 구동에 한 축이기도 하면서 거대하고도 성공적인 오픈 소스 프로젝트인 ‘리눅스(Linux)’ OS의 경우, 누구나 메인스트림에서 개발할 수 있는 것은 아니지만 누구나 현재의 공식적 개발 상태를 볼 수 있다. 이 글을 작성하는 시점에 Github 페이지를 살펴보니 19시간 전에 수정한 리눅스의 소스코드 파일도 확인할 수 있다. Jotego의 CPS2는 이 글의 작성 시점에 아직 일반 공개가 되지 않아 그의 Github 페이지에서 확인할 수 없고 Patreon 후원자만 접근해서 사용해 볼 수 있을 뿐이다.

리눅스(Linux) Github 페이지. 19시간 전에 수정이 발생했다는 것을 알 수 있고 확인해 볼 수도 있다.

과거 '시장과 성당'이라는 논의 관점에서 보았을 때, 결국 리눅스는 ‘시장’ 형태의 개발이라면, CPS2는 소수의 개발자와 관계자에게만 공유되는 ‘성당’ 형태의 개발이라고 볼 수 있다.

우리나라에서 번역된 적이 있는, 오픈소스에 대한 에릭 레이몬드의 저서 '성당과 시장'

 

 

3. 결론

Patreon 등 후원 시스템은 개발자가 개발물로 보상 받지 못할 때 개발자의 노력을 후원할 수 있는 좋은 시스템이다. 오픈 소스 개발자에게 개발 활동에 대한 금전적 지원을 해 줄 수 있는 대안으로 보인다. 하지만 후원을 받는 개발자가 후원자들에게 감사의 표시를 위해 개발물에 대한 특별한 접근 권한을 주게 되면 그 개발물은 더 이상 오픈 소스가 아니라고 생각한다.
MiSTer 프로젝트는 그동안 많은 개발자들의 헌신과 노력으로 훌륭한 발전을 이루었다. 이들에 대한 보상이 필요하다면 Patreon 등의 시스템 도입도 괜찮은 방법이라고 생각한다. 대신 MiSTer 프로젝트를 오픈 소스 프로젝트라고 굳이 부르지 않으면 되지 않을까 싶다. 최종 결과물이 어차피 사용자의 손에 쥐어진다는 점에서 사실 아무런 문제가 되지 않을 수도 있다. 하지만 이제껏 수많은 오픈 소스 프로젝트를 보았을 때, 이러한 부분 접근 방식이 도입되면서 오픈 소스 프로젝트라고 부르는 것을 본 적이 없다.

널리 알려진 오픈 소스 프로젝트들. 몰라서 참여를 못하지, 접근하고 싶은데 권한이 없어서 못하는 것이 있을까? (이미지 출처: https://rayleighko.github.io/blog/2019-01-30-what_is_opensource)

모든 훌륭한 개발 프로젝트가 오픈 소스이어야 할 필요는 없다고 본다. 그리고 어쩌면 오픈 소스 프로젝트가 ‘공유’라는 가치의 무게에 대해 조금씩 다르게 생각할지도 모르겠다. 하지만 ‘오픈 소스’ 프로젝트이면서 후원의 비용을 치르지 못하는 누군가에게는 접근을 제한한다는 것이, 이제껏 오픈 소스 소프트웨어의 역사를 봐왔던 입장에서 불편함을 감출 수가 없다.

 

 

 

 

Comments