Skip to content

answndud/opensource-contribution-journey

Repository files navigation

오픈소스 기여 기반 백엔드 포트폴리오

Spring/Java 오픈소스 프로젝트에 직접 기여하며 문제 정의, 구현, 검증, 리뷰 대응, 회고를 기록한 저장소입니다.

목표는 단순히 PR 개수를 늘리는 것이 아니라, 어떤 문제를 어떤 범위로 고쳐야 실제로 머지될 수 있는지 판단할 수 있는 백엔드 개발자임을 증명하는 것입니다.

License


빠른 요약

구분 내용
현재 지표 총 22개 PR, 3개 머지, 7개 리뷰 대기, 12개 종료·정리
대표 backend 사례 Spring Boot MailSender failure analysis 개선 PR 머지
주요 역량 Spring auto-configuration 분석, targeted test, API 호환성 리팩터링, maintainer workflow 대응
바로 볼 문서 공개 포트폴리오, 면접 답변, Spring Boot 사례

🎯 이 저장소가 보여주는 것

  • Spring 생태계와 Java 오픈소스 프로젝트에서 실제 이슈를 읽고, 수정 범위를 좁혀 PR까지 만든 경험
  • 문서 수정, 버그 수정, 설정/진단 개선까지 서로 다른 유형의 변경을 다룬 경험
  • 머지된 PR뿐 아니라 종료된 PR까지 분석하며 작업 기준을 개선한 과정
  • AI를 탐색과 검증 가속에 활용하되, 최종 판단과 품질 책임은 직접 진 방식

면접관에게 먼저 보여줄 증거

  1. Spring Boot #49582 머지

    • MailSender bean 부재를 단순 missing bean 문제가 아니라 auto-configuration 조건 불일치로 분석했습니다.
    • 공통 로직을 바꾸지 않고 spring-boot-mail 모듈 안에서 전용 FailureAnalyzer와 targeted test로 해결했습니다.
  2. Spring Data Redis #3361 리뷰 대기

    • 중복 converter 구현을 deprecated API 유지 + 내부 위임 구조로 정리했습니다.
    • public API를 바로 삭제하지 않고 호환성을 고려한 리팩터링으로 접근했습니다.
  3. 종료된 PR 12개 회고

    • assignee, triage 상태, maintainer 코멘트, 기존 PR 확인을 readiness gate로 만들었습니다.
    • 실패 기록을 숨기지 않고 다음 PR의 작업 기준으로 바꿨습니다.

📚 목차


📊 기여 현황

기준일: 2026-05-18

항목 내용
총 PR 22개
✅ 머지 3개
⏳ 리뷰 대기 7개
⚪ 종료·자진 정리 12개
주요 프로젝트 Spring Guides, Spring REST Docs, Spring Batch, Spring Boot, Spring Security, Spring Data Redis, Apache Iceberg, Querydsl

✅ 머지된 대표 사례 3건

1. Spring Guides: gs-rest-service#175

  • 문제: pre-initialized project 링크의 packageName이 실제 가이드 코드 경로와 맞지 않았습니다.
  • 해결: Spring Initializr 링크 파라미터를 수정해 생성 결과와 문서 예제가 일치하도록 맞췄습니다.
  • 배운 점: 첫 기여일수록 작고 명확하며 저장소 경계가 분명한 문제를 고르는 것이 중요합니다.
  • 상세 문서: Spring Guides 사례 자세히 보기
  • PR 링크: spring-guides/gs-rest-service#175

2. Apache Iceberg: #15309

  • 문제: schemas.mduuid 행에 마크다운 표 문법 오류가 있었고, 문서 정합성이 깨져 있었습니다.
  • 해결: 누락된 Notes 컬럼과 닫는 파이프를 복구하고, 렌더링과 before/after 자료로 변경 의도를 설명했습니다.
  • 배운 점: 겉으로 보이는 변화가 작아도, 문법 정합성과 리뷰 증거를 같이 제시해야 설득력이 생깁니다.
  • 상세 문서: Apache Iceberg 사례 자세히 보기
  • PR 링크: apache/iceberg#15309

