1주였던 시험기간이 고무줄마냥 2주로 늘어나버리는 바람에 미루고 미루던 2025 오픈소스 컨트리뷰션 아카데미 체험형 2차 활동 후기를 작성한다.
참여 동기
대학교 연합 개발 동아리(UMC) 활동을 통해 처음으로 오픈소스 컨트리뷰션 아카데미를 접했다. 동아리 컨퍼런스에서 만나 뵌 강사님이 오픈소스 활동을 강력히 추천하시면서 어떻게 시작해야 할지 모르겠다면 오픈소스 컨트리뷰션 아카데미에 참여해 보는 것을 추천하셨다. 그 뒤에 대학교 학술제에서도 언급되어서, 오픈소스 기여? 시도조차 안 해 봄. 깃허브? 푸쉬는 할 줄 앎. 일단 붙으면 열심히 배우면서 실력도 늘지 않을까? 하는 초긍정(막무가내) 마인드로 지원을 했다.
지원
2025 체험형 2차에는 다섯가지 프로젝트가 있었다. 그 중 MDN과 Pytorch를 접해 본 적 있었다. 본인은 왕초보이기 때문에 프로젝트 주제도 낯설면 정말 뭔가를 못 하지 않을까 싶어서 MDN을 1지망으로 지원했다. Pytorch는 학교 수업 시간에 다뤄 본 적 있지만, 안 좋은 추억이 많아서(학점 하락의 일등공신) 망설이다 최근 관심이 가던 Ubuntu를 2지망으로 지원했다. 하지만 Ubuntu관련 활동을 한 적이 정말 하나도 없어서 지원서에 쓸 게 없었다. 그래서 MDN에 심혈을 기울여서 모든걸 쏟아냈다.
9월 2주차 중에 선발결과가 나온대서 목요일쯤 나오려나~ 생각하면서 개강을 마음껏 슬퍼하고 있었는데 또잉 화요일에 메일이 왔다. 메일 제목이 [2025 OSSCA 체험형 2차 선발 결과 안내] 이랬으면 둗근두근두근 하면서 열어 봤을 텐데, 제목부터 [합격 안내] 이렇게 와서 우와아앙 하면서 좋아했다. (개강으로 하락한 기분 최고조)
지원서는 1.자기소개 2.지원동기 3.프로젝트 개발 경험 이렇게 세가지 항목이 있었다.
활동이 다 끝나고 돌아보니 지원서가 정말.. 고칠 부분이 많았다...(대체 어떻게 붙은거지??)
지원서에는 정답이 없는 것 같다. 그냥 최대한 진정성 있게 열정을 담아내서 공들여 작성하는게 맞는 것 같다. 열심히 살 수록 쌓이는 고민과 경험이 단단한 마음가짐을 만드는게 아닐까, 그렇게 생각한다!
그래도 이 글을 봐 주시는 분들께 약간의 도움이 되고자 작성한 지원서의 간략한 흐름을 첨부한다.
중요 : 정답이 아니기 때문에 참고용으로 봐 주세요!
1. 자기소개
자신의 모토와 장점, 공부해 온 것을 언급하고, "왜 오픈소스에 관심을 가지게 되었으며, 왜 오픈소스 기여에 참여하려 하는가?"를 작성.
2. 지원동기
'오픈소스'에 초점을 두기 보단 프로젝트 주제인 'MDN'에 중점을 두어 작성. "왜 많고 많은 오픈소스 중에서 MDN을 선택했나? 이 프로젝트를 통해 얻고자 하는 것은?" 방향으로 작성.
3. 프로젝트 개발 경험
기입할 만한 변변찮은 프로젝트가 없어서, (그나마) 봐 줄만한 프로젝트 하나를 진하게 우려먹어 작성. 프로젝트 개요, 자신이 개발한 부분, 프로젝트를 진행하면서 발생한 문제/어려웠던 점과 자신이 그걸 어떻게 해결했는지, 그로 인해 내가 무엇을 얻었는지/발전한 부분은 무엇인지를 기입. 전체적으로 "문제해결능력"에 중점을 두어 작성.
활동
# 1주차
체험형은 발대식 포함 총 6주 과정으로 운영된다.
첫 주차에는 발대식과 OT가 있었다. 발대식에서 앞으로 아카데미 활동 운영 방식에 대한 설명을 듣고, 프로젝트 OT에서 멘토 멘티가 서로 소개하는 시간을 가졌다. 간단히 MDN 실행 방식도 알아보고 질답 시간을 가지다 끝났다. 이날 굿즈도 나눠 줬는데 우산이 짱짱짱 튼튼하다. 영롱한 홀로그램 스티커도 받았다. 너어는 노트북 꾸밈 행.

