fender
20k
2020-08-06 09:19:46 작성 2020-08-06 17:38:41 수정됨
20
3860

오픈소스 활동에 대한 소소한 자랑글


전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인 양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있을 것 같습니다. 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 엔진이나 애드온의 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

다행히 누가 이를 대체할 애드온을 만들어서 올려 두었더군요. 하지만 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR로 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 인수 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서나 번역부터 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.


덧말: 요즘 편하게 쓰고 있는 퍼디(Ferdi)라는 프로그램이 있는데 한글화가 안되어서 불편하더군요. 혹시 도전해보실 분이 있을까요? ㅎㅎ

18
3
  • 댓글 20

  • fender
    20k
    2020-08-06 09:20:36 작성 2020-08-06 09:20:46 수정됨

    오키 게시판에 확실히 무언가 문제가 있는 것 같습니다. 글이 올라가지 않아서 네 번 만에 성공했네요.

    전에도 같은 이유로 장문의 글을 날린 적이 있어서 미리 복사해두지 않았다면 또 멘붕할 뻔 했습니다.

  • 볼피르
    21
    2020-08-06 09:24:51 작성 2020-08-06 09:25:31 수정됨

    외람된 말이지만 fender님은 몇살부터 개발에 입문하셨는지 궁금하네요.

    끝없이 노력하시는것도 보이지만 그 전에 개발을 정말 즐기시는분 같습니다.

    저도 정말 제가 개발을 머리로 하는게 아닌 몸이 반응해서 하는 경지에 오르고 싶네요.

    항상 뭔가 탐구하고 하는부분에서 즐거워하시는 부분이 있는것 같아 존경합니다.

  • fender
    20k
    2020-08-06 09:28:45 작성 2020-08-06 09:29:09 수정됨

    볼피르 // 시작은 꽤 어렸을 때 했습니다. 초등학교 때 집 주변에 컴퓨터 학원이 생긴게 신기해서 부모님 졸라서 등록했었고 멋모르고 이런 저런 언어를 맛보기로 배운 것이 시작이었던 것 같습니다.

    중고등학교 올라가서 코딩을 안하고 있다가 대학 때 잠깐 다시 코딩할 일이 생겼는데 어쩌다 병특을 가게 되면서 직업이 되버렸네요.

    개발을 즐기긴 하지만 성격이 심각하게 게으르다보니 그렇게 노력을 한다는 이야기는 못하겠습니다 ㅎㅎ; 더 열심히 하라는 격려로 듣겠습니다.

    감사합니다.

  • broneri
    612
    2020-08-06 09:31:16

    멋집니다. 근데 기왕 자랑할거 스샷이나 링크라도 넣어주심 좋겠네요.

  • fender
    20k
    2020-08-06 09:32:44

    broneri // 본문에 적은 것 처럼 정작 새 엔진으로 만드는 게임 프로젝트는 시작도 못해서 아직 보여드릴 것이 없습니다. 테스트 하려고 만든 프로토타입은 19금이라 여기 올리면 잡혀갈지도... -ㅅ-

  • linuxer
    3k
    2020-08-06 09:41:45

    fender 님 글 보는 재미가 쏠쏠합니다 ㅎ 좋은 글 감사하니다 ㅎ

  • 인사동
    1k
    2020-08-06 10:19:10

    실 경험에 입각한 구체적인 사례는 정말 좋은 참고가 됩니다.

    좋은글 감사합니다~

  • 말년개발
    2k
    2020-08-06 10:33:28

    fender 님 글은 읽다보면 뭔가 나도 해야 할꺼 같은 느낌이 들지만 막상 하려고하면.

    아..영어의 장벽이란...

  • fender
    20k
    2020-08-06 10:43:27

    말년개발 // 요샌 번역기도 좋아져서 어지간한 기술 문서는 읽을 만한 수준으로 나오는 것 같습니다. 아마 깃헙에 간단한 이슈를 보고하는 정도까지도 번역기로 어느 정도 커버할 수 있지 않나 싶습니다.

    글을 쓰는 부분은 저도 그래말리라는 서비스를 활용하는데 프로젝트의 소개 글을 쓴다던지 조금은 진지한 내용을 적어야 할 때는 미리 오타나 문법 오류 등을 확인하기 좋습니다.

    그 밖에 디스코드 같은 건 어차피 오픈소스 개발자나 사용자는 전 세계에서 모이는 거라 꼭 영어를 잘할 필요는 없으니 너무 부담 가지실 필요는 없습니다.

    그냥 남들이 무슨 이야기하는지 보는 것 만으로도 나름 유익하고 재미있을 때가 있으니까요.

  • 노넨
    1k
    2020-08-06 10:50:51 작성 2020-08-06 10:51:07 수정됨
    프로토타입은 19금이라

    올려주셔야겠습니다....ㅋㅋㅋ

  • ISA
    4k
    2020-08-06 11:57:51

    화이팅!

    요즘 그런데 좀 많이 친숙해지신거 같아요. 예전엔 봇인가 생각들었는데... 

  • ryankim777
    102
    2020-08-06 12:29:24
    " 꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다. "

    이 문장에서 많은게 느껴지네요. 딱 제가 개발을 대하는 자세였는데
    많은 깨달음 얻고갑니다.

    좋은글 감사드립니다~
  • fender
    20k
    2020-08-06 12:44:16

    ISA // 잘못된 명령입니다.

  • 정교니
    1k
    2020-08-06 13:29:57

    fender bot : 이래서 눈치 빠른 인간들은 싫다니깐..

  • 가나우유
    377
    2020-08-06 14:42:11

    와 원래 게임업계에서 일하고 계시나요?

  • fender
    20k
    2020-08-06 14:46:00
  • 꽃중년보넥스
    -1k
    2020-08-07 07:50:12

    좋은 글 감사합니다~^^

    저도 시간내서 오픈소스에 기여도

    해봐야겠다는 생각이 드네요~

    너무 혜택만 누리고 있으니..

  • fender
    20k
    2020-08-07 08:01:12 작성 2020-08-07 08:01:22 수정됨

    코딩요정바람돌이 // 오픈소스 기여하고 자랑글 쓰시면 비판 대신 추천을 드리겠습니다 ㅎㅎ

    코딩 능력은 있는 분이니 맘만 먹으면 충분히 하실 듯.

  • 꽃중년보넥스
    -1k
    2020-08-07 08:10:06

    네~ㅎㅎ

    -1
  • siam
    475
    2020-08-07 09:09:35

    글을 보면서 저도 슬럼프가 치료되는 기분이네요 간접체험 하고갑니다 감사합니다

  • 로그인을 하시면 댓글을 등록할 수 있습니다.