오픈소스 기여모임 10기에 참여해서 Spring Tools와 Spring Framework에 PR을 올리고 머지까지 된 과정을 정리한 글이다. Spring Framework 쪽은 7.0.4에 릴리즈까지 됐다.
🚀 오픈소스, 해보고 싶긴 했는데
"오픈소스 기여 한번 해보고 싶다"
사실 이 생각은 꽤 오래전부터 있었다. 근데 막상 하려고 하면 어디서부터 손을 대야 할지 감이 안 왔다. 이슈를 뒤져봐도 뭐가 뭔지 모르겠고, 괜히 PR 올렸다가 민폐만 끼치는 거 아닌가 싶기도 하고. 그러다 오픈소스 기여모임 10기 모집을 보고 바로 신청했다.
1. Spring Tools — IDE에서 쿼리 생성 기능 개선
PR: spring-projects/spring-tools#1763
Spring Tools는 VSCode나 Eclipse에서 Spring 개발할 때 도와주는 확장 도구인데, 여기에 꽤 괜찮은 편의 기능이 하나 있다. Spring Data Repository에 findByNameAndAge 같은 메서드를 선언하면, 그걸 분석해서 실제로 어떤 쿼리가 실행될지 IDE에서 바로 보여주는 기능이다. JDBC, JPA, MongoDB 다 지원한다.

근데 이 쿼리 생성 로직의 이슈가 올라와있어서 보니 자바 15부터 멀티라인이 제공 되는데 여기에는 아직 안 들어와 있어 가독성이 안 좋은 상황이었다. 이 부분을 보완해서 PR을 올렸고 머지가 됐다.

2. Spring Framework — 메시징 헤더 전파 자동화
PR: spring-projects/spring-framework#36179
릴리즈: Spring Framework 7.0.4에 포함
이건 좀 더 깊은 곳을 건드린 작업이었다. Spring Messaging에서 메시지를 주고받을 때, 클라이언트가 보낸 헤더를 응답에 다시 실어서 돌려주고 싶은 경우가 있다. 근데 기존에는 이걸 하려면 중간에 인터셉터로 메시지를 낚아채서 헤더를 수동으로 꺼내고, 응답할 때 다시 수동으로 넣어줘야 했다. 솔직히 좀 번거롭다.
[기존 방식]
클라이언트 → 메시지 + 헤더 → 서버 수신
↓
인터셉터에서 헤더 수동으로 꺼내기
↓
응답에 헤더 수동으로 다시 삽입
↓
서버 → 응답 + 헤더 → 클라이언트
그래서 허용 목록만 설정해두면, 프레임워크가 알아서 응답에 해당 헤더를 넣어주는 로직을 구현했다. 인터셉터 코드를 직접 짤 필요도 없고, 헤더 빼먹을 일도 없어진 거다.

이게 머지되고 나서 Spring Framework 7.0.4에 포함되어 릴리즈까지 됐다. 내가 짠 코드가 Spring 릴리즈에 들어갔다는 게 아직도 좀 신기하다.

느낀 점
메인테이너분들이 엄청 친절하다
처음 PR 올릴 때 진짜 긴장했다. "이런 걸 올려도 되나" 싶었는데, 메인테이너분들이 리뷰를 되게 꼼꼼하게 해주시면서 방향도 잡아주셨다.

기여모임이 아니었으면 시작도 못 했다
운영진분들이 이슈 찾는 법부터 PR 작성, 메인테이너랑 소통하는 방법까지 다 가이드해주셨다. 혼자였으면 이슈 하나 읽고 "역시 나는 아직..." 하면서 브라우저 닫았을 거다.
마무리
오픈소스 기여를 해보며 이번에 알게된 점은 첫번 째로 오픈 소스 기여가 그리 어려운 일이 아니라는 것이다. 그저 고칠 수 있는 이슈를 찾아 고치고 PR을 올리면 끝이다. 두번 째는 오픈소스 승인이 되면 성취감도 있고 보람이 있다는 것이다. 특히 Spring Framework 7.0.4 릴리즈 노트에 내 PR이 들어가 있는 걸 봤을 때는, 전 세계 개발자들이 쓰는 프레임워크에 내 이름이 남았다는 게 실감이 안 났다.
기여모임 운영진분들, 그리고 친절하게 리뷰해주신 Spring 메인테이너분들께 진심으로 감사하다. 오픈소스 기여 해보고 싶은데 망설이고 있다면, 이런 커뮤니티 힘 좀 빌려보는 걸 추천한다.
PR 링크
- Spring Tools: spring-projects/spring-tools#1763
- Spring Framework: spring-projects/spring-framework#36179
'개발기' 카테고리의 다른 글
| AI Native 서버 개발 with Rust - YAPP 27기 Server 후기 (0) | 2026.03.09 |
|---|---|
| 좋아요 알림 지연 10초 → 0.1초: 동기/Outbox/비동기 비교 및 개선기 (0) | 2026.01.25 |
| [LangChain] 복잡한 SQL, AI/LLM으로 해결하기: Text-to-SQL 4가지 방식 성능/비용 비교 (1) | 2025.12.09 |
| 서버비 0원으로 월 8,000 트래픽 감당하기: Cloudflare Workers + Notion 도입기 (0) | 2025.12.03 |