# 2주차
2주차는 출석 체크용 PR을 직접 생성해보면서 깃허브를 찍먹해보고 MDN 로컬 개발 환경 세팅을 진행했다.
https://github.com/yari-content-ko/github-practice/pull/12
docs: ktr 이름 날짜 추가 by taerimiiii · Pull Request #12 · yari-content-ko/github-practice
이름날짜추가
github.com

MDN 기여를 위해선 GPG 서명 설정이 필수적이었다. 하지만 Mac만 GPG 설정이 무료였다. 우우우, 윈도우 차별을 멈춰라!! 다행히 멘토님이 정말 감사하게도 리눅스를 통한 GPG 설정 방법을 알려주셔서 무사히 GPG 키를 발급 받을 수 있었다. 그래서 어쩌다보니 최근 관심이 가던 Ubunto도 다뤄보게 되었다. 이게 바로 럭키비키?

사실 Linux랑 Ubunto 설치에서 어마무시하게 해맸다. 진짜 농담 하나도 안 하고 뒤에 한 활동들에 쏟은 시간보다 여기에 쏟은 시간이 많...지는 않은 것 같고, 체감 상 그렇다. 설치랑 세팅 명령어를 많이 쳤는데 하나하나 실행하면서 '와씨 이거 잘못하면 롤백 하는데 세시간 걸릴지도 몰라!(이미 한 번 겪음.)' 하면서 발발 떨면서 했다. 관련해서 한 번 정리를 해 보면 좋을 것 같다. 조만간 써 보도록 하겠다. 그래도 처음으로 Linux를 만져보면서 개발 환경 구성 경험을 쌓을 수 있어서 좋았다.
MDN 로컬 개발 환경 세팅은 복잡하다고 해서 많이 걱정했는데 GPG 설정보단 쉬웠다. 멘토님이 알려준 대로 차근차근 따라가니까 큰 문제 없이 잘 연결되었다. 그 외로 개발 환경과 배포 레포지토리가 분류 되어 있는게 신기했다. 지금까지 진행해 본 프로젝트에선 한 레포지토리에 배포 브랜치와 개발 브랜치를 만든 후, 하나의 레포지토리 안에서 브랜치에서 브랜치로 머지를 반복하며 개발을 진행했다. 하지만 MDN은 레포지토리 단위로 분류되어 있어서 레포에서 레포로 PR을 날리는게 낯설었다. 무려 레포만 133개! 그래서 출석 체크 PR 을 내 github-practice 레포에서 yari github-practice 레포로 날리면서 무척 어리바리했다. 위 출석 체크 PR을 자세히 보면 커밋 이름을 잘못 적었다 ^^... 원래 뭔갈 배우면 실수해야 하는 법(정신승리)
# 3주차
3주차 부터는 대부분 직장인이고 취준생이라 현실적으로 오프라인 활동 시간을 통일하기 어려워서 온라인으로 진행했다. 여담으로 1주차에 서로 소개하는 자리에서 1년차 2년차 4년차 개발자에 취준생에 그래서 쭈구리가 되었다. 나 2학년인데 여기 잘못 온건 아닐까? 내가 무슨 깡으로 이걸 하겠다고 했지?? 못 따라가면 어떡하지???(이후 실제로 일어남) 걱정이 태산이었는데 지금 다 끝나고 보니 나름 잘 따라간 것 같다! ...아마도!
다시 3주차로 돌아오자면,
1. 번역 가이드를 살펴보기
2. Yari 분석
이렇게 진행했다.
그리고 숙제로 기여할 페이지를 선정하고, 선정 이유와 함께 PR 링크를 이슈란에 댓글로 작성하기가 주어졌다.
아래 번역 가이드 링크를 들어가보면 알겠지만, 생각보다 가이드 양이 많다! 그래서 멘토님도 다 읽어보고 번역을 하기보단, 번역을 하면서 모르는게 있을 때 가이드를 찾아보는 걸 추천하셨다. 나는 translation-guide 문서 내용을 숙지하고, glossary-guide 문서를 켜 둔채 지속적으로 확인하면서 첫 PR 작업을 했다.
https://github.com/mdn/translated-content/tree/main/docs/ko/guides
translated-content/docs/ko/guides at main · mdn/translated-content
7 community-maintained translations of MDN Web Docs in ES, FR, JA, KO, PT-BR, RU, and ZH, to learn and contribute in your native language. - mdn/translated-content
github.com
MDN의 빌드 시스템인 Yari의 구조를 살펴보는 활동도 흥미로웠다. 화면 공유를 통해 피피티 자료와 함께 yari 코드를 보면서 진행했다. build 실행 -> 문서 발견 및 read -> Markdown을 파싱하여 HTML로 변환하는 흐름을 배웠다. 처음에 피피티만 봤을 때는 외계어라 헉 했는데 멘토님 설명을 들으면서 차근히 따라가니 이해가 되었다.