3. Spring Boot: #49582

  • 문제: spring-boot-mail이 있어도 필수 속성이 빠지면 MailSender bean이 생성되지 않는데, 기존 failure analysis가 잘못된 해결 방향을 안내하고 있었습니다.
  • 해결: 공통 missing bean 로직을 건드리지 않고, spring-boot-mail 모듈 안에 mail 전용 FailureAnalyzer를 추가했습니다.
  • 배운 점: 좋은 PR은 큰 리팩터링보다 정확한 문제 정의, 기존 패턴 재사용, 작은 수정 범위에서 나옵니다.
  • 상세 문서: Spring Boot 사례 자세히 보기
  • PR 링크: spring-projects/spring-boot#49582

❌ 거절·종료된 PR에서 배운 점

대표적으로 배운 패턴은 아래 네 가지였습니다.

  1. 구조를 모르면 맞는 수정도 틀린 PR이 된다

    • gs-rest-service#172, getting-started-macros#19, gs-rest-service#173
    • 문서 문제처럼 보여도 실제 수정 지점은 공통 매크로나 팀이 이미 정해 둔 방향일 수 있었습니다.
  2. 버그처럼 보여도 의도된 동작일 수 있다

    • spring-restdocs#1022
    • HTTP semantics와 라이브러리 철학을 먼저 확인해야 했습니다.
  3. 기능 추가는 강한 use case 없이는 받아들여지지 않는다

    • spring-restdocs#1023
    • 구현 가능성과 머지 가능성은 다르다는 점을 배웠습니다.
  4. 코드가 맞아도 프로세스를 어기면 종료될 수 있다

    • spring-security#18850, spring-security#18889, spring-boot#49594
    • assignee, triage 상태, maintainer 코멘트를 확인하지 않고 먼저 움직이면 작업 방향이 어긋날 수 있었습니다.

상세 분석과 이후 작업 기준은 아래 문서에 정리했습니다.


🤖 AI 활용 방식

  • 이슈 후보 탐색, 관련 코드 위치 파악, 테스트 명령 정리에 AI를 보조 도구로 사용합니다.
  • 실제 구현 방향은 maintainer 코멘트, 기존 코드 패턴, 로컬 테스트 결과를 기준으로 판단합니다.
  • PR 본문과 포트폴리오 기록에는 어떤 문제를 왜 고쳤는지, 어떤 검증을 했는지 직접 추적 가능하게 남깁니다.

⏳ 현재 진행 중인 PR

리뷰 대기 PR도 단순히 쌓아 두지 않고, maintainer 반응 가능성, 프로젝트 활동성, triage 상태를 기준으로 계속 분류하고 있습니다.


공개 문서 안내


📋 전체 기여 로그

# 프로젝트 유형 상태 링크
1 gs-rest-service 문서 ⚪ 종료 #172
2 getting-started-macros 문서 ⚪ 종료 #19
3 gs-rest-service 문서 ⚪ 종료 #173
4 gs-rest-service 문서 ✅ 머지 #175
5 spring-restdocs 버그 수정 ⚪ 종료 #1022
6 spring-restdocs 기능 추가 ⚪ 종료 #1023
7 querydsl 버그 수정 ⏳ 대기 #3933
8 querydsl 버그 수정 ⏳ 대기 #3934
9 apache/iceberg 문서 ✅ 머지 #15309
10 spring-batch 버그 수정 ⚪ 종료 #5309
11 spring-batch 문서 ⚪ 종료 #5313
12 spring-batch 버그 수정 ⚪ 종료 #5315
13 spring-batch 버그 수정 ⏳ 대기 #5316
14 spring-batch 버그 수정 ⚪ 종료 #5317
15 spring-batch 버그 수정 ⏳ 대기 #5318
16 spring-batch 기능 추가 ⏳ 대기 #5339
17 spring-security 버그 수정 ⚪ 종료 #18850
18 spring-boot 버그 수정 ✅ 머지 #49582
19 spring-security 버그 수정 ⚪ 종료 #18889
20 spring-boot 기능 추가 ⚪ 종료 #49594
21 spring-batch 버그 수정 ⏳ 대기 #5351
22 spring-data-redis 리팩터링 ⏳ 대기 #3361

마지막 업데이트: 2026-05-18

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages