본문 바로가기

직접 만든 소프트웨어, 두 가지 개발 기록

구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다.

마음·생활습관

할 일 목록은 긴데 진도가 안 보일 때: JupyterHub 로드맵 사례에서 배울 점

by 아빠띠띠뽀 2026. 11. 8.

할 일 목록이 길어졌는데 진도가 설명되지 않는다면, 항목을 더 넣기 전에 현재 상태와 막힌 이유를 적어 보세요. JupyterHub가 공개한 로드맵 운영 회고는 이 질문을 생각해 볼 구체적인 사례입니다. 다만 오픈소스 공동체의 운영 경험이 개인의 학습 효과를 입증한 연구는 아니므로, 배울 아이디어와 확인된 사실을 나누어 읽어야 합니다.

Jupyter 공식 블로그는 2026년 11월 6일 JupyterHub의 로드맵 회고를 소개했습니다. 공식 홈페이지에서도 해당 제목과 날짜를 확인할 수 있습니다. 이 글은 11월 7일 확인한 공개 자료를 바탕으로 만든 해설과 자체 연습안이며, 프로젝트 참여 후기나 생산성 향상 시험 결과는 아닙니다.

새 소식은 기능 출시가 아니라 운영 경험의 공개예요

로드맵은 앞으로 어떤 방향으로 일할지 공유하는 자료로 읽을 수 있습니다. 이번 회고는 2월의 워크숍을 배경으로, 프로젝트의 계획을 어떻게 다루고 있는지 돌아본 글이에요. 2월 행사를 11월에 새로 연 것으로 받아들이거나, 회고가 나왔으니 계획된 기능도 모두 출시됐다고 읽지는 않는 것이 좋겠습니다.

회고에서 설명하는 큰 목적은 진행 중인 일을 이해관계자에게 보이게 하는 것과, 기여자들의 제한된 시간을 어디에 쓸지 돕는 것입니다. 상태를 추적하는 initiative shepherd라는 역할도 등장해요. 이 역할은 작업 전체를 관리하는 사람이라기보다 계획의 표시가 실제 상태를 따라가도록 살피는 역할로 설명됩니다.

이 사례에서 개인 학습에 가져올 수 있는 질문은 ‘나도 같은 도구를 써야 하나?’보다는 ‘내 계획의 표시가 실제 상태와 맞나?’에 가깝습니다. 이것은 회고를 읽은 뒤 제안하는 해석이에요. 같은 방식을 쓰면 공부가 더 잘되거나 협업 시간이 줄어든다고 검증한 결과로 받아들이지는 마세요.

예를 들어 ‘문서 만들기’라는 항목이 한 달째 진행 중이라고 생각해 볼게요. 초안을 쓰고 있는지, 자료 확인을 기다리는지, 이미 작성했지만 검토가 남았는지 알 수 없다면 다른 사람이 도울 질문도 만들기 어렵겠지요. 개인 계획에서도 같은 항목을 보며 매번 처음부터 고민하게 되는지 살펴볼 수 있습니다.

여기서 필요한 것은 실제로 하지 않은 일을 했다고 적는 일이 아닙니다. 아직 손대지 않은 항목은 그대로 남기고, 읽은 자료와 만든 결과, 남은 질문을 분리하는 데 초점을 맞춰 보세요. 목록이 보기 좋게 정리됐다는 사실과 작업이 진행됐다는 사실도 서로 다른 기록입니다.

계획 카드 한 장에는 작게 확인할 결과를 적어요

직접 연습한다면 실제 프로젝트를 바꾸기 전에 가상의 학습 카드 하나를 만들어 보셔도 좋겠습니다. 예를 들어 ‘관심 있는 오픈소스의 문서를 읽고 처음 사용하는 사람이 헷갈릴 질문 하나를 적는다’처럼 범위를 좁힐 수 있어요. 이것은 실제 프로젝트가 현재 기여를 요청했다는 뜻은 아닙니다.

그다음에는 무엇을 만들면 오늘의 활동을 설명할 수 있는지 적어 보세요. ‘오픈소스 공부’라는 넓은 이름 대신 ‘읽은 문서의 위치, 이해한 설명, 아직 모르는 질문을 한 장에 정리한다’처럼 쓰는 식입니다. 완성 여부를 판단할 때에는 자신이 실제로 만든 기록과 미리 정한 범위를 비교하면 됩니다.

처음부터 다른 사람의 시스템에 접속하거나 내부 자료를 모을 필요는 없습니다. 공개 문서를 읽고 직접 만든 설명을 적는 것만으로도 연습의 범위를 정할 수 있어요. 계정이나 저장소에 실제 변경을 하는 단계는 프로젝트의 기여 안내와 권한을 확인한 뒤 별도로 판단할 내용입니다.

카드에는 하고 싶은 이유도 짧게 붙여 보세요. 어떤 내용을 이해하고 싶었는지, 왜 이 문서를 골랐는지 남기면 나중에 질문의 방향이 달라졌을 때 비교할 수 있습니다. ‘다른 사람들이 하니까’라는 이유와 자신이 풀고 싶은 문제는 다를 수 있으니, 가능한 한 자신의 질문으로 쓰는 편이 좋겠습니다.