# 3주차 과제
https://github.com/mdn/translated-content/pull/29730
[ko] Column layouts 신규 번역 by taerimiiii · Pull Request #29730 · mdn/translated-content
Description multi column 레이아웃에서 열을 정렬하는 방법은 번역되어 있지만, felxbox와 grid의 컬럼 레이아웃과 비교하는 문서는 아직 번역되지 않아 해당 문서를 선택하였습니다. Motivation [2025 OSSCA 체
github.com
Column layouts 페이지를 선택해 번역했다. 예전에 프론트엔드를 막 배울 때 레이아웃 구성하는 방법을 구글링하다 MDN에서 felx layout 문서를 읽어본 적이 있어서, 이런 인연을 이어가고자 CSS 관련 문서를 번역해 보았다.
번역하면서 힘들었던 점은 "item" 이 단어가 골칫덩어리였다. 직역하면 "항목", "물품", "한 가지" 이다. 그럼 '모든 자식 항목', '물품 항목' 으로 번역되는데... 어감이 이상하다! 그럼 발음대로 읽어서 "아이템"으면 어떨까? '모든 자식 아이템', '아이템 항목' 전 보다는 괜찮아 보인다. 하지만 이건 번역이기 때문에, 발음대로 적는 건 좋은 선택이 아닌 것 같았다. 그래서 MDN의 다른 문서에서는 어떻게 번역했나 살펴봤다. 문서마다 달랐다. 끄아악. 그래서 고민하다가 약간의 의역을 첨가해 "요소"라고 번역하는게 어감도 안 이상하고 문장 흐름도 적절해 보여, "item -> 요소" 로 번역했다.
추가적으로 문서가 cookbook recipe 콘셉트인 점을 고려해 문장 표현을 자연스럽게 조정했고, 문서에 포함되어 있는 링크도 /ko로 연결되도록 꼼꼼히 확인하면서 번역 품질에 신경 썼다.
# 4주차
지난 주차 과제 피드백을 받았다. 번역이 처음이라 걱정했는데 신경써서 번역해 준 것 같다, 좋은 번역이다 라는 칭찬을 듣고 기분이 너무너모 좋았다. 다른 분들의 피드백도 함께 듣고, 내 PR에서 누락된 메타데이터를 추가하고, 마크다운 문법에 맞춰 추가 번역을 진행하고 끝났다.
메타데이터로 l10n.sourceCommit를 추가해야 했다. 전체 중 일부인 앞부분 7자리가 아니라 전체 20자리 데이터를 찾아 넣어야 한다. 그걸 모르고 7자리를 넣었다..

커밋 페이지에 접속해서 url의 맨 마지막 20자리(숏 7자리로 시작)를 데이터에 추가하면 된다!
4주차 종료 후 개인적으로 추가 번역을 더 진행하였다.
이때 백엔드 공부를 하며 RESTful API Endpoint 설계를 배웠었다. URI, URL, URN의 차이점과 연관관계도 공부하였는데, 마침 관련 주제인 URI 문서가 번역이 안 되어 있어서 번역하였다.
https://github.com/mdn/translated-content/pull/29860
[ko] URI 신규 번역 by taerimiiii · Pull Request #29860 · mdn/translated-content
Description 최근에 RESTful API Endpoint 설계를 배우면서 URI, URL, URN의 차이점과 연관관계를 공부하였는데, 마침 관련 주제인 URI 문서가 번역이 안 되어 있어서 번역하게 되었습니다. Motivation [2025 OSSCA
github.com
https://github.com/mdn/translated-content/pull/29861
[ko] URI Guides 신규 번역 by taerimiiii · Pull Request #29861 · mdn/translated-content
Description 최근에 RESTful API Endpoint 설계를 배우면서 URI, URL, URN의 차이점과 연관관계를 공부하였는데, 마침 관련 주제인 URI 문서가 번역이 안 되어 있어서 번역하게 되었습니다. Motivation [2025 OSSCA
github.com
https://github.com/mdn/translated-content/pull/29862
[ko] URI Reference 신규 번역 by taerimiiii · Pull Request #29862 · mdn/translated-content
Description 최근에 RESTful API Endpoint 설계를 배우면서 URI, URL, URN의 차이점과 연관관계를 공부하였는데, 마침 관련 주제인 URI 문서가 번역이 안 되어 있어서 번역하게 되었습니다. Motivation [2025 OSSCA
github.com
https://github.com/mdn/translated-content/pull/29863
[ko] URI schemes 신규 번역 by taerimiiii · Pull Request #29863 · mdn/translated-content
Description 최근에 RESTful API Endpoint 설계를 배우면서 URI, URL, URN의 차이점과 연관관계를 공부하였는데, 마침 관련 주제인 URI 문서가 번역이 안 되어 있어서 번역하게 되었습니다. Motivation [2025 OSSCA
github.com
https://github.com/mdn/translated-content/pull/29864
[ko] blob: URLs 신규 번역 by taerimiiii · Pull Request #29864 · mdn/translated-content
Description 최근에 RESTful API Endpoint 설계를 배우면서 URI, URL, URN의 차이점과 연관관계를 공부하였는데, 마침 관련 주제인 URI 문서가 번역이 안 되어 있어서 번역하게 되었습니다. Motivation [2025 OSSCA
github.com
# 5주차
온라인으로 진행했다. MDN Dashboard 설명을 들었다. 조큼 어려웠다..ㅠ 이게 다 기본기가 부족한 탓... server/translations.ts에서 커밋을 다루는 부분을 이해하기 힘들었다. MDN 원문(영문) 문서와 번역본의 버전을 동기화하기 위한 메타데이터를 사용 한 것 같은데 처음 보는 개념들이라 삐질삐질 진땀이 났다. 기본기를 더 탄탄히 다져야겠다고 느꼈다ㅠㅠ!
# 6주차
오프라인으로 진행되었다. 학교 중간고사가 있어서 참석하지 못 했다. 나도.. 나도 마지막 오프라인 활동 가고 싶었는데...(털썩) 시험이 웬수다... 큷흡..
마무리
마지막 오프라인 모임에 많이 참여를 못해서 아쉬웠다. 그래도 낯설고 어려웠던 GitHub과도 좀 더 친숙해 질 수 있었고, 처음으로 오픈 소스에 기여해 보는 좋은 경험을 가질 수 있었다! 특히 내 손으로 직접 작성한 번역 문서가 프로젝트에 반영되고, 리뷰어의 피드백을 기반으로 소통해 나가는 과정이 생소하면서도 즐거웠다. 오픈소스 기여의 첫 발판을 무사히 뗀 것 같아 기쁘고 소중한 시간이었다. 앞으로 더 다양한 프로젝트에도 기여해 보고 싶다!

한 줄평 :
오픈소스 기여, 생각보다 어렵지 않다!
이외 소감 :
이슈 탭 싸움 구경이 가장 재밌다 ㅎㅎ