Spring Framework에 기여한 내용 소개
오늘은 Spring Framework 오픈소스에 기여한 내용에 대해서 작성하겠습니다.
먼저 제가 오픈소스 기여에 관심을 가지게 된 계기는 GDG Songdo에서 진행하고 있는 오픈소스 멘토링을 통해서 많은 분들이 크고 작은 글로벌 오픈소스에 기여를 하는 것을 보고 나도 저렇게 내가 사용하는 프레임워크에 기여를 해보고 싶다는 생각으로 시작되었습니다.
현재는 스프링프레임워크의 아주 작은 코드를 수정하는 수준의 기여를 하였는데 앞으로는 더 큰 로직을 더 나은 방향으로 수정하고 직접 테스트 코드도 짜서 검증하는 기여를 해보고 싶습니다.
이번에 기여한 내용은 Pull Request #33634에서 확인하실 수 있습니다.
변경 사항 설명
이번 기여에서는 WebSocketHandlerMapping.java 파일의 matchWebSocketUpgrade 메서드에서 하드코딩된 "GET" 문자열 비교를 HttpMethod.GET.matches(request.getMethod())로 대체했습니다.
- 변경 전 코드:
- 변경 후 코드:
기여 이유
- 가독성 향상: HttpMethod 클래스를 사용하면 하드코딩된 문자열보다 코드가 더 명확해지고 읽기 쉬워집니다.
- 오류 방지: HttpMethod 클래스를 사용하면 하드코딩된 문자열에서 발생할 수 있는 오타와 같은 실수를 줄일 수 있습니다.
- 일관성 유지: Spring Framework의 다른 부분에서도 HttpMethod.GET.matches를 사용하고 있어, 전체 코드베이스의 일관성을 유지할 수 있습니다.
SpringFramework에 반영이 된 모습
https://github.com/spring-projects/spring-framework/commit/a668580f77eb1482fb4f0dc5205b4a7440e8c110
마무리
처음 글로벌 오픈소스에 기여하게 되면서, 부족한 점도 많았고 아직은 작은 기여에 불과했지만, 이 경험은 제게 큰 의미가 있었습니다. 다른 개발자들이 쉽게 시도하지 못하는 영역에 도전하면서, 저 스스로가 이러한 프로젝트에 가치 있는 기여를 할 수 있는 개발자라는 자신감을 점차 키워갈 수 있었습니다. 특히 스프링 프레임워크의 소스 코드를 직접 분석하고 이해하는 과정에서, 진정으로 정교한 코드가 무엇인지를 깊이 있게 배울 수 있었습니다. 평소 사용하던 프레임워크의 내부를 들여다보며, 그 안에 담긴 뛰어난 설계와 구현에 대해 새삼 감탄하게 되었습니다. 이러한 과정을 통해 오픈소스 기여의 진정한 매력을 발견하게 되었고, 앞으로도 시간이 날 때마다 새로운 오픈소스 프로젝트들을 탐색하거나 현재 활용 중인 오픈소스의 코드를 심도 있게 분석하면서 의미 있는 기여를 할 수 있는 방안을 지속적으로 모색해 나갈 계획입니다.
'OpenSource' 카테고리의 다른 글
오픈소스 - Naver scavenger - 로깅 문자열 연결 vs 파라미터 치환 (1) | 2024.11.23 |
---|---|
오픈소스 - 표준프레임워크 기여하기 - logging-log4j2, readme (2) | 2024.11.13 |
오픈소스 - hibernate-orm 기여하기 - testing orm (0) | 2024.11.08 |
오픈소스 - Naver Arcus Client - MapDelete, MapGet JMH 벤치마킹 (0) | 2024.10.10 |
2024 OSSCA 표준 프레임워크 및 MSA, 쿠버네티스 환경 살펴보기 (3) | 2024.10.02 |