뒤로
이창환
이창환 ·

팀모노리스의 오픈 소스 데이 (1)

팀모노리스의 금요일은 조금 특별합니다. 공개된 레포지토리에서 개발과업을 진행하는 날이거든요! 저는 오늘 우리가 가지고 있는 프로젝트를 공개하기 위한 작업을 진행했습니다.


공개하려는 기능은 주피터 랩 환경에 구현한 온라인 저지입니다. 온라인 저지를 사용해보신 분이라면 다음 GIF를 보시면 이해되실거에요. 서버로부터 문제를 보여주고, 사용자가 문제를 제출하면 채점해주는 시스템입니다.


하지만 이 프로젝트를 공개할 때 고려해야하는 점이 몇 가지 있습니다.

  • 주피터 커뮤니티의 구성원은 영어를 주로 사용하기에 영어를 지원할 것
  • 문제를 제공하는 서버에 대한 종속성을 제거할 것
  • 다른 개발자가 쉽게 활용하고 참여할 수 있도록 좋은 문서를 제공할 것


첫번째를 만족하기 위해서, 초기에는 한국어로만 개발했다가 국제화 시스템을 활용해서 영어와 한국어 모두 지원하도록 수정했습니다.

두번째가 생각보다 골치아픈 문제였는데요. 아직 개발중인 내용이라 다음 주 금요일에 공유해보도록 하겠습니다.

이번 포스트에서는 세번째를 위해 한 작업에 대해 이야기하겠습니다.


아무리 좋은 프로젝트가 있어도, 그 프로젝트가 잘 설명되어 있지 않다면 아무도 쓰지 않을 것입니다. 어떤 내용인지도 모르는데 소스 코드를 뒤져가며 분석할 수는 없으니까요. 그렇기에 우리는 가장 먼저 README에서 필요한 정보를 획득하는데요. 그래서 저도 오늘은 README를 작성하는 작업을 주로 했습니다.

README를 잘 쓰는 법에 대해서는 많은 글을 찾아 볼 수가 있어요. 그래서 거기에 대해 이야기하기 보단 제가 어떻게 작성했는지에 대해서 사례를 공유해보고 싶습니다.


일단 가장 먼저 진행한것은, 하이라이트 영상(GIF)를 만든 것입니다. ‘온라인 저지’라고 말하면 경험이 있는 사람들은 바로 이해할 수 있겠지만, 익숙하지 않은 사람에게는 글로된 설명이 복잡할 수 있기 때문입니다. 그래서 짧은 영상을 통해 이 프로젝트가 어떤 역할을 하는지 전달했습니다.

영상 편집 경험이 없어서 저 짧은 영상을 시행착오를 겪어가며 만들었는데요. 좋은 방법을 찾아 시도한게 아니고, 제 컴퓨터에 이미 설치된 프로그램을 활용하며 겨우했기에 이렇게는 하지 마시라는 의미에서… 적어보겠습니다.

가장 처음에는 GeForce Experience의 녹화 기능으로 촬영하고, Win10 사진앱으로 편집을 시도했습니다. 그런데 영상 화면 잘라내기(Crop)이 안되서 실패했어요.

그 다음에는 GeForece Experience + Adobe Premiere Rush를 시도했는데, 최종 영상의 종횡비가 몇몇 프리셋으로 고정되어 있어 실패했습니다.

마지막으로는 OBS Studio를 사용해 원하는 크기로 녹화해서 마무리했습니다. 얻은 동영상은 웹 서비스를 활용해서 GIF로 변환했어요. 이 과정을 통해 방금 보신 GIF가 탄생했습니다!


그 다음에는 프로젝트가 추구하는 목적을 서술했습니다. 이 목적은 프로젝트의 개발 동기와 발전 방향을 나타내기에 개인적으로는 아주 중요한 영역이라고 생각합니다. 이 온라인 저지 기능에 대해서는 다음과 같이 서술했습니다.

  • 코드 실행 관리를 위한 추가적인 시스템 구축이 필요없습니다.
  • 주피터 랩에서 문제를 풀고, 결과를 조회할 수 있습니다.
  • 백엔드를 교체할 수 있습니다.

이렇게 서술함으로써 프로젝트에 일관성을 부여할 수 있고, 불필요한 기능 개발에 커뮤니티의 노동력을 낭비하지 않을 수 있습니다.

예를 들자면 다음과 같은 기능 제안은 그 의도가 아주 훌륭하지만 프로젝트의 목적에 부합하지 않습니다.

사용자가 제출한 코드를 격리된 시스템에서 실행하여 코드 실행 시간 지표의 신뢰성을 높입니다.

위 기능이 추가되면서 “추가적인 시스템 구축이 필요없다”라는 핵심적인 강점이 훼손되기 때문입니다.


이외의 영역은 간략한 구조 설명, 시스템 요구 사항, 설치, 기여 방법 등에 대해서 작성했습니다. 또 어떤 내용이 담기면 좋을까요? 의견은 언제나 환영입니다 👋


오늘은 팀모노리스의 특별한 금요일에 대해서 공유해 보았습니다. 멋진 기술에 대한 내용이 아니라서 조금 아쉬워요. 😢 다음에 기회가 된다면 특별한 구현 사례에 대해서도 포스트를 작성해보도록 하겠습니다. 즐거운 주말 되세요!

코들

교실 단위 실시간 코딩 수업을 위한 파이썬 환경, Codle

6

댓글

로그인 후 댓글을 남길 수 있습니다.

Doeon Kwon 권도언
Doeon Kwon 권도언

안녕하세요 창환님! 해당 메이커로그가 Must Read #56에 선정되어서 알려드려요 ㅎㅎ https://stib.ee/n9Y6