인터뷰

“배움·나눔이 원동력”…글 쓰는 개발자의 슬기로운 오픈소스 생활

백지영
[디지털데일리 백지영기자] “많이 부딪혀보며 만드는 경험이 중요합니다. 직접 공부해서 만들어본 경험과 성취감은 다음의 나를 이끄는 원동력이 되죠. 저 역시 이번에 이직하면서 쓰는 프로그래밍 언어, 팀원, 업무 모두 바뀌었지만 새로운 것을 배움으로써 많이 성장할 거라 생각합니다.”

옥찬호 모멘티 엔진 엔지니어<사진>가 후배나 학생들에게 자주 하는 조언이다. 넥슨 코리아에서 약 6년 간 게임 프로그래머로 일했던 옥 엔지니어는 이달 초 미국 뉴욕에 본사를 둔 인터랙티브 미디어 콘텐츠 플랫폼 기술 기업인 ‘모멘티(Momenti)’로 자리를 옮겼다. 그가 이직을 결정한 이유도, 모멘티가 가진 차세대 인터렉티브 미디어의 신기술을 배우고 업그레이드시켜 본인의 성장과 회사의 성공 두마리 토끼를 모두 잡기 위함이다.

옥찬호 엔지니어는 이미 개발자 사이에서 유명인사다. 페이스북 C++ 코리아 그룹 운영자와 마이크로소프트 MVP 등 다양한 커뮤니티 활동은 물론 2013년부터 게임샐러드로 코드 한 줄 없이 게임만들기, 유니티 쉐이더와 이펙트 제작, 2D 게임 프로그래밍, 러스트 핵심 노트, 모던 C++ 입문, C++ 최적화 등 다수의 번역서를 출간했다. 또, 블로그나 SNS에 다양한 주제의 글을 올려 다양한 사람들과 소통하고 있다.
옥찬호 개발자가 한국커뮤니티데이(KCD) 2019에서 파이토치 C++ API 입문 강의를 하고 있다
옥찬호 개발자가 한국커뮤니티데이(KCD) 2019에서 파이토치 C++ API 입문 강의를 하고 있다
남는 시간에는 여러 오픈소스 프로젝트를 진행하고 있다. 그가 진행 중인 대표적인 프로젝트가 유체역학 시뮬레이션 엔진 ‘커비플로우’와 블리자드에서 서비스하는 게임 하스스톤의 시뮬레이터를 만드는 ‘로제타스톤’이다.

그는 “학생 때는 잘 정리된 과제를 오픈하는 단순한 방식으로 오픈소스 개발 활동에 참여했다. 이후 나만의 뭔가를 만들고 싶다는 생각이 들면서, 간단한 것부터 작업해서 공개하기 시작했다”며 “관심분야가 워낙 다양하고 넓어서 이것저것 공부하는게 많은데, 커비플로우의 경우도 회사 업무보다는 취미로 시작한 것이 커진 경우”라고 말했다.

로제타스톤 역시 블리자드의 수집형 카드게임(CCG) 하스스톤을 즐겨하던 옥 개발자가 2017년부터 시작한 오픈소스 프로젝트다. 현재 강화학습(RL)을 통해 프로게이머 수준으로 플레이하는 인공지능(AI) 에이전트를 만드는 것을 목표로 하고 있다.

그는 “처음 로제타스톤 프로젝트를 시작하게 된 계기는 연습모드로 컴퓨터와 대결을 자주 했는데 간혹 컴퓨터가 사람이라면 절대 하지 않을, 상식적으로 이해되지 않는 플레이를 했다”며 “당시 알파고에 빠져있었는데, ‘하스스톤도 저렇게 할 수 있지 않을까’ 라는 단순한 생각으로 시작했다”고 설명했다.
블리자드의 수집형 카드게임 '하스스톤'
블리자드의 수집형 카드게임 '하스스톤'
프로젝트를 시작한지 얼마 안됐을 무렵, 디자인의 유사성을 이유로 저작권 신고를 당한 경험도 있다. 오픈소스는 자유롭게 써야 한다는 생각에 로제타스톤에는 사용이 비교적 자유로운 MIT 라이선스를 채택했었지만 원작자와 해결 방안을 논의해 AGPL 3.0로 교체한 이후로는 저작권에도 신경을 쓰고 있다.

벌써 5년 차 프로젝트가 된 로제타스톤은 현재도 신규 확장팩에 등장하는 새로운 키워드 및 카드들을 구현하며 활발하게 개발되고 있다.

그는 지난해 정보통신산업진흥원(NIPA)에서 진행한 ‘오픈소스 컨트리뷰션(올해는 오픈소스 컨트리뷰션 아카데미으로 바뀜)’에 로제타스톤 프로젝트를 진행하며 멘토를 맡기도 했다. 그는 “오픈소스 컨트리뷰션은 오픈소스 발전에 기여할 수 있는 좋은 프로그램”이라며 “오픈소스 협업을 경험하고 싶은 개발자, 학생들에게 많은 도움이 된다”고 했다.

이밖에도 2019년과 2020년에는 국민대에서 진행하는 ‘오픈소스 소프트웨어(OSS) 개발자 포럼 SW 겨울 캠프’와 지난해 SW 마이스터고 토크 콘서트, 깃허브 데브옵스 밋업 등에 참여하며 자신의 개발 경험을 아낌없이 나누고 있다.
2020 오픈소스 컨트리뷰톤 로제타스톤 프로젝트팀. 앞줄 왼쪽에서 네번째가 옥찬호 개발자
2020 오픈소스 컨트리뷰톤 로제타스톤 프로젝트팀. 앞줄 왼쪽에서 네번째가 옥찬호 개발자
최근 개발을 처음 시작할 때 어떻게 해야 하느냐는 질문을 많이 받는다는 그는 이렇게 조언한다.

“프로그래밍 언어를 새로 배울 때는 기본 문법만 빠르게 보고 간단한 프로젝트를 바로 만들어 보라고 합니다. 만들다가 막히는 부분이 생길 때는 공식 문서를 살펴보거나 다른 사람들에게 질문해 하나씩 해결하죠. 뭔가 동작하는 걸 완성해보는 경험이 중요합니다. 자신이 뭔가 할 수 있다는 성취감을 얻었다면, 이후에는 고급 기능을 많이 사용하는 프로젝트로 넘어가면서 조금씩 성장하는 자신의 모습에 더 큰 성취감을 얻게 되죠. 이런 과정이 자신의 성장에 정말 중요합니다..”

그는 “오픈소스 활동 역시 예전에는 자료가 많지 않았지만 이제는 깃과 깃허브를 다루는 책이나 강의도 많아졌다”며 “오픈소스 컨트리뷰션이나 구글의 썸머오브코드와 같은 프로그램에 참여하는 것도 좋은 출발점이 될 수 있다”고 강조했다.

그는 이어 “보다 나은 오픈소스 개발 환경을 만들기 위해선 개발자들에게 더 좋은 도전 경험을 가질 수 있도록 지원하는 것이 중요하다”며 “많은 돈을 벌게 되면 막 시작한 개발자에게 도움을 줄 수 있는 재단을 만드는 것이 목표”라며 웃음지었다.

※이 기사는 디지털데일리와 정보통신산업진흥원(NIPA) 오픈-업(Open-Up)이 공동 기획한 기사입니다.
백지영
jyp@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널