이 연습에서 성공을 거창하게 정할 필요는 없어요. 문서를 읽고 질문을 더 명확하게 만들었다면 그 결과를 적으면 됩니다. 실제 답을 찾지 못했다면 미해결 질문으로 남겨 주세요. 질문을 만들었다는 사실을 프로젝트에 기여가 받아들여졌다는 결과로 바꾸어 기록해서는 안 됩니다.

학습 카드의 항목 직접 정할 내용
오늘의 질문 무엇을 이해하려고 이 자료를 읽나요?
공개 자료 어디의 어떤 안내를 보고 있나요?
작은 결과 설명 한 장, 재현 계획, 질문 정리 중 무엇을 만드나요?
현재 상태 아직 시작 전인지, 확인 중인지, 멈춘 이유가 있는지
남은 질문 다음에 누구에게 무엇을 확인할까요?

진행 중과 막힘을 다른 말로 남겨 보세요

계획이 멈췄을 때 ‘의지가 부족했다’는 결론부터 붙이기보다, 현재 알 수 있는 상황을 적는 방법을 제안합니다. 필요한 자료가 없는지, 질문이 너무 넓은지, 다른 사람의 확인을 기다리는지, 자신이 아직 읽지 않은 부분이 있는지 구체적으로 나눠 보세요. 이는 심리 상태를 진단하는 기준이 아닙니다.

직접 만든 예시를 하나 더 들어 볼게요. 공개 설명을 읽던 사람이 문서 속 용어 둘의 차이를 이해하지 못해 다음 문단으로 넘어가지 못했다고 가정하겠습니다. 이때 카드에는 ‘자료 읽기 실패’ 대신 ‘두 용어를 구분할 근거를 아직 찾지 못함’이라고 남길 수 있어요. 다음에는 그 차이에 맞는 질문을 만들면 됩니다.

반대로 실제로 문서를 읽고 설명을 만들고 있다면 무엇까지 썼는지 적어 보세요. ‘진행 중’이라는 이름만으로 충분하지 않다면 마지막으로 확인한 위치와 다음에 할 일을 한 줄씩 보탤 수 있습니다. 계획을 다시 열었을 때 어디부터 이어갈지 설명하는 메모가 되는 것이에요.

‘마침’의 기준도 미리 정하면 좋겠습니다. 질문 하나를 정리하기로 했다면 그 질문을 적었는지 확인할 수 있어야 해요. 공식 답변을 받거나 실제 코드 변경이 반영되기까지 필요하다면, 자신이 만든 초안과 외부의 최종 수락을 다른 단계로 놓아 보세요. 다른 사람이 결정할 결과까지 혼자 완료로 표시할 필요는 없습니다.

이 상태 이름은 프로젝트마다 달라도 괜찮습니다. 이 글에서 제안하는 핵심은 특정 단어를 외우는 일이 아니라, 같은 표시를 보고도 서로 다른 상황을 떠올리지 않도록 근거를 남기는 것입니다. 계획을 공유하는 사람이 있다면 그 표시를 어떻게 이해하는지 먼저 맞춰 볼 수도 있겠지요.

상태를 기록하는 사람과 실행하는 사람을 구분해요

JupyterHub 회고에서 initiative shepherd의 역할을 읽을 때 눈여겨볼 부분은, 상태를 따라가는 책임과 모든 작업을 수행하는 책임을 나눈다는 점입니다. 누군가 진행 표시를 갱신한다고 해서 그 사람이 계획된 모든 개발을 맡았다고 읽어서는 안 됩니다. 역할의 범위를 구체적으로 읽는 연습이 필요해요.

개인 공부에 이 아이디어를 그대로 조직 규칙처럼 적용할 필요는 없습니다. 다만 공동으로 하는 작은 프로젝트라면 ‘누가 만들고 있나’와 ‘누가 상태를 확인해 적었나’를 구분해 볼 수 있습니다. 둘을 같은 사람이라고 가정한 채 기다리기보다, 실제로 어떤 책임을 맡았는지 물어볼 수 있어요.

예를 들어 가상의 두 사람이 학습 문서를 함께 정리한다고 해 볼게요. 한 사람은 초안을 쓰고, 다른 사람은 초안의 확인 상태를 목록에 적기로 했다고 가정할 수 있습니다. 상태를 적는 사람이 미완료 표시를 바꿨다는 이유만으로 내용 검토나 게시 승인까지 끝냈다고 기록하면 역할이 섞입니다.

이때 인계 문장에는 ‘무엇을 보고 적었는지’를 함께 남겨 보세요. 초안 파일을 확인했는지, 작성자의 설명을 들었는지, 실제 결과를 검토했는지 구분하면 됩니다. 직접 보지 않은 결과는 미확인이라고 적을 수 있어야 해요. 기록 담당자를 정하는 것만으로 정확한 정보가 자동으로 만들어진다고 보장하지는 않습니다.

