앞으로 종종 오픈소스에 기여하고, 관련된 일기를 작성해보려고 한다. 이건 내가 오픈소스에 처음으로 기여하게 된 기념으로 작성하는 일기이다. 기여하면서 어려웠던 부분들과, 오픈소스의 장점들을 앞으로 꾸준하게 작성할테니 다른 초보자분들께 도움이 됐으면 좋겠다.
개요
내가 처리할 수 있는 이슈를 찾던 중 elimu.ai 의 webapp에서 발생한 이슈를 발견하게 되었다.
이 프로젝트는 교육 관련 콘텐츠를 관리하는 오픈소스 플랫폼으로, Java와 JSP 기반으로 구성되어 있었다.
이슈는 "peer-review" 관련 기능의 일부 페이지와 컨트롤러가 더 이상 사용되지 않음에도 불구하고, 코드에 남아 있다는 점이었다. 내 기술스택과 수준이 이슈와 적합함을 확인하고, 이를 작업하게 되었다.
하지만 오픈소스에 기여는 처음이라 조금 어려웠던 부분들이 있었다..
어려웠던 점
이슈의 요구사항을 정의

지금은 변경됐지만, 내가 처음 봤던 이슈의 내용이었다.
이슈의 내용은
- peer-review와 관련된 페이지 제거
- peer-review와 관련된 컨트롤러 제거
- peer-review와 관련된 DAO 제거
이슈의 작업자체는 어렵지 않았다. 코드를 읽고 peer-review와 관련된 페이지와, 연관된 컨트롤러, DAO를 제거하면 되는거였다.
하지만 작업 중에 요구사항이 변경되어 DAO계층은 제거대상에서 제외되어버려서 혼동이 왔다. 변경된 요구사항도 제거할 파일의 범위만 줄어드는 것이었지만, 영어를 잘 사용하지 못해 혼동이 온 것 같다. 하지만 오픈소스에 기여하면서 점점 영어 실력도 늘어날 거라고 생각하기에 나중엔 혼동이 안 올 수 있겠지?
아무튼 중간에 변경된 이슈 때문에 혼동이 와서 내가 작업할 파일들을 나열해서 담당자에게 맞냐고 컨펌받고, 다시 작업하였다.
변경된 이슈를 다시 이해하고, 작업하였다. 작업은 크게 어렵지 않았다.
PR에서의 코드리뷰
작업이 끝나고 PR을 요청했다.
PR에서 리뷰를 통해 3번의 코드 변경 요청을 받았다…
근데 앞의 상황과 다르게, 이건 내가 이해를 잘못해서 코드를 변경해야 했었다.
요구사항을 명확하게 정리하자면 peer-reviews와 관련된 Controller, JSP 파일 제거이다.
하지만 내 초기 PR요청을 리뷰받으면서 2가지 문제를 알 수 있었다.
- PeerReviewEvent와 관련된 컨트롤러를 삭제한 문제
- PeerReviewEvent는 PeerReview와 별개로 사용중이었기 때문에, 삭제하면 문제가 된다는 리뷰를 받았다.
- 처음에 PeerReview를 사용하지 않으면, PeerReviewEvent도 사용하지 않는것이라 판단했고 그 판단에 맞춰 PeerReviewEvent와 관련된 컨트롤러도 삭제했었다. 하지만 이는 내가 요구사항을 초과해서 해석하여 발생한 문제였고, 리뷰에 따라 관련 파일들을 복구하였다.
- 다른 jsp파일에서 peer-reviews와 관련된 link를 삭제하지 않은 문제
- peer-reviews와 관련된 jsp파일과, 컨트롤러를 삭제했지만, 다른 Jsp파일 내에서 삭제된 url로 요청을 보내는 코드가 남아있었다. 이를 클릭하면 당연히 404가 발생하는 문제가 발생한다.
- 컨트롤러를 삭제할 때, JSP를 사용하는 웹앱이므로 삭제한 컨트롤러의 URL에 요청하는 페이지가 있는지도 확인해야 했다. 1차적으로 IDE에서 url만 검색해도 관련된 페이지가 나오는데 이걸 확인 못한 내 실수였고 아쉬웠다.
아무튼 저 2가지 문제가 있어서 변경사항을 되돌리고, 몇가지 추가 작업을 다시 커밋하여 PR을 진행한 결과..

그리고 최종적으로 코드리뷰와 테스트를 통과하여 머지가 승인되었다!
후기
이번 경험을 통해 많은 걸 배웠다. 단순히 코드만 수정하는 게 아니라,
이슈를 정확히 이해하고
작업 범위를 명확히 파악하며
코드 수정 이후 영향을 줄 수 있는 부분까지 꼼꼼히 살펴보는 태도가 얼마나 중요한지를 알게 되었다.
또한, 영어로 소통하는 데에 아직 부족함을 느꼈지만,
막상 해보니 생각보다 무서울 것 없다는 것도 알게 되었다.
틀려도 된다. 모르면 물어보면 된다. 중요한 건 꾸준히 시도하고, 배워나가는 것이라고 느꼈다.
앞으로도 오픈소스에 꾸준히 기여할 생각이다.
기여하면서 겪는 어려움이나 깨달음들을 이렇게 기록으로 남길 예정이고,
이 글이 나처럼 오픈소스를 처음 시작하는 분들께 작은 도움이 되었으면 좋겠다.
Share article