~막학기 취준생이 오픈소스 기여를 접하게 된 과정~

 

1. 오픈소스 기여? 도전해 말아..

11/1(금) 오픈소스 멘토링 신청

 

때는 금요일 오전 오늘도 카페 가서 공부해야지..하고 누워서 핸드폰하며 뒹굴다가

구글에 싸피 후기를 검색 -> 발견한 블로그의 다른 게시글도 구경 -> 오픈소스 멘토링 후기 발견 순으로

인제님의 오픈소스 멘토링을 접하게 되었다!

 

내가 당시 본 블로그 후기글은 낙관적 허무주의 개발자님의 이 후기! 

https://jun10920.tistory.com/39

 

오픈소스 기여하기 / Open Source Contribute - Spring AI

안녕하세요!이번 주제는 오픈소스에 기여해 보는 경험을 공유하기 위해서 왔습니다.프로젝트를 진행하면서 어느 정도 기능 개발에 익숙해져서 자신감에 차 있던 저는오픈소스를 이해하고, 이

jun10920.tistory.com

 

https://medium.com/opensource-contributors/%EB%AA%A8%EC%A7%91%EC%A4%91-%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4-%EB%A9%98%ED%86%A0%EB%A7%81-7%EA%B8%B0-%EC%B0%B8%EC%97%AC%EC%9E%90%EB%A5%BC-%EB%AA%A8%EC%A7%91%ED%95%A9%EB%8B%88%EB%8B%A4-a8e0f94a2522

 

인제님의 오픈소스 멘토링은 매우 체계적으로 진짜 누구나 이슈를 선정하고 첫 PR을 생성할 수 있도록 도와주는 과정 같았다. 그동안 오픈소스, 오픈소스 기여가 어떤 내용인지는 알고 있었지만 진짜 이렇게 많은 개발자들이 이슈를 올리고 또 해결하고 자유롭게 오픈소스가 발전되고 있다는 건 처음 접하였다.

 

오픈소스 멘토링 후기글들을 여럿 찾아보고, 노션도 구경하며 신청서를 제출할까 말까 많이 고민하였다. 나는 못할 것 같은데... 싶다가도 매일이 똑같은 이 시기에 새로운 도전을 해보고 싶어서 한시간 정도는 망설이다가 신청서를 제출하였다!

오픈소스 멘토링에 왜 참여하고 싶은지, 그동안 여러 스터디를 통해 다른 사람들과 함께 개발하는 경험을 쌓았던 내용을 담아서 작성했다.

 

 

11/5 (화) 멘토링 선정

신청서를 제출하고 선정이 될 수 있을까... 기다리다가 카톡방 알람이 울리고 멘토링에 선정되었다는 연락을 받았다. 무료한 일상에 도파민 터질 일정이 추가되었다는 사실에 너무너무 좋았다. 

 

 

 

 

 

2. 이슈 선정부터~ 본격 기여 시작

11/21 (목) ~ 11/23 (토), 11/24 (일)

일요일 대면 멘토링 전에 카톡으로 이슈를 선정하고 피드백을 받는다!

 

나는 평소에 많이 사용해 본 spring, spring boot를 첫번째로 이슈 탐색을 시작하였다.

 

 

그런데 생각보다 인제님의 이슈 선정 가이드에 적합한 이슈가 보이지 않았다. 그래서 범위를 더 넓혀서 hibernate나 swagger, jpa, redis 등 사용해 본 경험이 있는 오픈소스 중에 관심 가는 아이들을 살펴보았다. 그 중에서도 사실 spring data reids에 마음이 조금 더 갔는데 아무래도 이 시기에 진행했던 졸업 연구 마지막 단계에서 spring data redis를 사용해서 그랬던 것 같다.

 

redis는 요즘 정말 많이 사용된다고 해서 나도 자세히 공부해보고 싶었는데 졸업 연구에 적용하는 과정은 import하고 캐시 애노테이션을 사용하고 너무 단순하게?(진짜 그냥 갖다 쓰는 정도로..) 사용한 것 같아서 아쉬웠다. 그래서 redis 이슈를 선정해서 분석해보면 좋을 것 같아 더 열심히 이슈를 찾았다.

 

 

나는 최종적으로 

 

이렇게 2가지 이슈를 선정해 보았고 인제님 피드백을 바탕으로 spring data redis의 이슈를 최종적으로 선택하였다.

 

 

 

 

내가 선택한 이슈는 spring data redis에 properties 파일로 캐시 설정을 받아오는 새로운 기능을 추가하자는 이슈였다.

https://github.com/spring-projects/spring-data-redis/issues/1510

 

 

이슈 내용은 쉽게 이해가 돼서 간단할 거라고 생각했는데 생각보다 고려해야 할 내용이 많은 이슈였다.

 

결론적으로 이러한 작업을 거쳤다.

 

1. redisCacheConfiguration에 redis-cache.properties로 캐시 설정을 받아오는 코드 작성

2. 유닛테스트 작성

3. 실제로 사용자가 어떻게 properties 파일을 두면 되는 지 테스트

4. properties 파일이 없는 경우 고려

5. 잘못된 input이 들어올 경우 고려

 

 

 

PR생성!

사실 일요일 멘토링에서 PR까지 생성 완료했어야 했는데 configuration 코드 보완하고 3번 작업하느라 멘토링 3시간이 훌쩍 지났다. 그래서 멘토링 이후에 인제님께 코드 리뷰를 한번 더 받고 pr을 올리게 되었다.

https://github.com/spring-projects/spring-data-redis/pull/3059

 

 

pr을 생성할 때는 spring data redis의 기여가이드도 잘 살펴보고 신중히 글을 작성했다ㅋㅋ 

뭔가 내가 작성한 코드가 오픈소스에 pr로 올라가다니,, 너무 신기했다.

https://github.com/spring-projects/spring-data-redis/blob/main/CONTRIBUTING.adoc

 

 

3. 기여를 마치며, 느낀점

pr생성까지 마무리했지만 아직 끝이 아니다. 메인테이너 분들의 리뷰를 기다리고 merge 될 수 있을때까지 계속 작업을 해야 한다. 그동안 테스트 케이스를 다시 점검하고 다른 이슈들도 기웃기웃해 봐야겠다.

처음에는 이슈를 봐도 하나도 눈에 안들어오고 무엇보다 영어 독해가 생각보다 너무 안되고!! 힘들었지만 그래도 한 번 해보니까 자신감이 생기는 것 같다.

 

새로운 기능 추가가 아니더라도 오타 삭제나 누락된 단어 추가 같은 이슈도 기여해보면 좋을 것 같다.(사실 이번에 작업을 하면서 내가 오픈소스에 새 기능을 추가하는거... 괜찮은건가 가능한건가 싶으면서 조금 부담이 되었다ㅎ 하지만 뭐 일단 해보고 메인테이너분들의 리뷰를 받자는 마음으로 했다 결국엔 해냈다)

 

또, 오픈소스 멘토링은 너무너무 좋은 경험이었다. 내가 사용해보지 않은 오픈소스도 다른 분들이 작업하시는 걸 보고 또 마지막에 인제님께서 각각 어떤 오픈소스에서 어떤 이슈를 선정해서 작업했는 지 쭉 말씀해주셔서 여러 오픈소스에 대한 이야기를 들을 수 있어서 너무 좋았다.!

 

 


Redis 관련 참고한 기업 기술블로그

 

https://techblog.woowahan.com/2709/

 

선물하기 시스템의 상품 재고는 어떻게 관리되어질까? | 우아한형제들 기술블로그

안녕하세요. 저는 주문서비스팀의 서버개발자 강홍구입니다. 이 글에서는 배달의민족 선물하기 서비스의 상품권 재고관리를 위한 시스템 설계에 대한 경험을 공유드리고자 합니다. 들어가며

techblog.woowahan.com

 

https://techblog.gccompany.co.kr/redis-kafka%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%84%A0%EC%B0%A9%EC%88%9C-%EC%BF%A0%ED%8F%B0-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EA%B0%9C%EB%B0%9C%EA%B8%B0-feat-%EB%84%A4%EA%B3%A0%EC%99%95-ec6682e39731

 

Redis&Kafka를 활용한 선착순 쿠폰 이벤트 개발기 (feat. 네고왕)

안녕하세요. 유저혜택개발팀 쿠폰 백앤드 개발자 페이든입니다.

techblog.gccompany.co.kr

 

+ Recent posts