실제 오픈소스에 질문이나 변경을 제출하려면 해당 프로젝트의 안내를 먼저 확인해 주세요. 이번 글에서는 이슈를 만들거나 다른 참여자에게 메시지를 보내지 않았습니다. 공개된 로드맵을 읽는 학습과 프로젝트에 외부 행동을 하는 단계는 분리해서 생각하시면 좋겠습니다.

다른 시간에 일한다면 설명이 이어질 수 있게 남겨요

누군가는 오전에 자료를 읽고 다른 사람은 저녁에 이어서 확인하는 가상의 상황을 생각해 볼게요. 두 사람이 동시에 접속하지 않아도 무엇이 달라졌는지 이해할 수 있는 기록을 만드는 연습을 할 수 있습니다. 특정 회의 방식이 더 효과적이라는 연구 결과를 제시하는 것은 아닙니다.

‘어제 말한 대로 했어요’보다는 어떤 자료를 읽었고 어떤 문장을 바꿨는지, 남은 질문이 무엇인지 적어 보세요. 대화를 전부 복사하는 것과 필요한 맥락을 남기는 것도 다릅니다. 실제로 다음 사람에게 필요한 정보가 무엇인지 생각해 보는 것이 출발점이에요.

공개 예시를 만든다면 이름이나 비공개 주소를 넣지 않고도 인계 틀을 연습할 수 있습니다. ‘이 문서의 두 용어가 같은 뜻인지 확인하려고 읽었고, 현재 자료에서는 차이를 설명하는 문장을 찾지 못했습니다’처럼 쓰는 식입니다. 잘 모르겠다는 말에도 무엇을 확인했는지 붙이면 다음 질문을 만들 수 있어요.

답이 달린 뒤에는 이전 질문과 현재 이해를 나눠 남겨 보세요. 과거에 모른다고 적은 부분을 지워 버리기보다 어떤 근거로 이해가 바뀌었는지 기록할 수 있습니다. 이는 개인이 선택할 수 있는 학습 방법의 제안이며, 반드시 특정 도구나 공개 게시판을 사용해야 한다는 뜻은 아닙니다.

한 번에 너무 많은 맥락을 쓰기 어렵다면 이번에 확인한 변화 한 가지만 골라도 괜찮습니다. 전체 진행 상황을 다 알지 못하는데 프로젝트 전체가 순조롭다고 요약할 필요는 없어요. 자신이 관찰한 범위를 작게 설명하고, 그 밖의 상태는 해당 담당자가 확인하도록 남겨 둘 수 있습니다.

이어서 읽을 사람에게 남길 것 스스로 확인할 질문
확인한 자료와 시점 언제 무엇을 읽었는지 알 수 있나요?
실제로 만든 결과 계획이 아니라 현재 초안이나 답을 가리키나요?
멈춘 이유 다음 사람이 물어볼 내용을 알 수 있나요?
역할의 범위 기록·실행·검토를 혼동하지 않았나요?
다음 확인 아직 정하지 않은 결정은 무엇인가요?

공개 로드맵은 확정된 출시 달력과 달라요

JupyterHub의 공식 로드맵 저장소는 initiative를 추적하는 저장소로 소개되고, README에는 구축 중이라는 표시가 있습니다. 이 상태를 보면서 계획이 있다는 사실과 구체적인 기능이 완성됐다는 사실을 구분할 수 있어요. 이 글에서는 저장소의 향후 일정이나 특정 기능의 출시일을 예측하지 않습니다.

처음 기여하려는 독자라면 목록에서 흥미로운 항목을 발견한 뒤 바로 큰 작업을 약속하기보다, 자신이 이해한 질문과 가능한 참여 범위를 정리해 볼 수 있습니다. 실제 요청이 무엇인지, 이미 누가 작업하는지, 프로젝트가 어떤 방식으로 의견을 받는지는 현재 안내에 따라 확인해야 합니다.

작은 결과를 제출까지 연결하는 관점은 Game Off에서 작은 게임의 제출 범위를 정리한 글과도 연결됩니다. 다만 개인의 게임 제출 계획과 공동체의 로드맵 운영은 다릅니다. 한 사례를 다른 프로젝트의 규칙이나 마감일로 가져오지 말고, 자신의 질문을 더 분명히 만드는 데 참고해 주세요.

상태 칸을 만들면 계획을 끝낼 수 있나요? 기록 양식만으로 실행이나 학습 결과가 보장되지는 않습니다. 실제로 무엇을 했고 다음에 무엇을 확인할지 설명하는 데 필요한 만큼 사용해 보세요. 이 글은 특정 습관의 효과를 측정한 연구나 치료적 조언이 아닙니다.

첫날에는 무엇을 적으면 좋을까요? 공개 자료 하나, 이해하고 싶은 질문 하나, 직접 만들 작은 결과 하나를 골라 보세요. 아직 시작하지 않았다면 그 상태 그대로 적어도 됩니다. 회고에서 가져올 만한 아이디어는 거대한 계획표가 아니라, 계획의 표시가 실제 진행과 얼마나 맞는지 돌아보는 질문입니다.

로드맵에서 작은 결과·현재 상태·막힌 이유·다음 질문을 구분하는 자체 학습 개념도
직접 제작한 개념도입니다. 실제 서비스 화면이나 실험 결과가 아닙니다.