Track A Track B Track C
Week 3: 첫 번째 기여 Sprint
🏃 "작은 기여부터 시작하자 — 첫 PR의 감동"
📋 PR 작성법
좋은 PR의 구조와 작성 워크플로우
📝 커밋 컨벤션
Conventional Commits와 메시지 작성
⚙ CI/CD
GitHub Actions와 파이프라인 이해
🔍 코드 리뷰
Peer Review 실습과 피드백
AI Open Source Impact (AIOI) · 2026
02
🎯 이번 주 학습 목표
Week 3에서 달성할 핵심 목표 3가지
🏆 목표 1
  • 멘토의 가이드를 받아 첫 번째 Pull Request를 생성한다
  • Draft PR도 OK! 완벽하지 않아도 시작이 중요
  • 💬 목표 2
  • 오픈소스 커뮤니케이션 에티켓과 PR 작성법을 익힌다
  • 영어 PR 작성, 이슈 코멘트 연습
  • 🔬 목표 3
  • 코드 리뷰를 주고받는 경험을 한다
  • 건설적 피드백 주기와 받기 실습
  • 03
    📅 멘토링 세션 구성
    온라인 화상회의 1시간 + 자기주도 Sprint 2시간
    시간내용세부사항
    15분진척 점검팀별 이슈 선정 현황, 기여 계획 리뷰
    30분PR 작성 워크숍좋은 PR의 구조, 커밋 메시지 컨벤션, CI/CD 파이프라인 이해
    15분코드 리뷰 실습Peer Review 실습, 건설적 피드백 방법
    💡 Sprint 활동 (2시간): 멘토링 후 각자 이슈 해결 → PR 생성 → 팀원 리뷰 요청
    04
    📊 진척 점검
    Week 2 과제 확인 — 지금 어디에 있나요?
    ✅ 완료 확인
  • 이슈 1개 선정 완료?
  • 기여 계획서 제출 완료?
  • 프로젝트 아키텍처 분석 완료?
  • 타겟 코드 영역 AI로 분석?
  • 🚨 미완료 시
  • 멘토에게 바로 도움 요청
  • 더 작은 이슈로 타겟 변경 고려
  • 문서/번역 기여부터 시작
  • 팀원과 페어 프로그래밍
  • 🚀 다음 단계
  • 이제 실제 코드를 작성할 시간!
  • 첫 PR 생성이 이번 주 목표
  • Draft PR도 OK — 완벽할 필요 없음
  • 코드 리뷰를 통해 함께 성장
  • 05
    🔄 PR 워크플로우 전체 흐름
    Fork → Branch → Commit → Push → PR → Review → Merge
    Fork
    원본 저장소를 내 계정에 복제
    Branch
    기능별 브랜치 생성
    Commit
    의미 있는 단위로 커밋
    Push
    내 Fork에 푸시
    PR
    원본에 Pull Request 생성
    Review
    메인테이너 리뷰 & 피드백
    Revise
    피드백 반영 & 수정
    Merge!
    🎉 기여가 반영됨
    06
    🔌 Fork & Clone 셋업
    기여를 위한 Git 환경 구성
    # 1. GitHub에서 Fork 버튼 클릭 (웹에서) # 2. Fork한 저장소 클론 git clone https://github.com/MY_USERNAME/project.git cd project # 3. 원본 저장소를 upstream으로 추가 git remote add upstream https://github.com/ORIGINAL_OWNER/project.git # 4. upstream 확인 git remote -v # origin https://github.com/MY_USERNAME/project.git (fetch) # upstream https://github.com/ORIGINAL_OWNER/project.git (fetch) # 5. 최신 코드 동기화 git fetch upstream git merge upstream/main
    주의: 항상 upstream/main에서 새 브랜치를 생성하세요. main 브랜치에서 직접 작업하지 마세요!
    07
    🌴 브랜치 전략
    기능별 브랜치를 만들어 작업하세요
    # 기능 브랜치 생성 git checkout -b fix/issue-123-typo-in-readme git checkout -b feat/add-korean-translation git checkout -b docs/update-contributing-guide # 브랜치 네이밍 컨벤션 # <type>/<short-description> # fix/ - 버그 수정 # feat/ - 새 기능 # docs/ - 문서 수정 # test/ - 테스트 추가 # refactor/ - 리팩토링
    ✅ 좋은 예시
  • fix/issue-456-null-check
  • feat/add-streaming-support
  • docs/translate-readme-to-korean
  • ❌ 나쁜 예시
  • my-changes (설명이 없음)
  • update (무엇을 업데이트?)
  • fix (어떤 버그를 수정?)
  • 08
    📋 좋은 PR의 구조
    메인테이너가 이해하기 쉬운 PR을 작성하세요
    📝 제목 (Title)
  • 간결하고 명확하게
  • 변경 유형을 포함
  • 예: "Fix null pointer in tokenizer"
  • 예: "Add Korean translation for README"
  • 📄 본문 (Description)
  • What: 무엇을 변경했는가
  • Why: 왜 이 변경이 필요한가
  • How: 어떻게 해결했는가
  • 관련 이슈 번호 참조
  • ✅ 체크리스트
  • 테스트 통과 확인
  • 기존 코드 스타일 준수
  • CONTRIBUTING.md 가이드 확인
  • 스크린샷/GIF 첨부 (UI 변경 시)
  • 09
    🎯 PR 제목 작성법
    첫인상을 결정하는 PR 제목 — 명확하고 간결하게!
    ✅ 좋은 PR 제목❌ 나쁜 PR 제목
    Fix: handle null case in tokenizer decode()fixed bug
    Add Korean translation for getting-started.mdtranslation
    feat: add streaming support for chat endpointupdate endpoint
    test: add unit tests for vector search moduletests
    docs: update installation guide for Python 3.12docs update
    💡 : 프로젝트의 기존 PR 제목 스타일을 참고하세요. Conventional Commits를 따르는 곳이 많습니다.
    10
    📄 PR 설명 템플릿
    프로젝트마다 다르지만, 이 구조를 기본으로 사용하세요
    ## Summary Fixes #123. Handle null case in tokenizer decode() method. ## Changes - Added null check before calling decode() in `src/tokenizer.py` - Added unit test for null input case - Updated docstring to document nullable behavior ## Why When input text is empty, the tokenizer throws an unhandled NullPointerError. This fix adds a proper guard clause. ## Test Plan - [x] Existing tests pass - [x] New test for null input added - [x] Manual test with empty string input ## Related Issues Closes #123
    11
    📝 Conventional Commits
    많은 오픈소스가 따르는 커밋 메시지 규격
    # 기본 형식 <type>(<scope>): <description> # 예시 feat(tokenizer): add support for BPE tokenization fix(api): handle timeout error in streaming endpoint docs(readme): add Korean installation guide test(vector): add unit tests for cosine similarity chore(deps): bump transformers to 4.45.0 refactor(pipeline): simplify inference flow style(ui): fix alignment in chat component ci(actions): add Python 3.12 to test matrix
    📚 Type 종류
  • feat: 새 기능 추가
  • fix: 버그 수정
  • docs: 문서 변경
  • test: 테스트 추가/수정
  • chore: 빌드/의존성 변경
  • refactor: 기능 변경 없는 코드 개선
  • 💡 팁
  • scope는 선택 사항 (모듈명)
  • description은 명령형으로 작성
  • "added" 대신 "add" 사용
  • 50자 이내로 작성
  • 첫 글자 소문자
  • 마침표 없이
  • 12
    💬 커밋 메시지 실전 예시
    실제 AI 오픈소스 프로젝트에서 볼 수 있는 커밋 메시지
    프로젝트커밋 메시지 예시유형
    LangChainfeat(core): add retry logic to LLM callsfeat
    Transformersfix: handle empty input in AutoTokenizerfix
    Difydocs: translate workflow guide to Koreandocs
    vLLMtest: add benchmark for batched inferencetest
    MCP SDKfeat(server): add streaming tool responsefeat
    CrewAIrefactor: simplify agent task delegationrefactor
    🔎 기여하려는 프로젝트의 git log --oneline을 확인하여 스타일을 파악하세요
    13
    🔬 커밋 모범 사례
    하나의 커밋 = 하나의 논리적 변경
    ✅ 좋은 커밋 습관
  • 하나의 커밋에 하나의 변경만
  • 관련 없는 변경을 섞지 않기
  • 커밋 전 git diff로 확인
  • 의미 있는 단위로 자주 커밋
  • WIP 커밋은 squash로 정리
  • ❌ 나쁜 커밋 습관
  • "fix" 한 커밋에 10개 파일 변경
  • 버그 수정 + 새 기능 + 리팩토링 혼합
  • "WIP" 커밋 그대로 PR에 포함
  • 빈 커밋 메시지
  • 거대한 하나의 커밋 (Mega Commit)
  • # 커밋 정리 (squash) - PR 전 정리 git rebase -i HEAD~3 # 최근 3개 커밋 합치기 # pick → squash 또는 fixup으로 변경
    14
    ⚙ CI/CD 파이프라인 이해
    PR을 올리면 자동으로 실행되는 검증 프로세스
    PR 생성
    코드 변경 제출
    CI 트리거
    자동 빌드 시작
    Lint & Format
    코드 스타일 검사
    Test
    단위/통합 테스트
    ✅ / ❌
    통과 또는 실패
    🛠 주요 CI 도구
  • GitHub Actions — 가장 많이 사용
  • CircleCI — 엔터프라이즈 인기
  • Jenkins — 자체 호스팅 CI
  • GitLab CI — GitLab 내장
  • 💡 알아두세요
  • CI가 통과해야 Merge 가능
  • CI 실패 시 로그를 확인하세요
  • 로컬에서 먼저 테스트 실행 후 PR
  • CI 설정은 .github/workflows/
  • 15
    🛠 GitHub Actions 기초
    대부분의 AI 오픈소스가 GitHub Actions를 사용합니다
    # .github/workflows/ci.yml 예시 name: CI on: pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: '3.12' - run: pip install -e ".[dev]" - run: pytest tests/ -v - run: ruff check . # 린트 검사 - run: ruff format --check . # 포맷 검사
    🔎 PR 페이지 하단 "Checks" 탭에서 CI 결과를 확인할 수 있습니다
    16
    🔎 자주 만나는 CI 검사
    AI 오픈소스 프로젝트에서 흔히 설정된 CI 체크들
    검사 항목도구실패 시 대응
    Lintruff, flake8, eslintruff check --fix . 실행
    Formatruff format, black, prettierruff format . 실행 후 재커밋
    Testpytest, jest, cargo test실패 테스트 로그 확인 후 코드 수정
    Type Checkmypy, pyright, tsc타입 힌트 추가/수정
    Buildmake, npm build, cargo빌드 에러 확인 후 수정
    Coveragecodecov, coveralls테스트 커버리지 미달 시 테스트 추가
    17
    🔧 CI 실패 해결하기
    CI가 실패해도 당황하지 마세요 — 로그를 읽으면 해결됩니다
    1. 로그 확인
    PR → Checks 탭 → Details
    2. 에러 분석
    실패 원인 파악
    3. 로컬 수정
    로컬에서 문제 해결
    4. Push
    수정 후 Push → CI 재실행
    # 로컬에서 CI와 동일한 검사 실행하기 # Python 프로젝트 pip install -e ".[dev]" ruff check . --fix # 린트 자동 수정 ruff format . # 포맷 자동 수정 pytest tests/ -v # 테스트 실행 # Node.js 프로젝트 npm install npm run lint -- --fix # 린트 자동 수정 npm run format # 포맷 자동 수정 npm test # 테스트 실행
    18
    🤖 AI로 CI 문제 해결하기
    Claude Code를 활용하면 CI 에러를 빠르게 분석할 수 있습니다
    💬 CI 에러 분석
  • "이 CI 에러 로그를 분석해줘"
  • "왜 pytest가 실패하는지 찾아줘"
  • "lint 에러를 수정해줘"
  • 🛠 자동 수정
  • "ruff 린트 에러를 모두 수정해줘"
  • "타입 힌트를 추가해줘"
  • "실패한 테스트를 분석하고 수정해줘"
  • 💡 예방
  • "pre-commit hook을 설정해줘"
  • "CI와 동일한 검사를 로컬에서 실행할 수 있게 설정해줘"
  • # Claude Code로 CI 에러 해결 > "GitHub Actions CI가 실패했어. 에러 로그를 보고 수정해줘." > "pre-commit hook을 추가해서 push 전에 lint를 자동 실행해줘."
    19
    🔍 코드 리뷰의 기본
    오픈소스에서 코드 리뷰는 학습의 최고 기회입니다
    📚 코드 리뷰란?
  • PR 코드를 다른 개발자가 검토하는 과정
  • 버그 발견, 코드 품질 향상
  • 지식 공유와 팀 학습의 기회
  • 오픈소스 문화의 핵심
  • 🎓 리뷰의 가치
  • 메인테이너의 코딩 스타일 학습
  • 프로젝트 아키텍처 이해 심화
  • 베스트 프랙티스 체득
  • 커뮤니케이션 능력 향상
  • 96%
    Graphite AI 리뷰
    긍정 피드백률
    85%
    AI 코드 리뷰로
    버그 조기 발견
    40%
    AI 이슈 트리아지로
    생산성 향상
    20
    🔍 리뷰에서 확인할 것
    팀원 PR을 리뷰할 때 체크해야 할 포인트
    카테고리확인 사항예시
    정확성로직이 올바른가?엣지 케이스 처리, off-by-one 에러
    가독성코드가 이해하기 쉬운가?변수명, 함수명, 주석의 적절성
    일관성프로젝트 스타일과 일치하는가?네이밍 규칙, 코드 포맷
    보안보안 취약점은 없는가?입력 검증, API 키 노출, SQL 인젝션
    성능성능 이슈는 없는가?불필요한 루프, N+1 쿼리
    테스트테스트가 충분한가?엣지 케이스 테스트, 커버리지
    21
    💬 건설적 피드백 주기
    좋은 코드 리뷰는 사람이 아닌 코드에 집중합니다
    ✅ 좋은 피드백
  • "이 부분에서 null 체크를 추가하면 안전할 것 같아요"
  • "nit: 변수명을 userList에서 users로 변경하면 어떨까요?"
  • "이 접근이 좋네요! 한 가지 제안이 있는데..."
  • "궁금한 점: 이 로직을 선택한 이유가 있나요?"
  • ❌ 나쁜 피드백
  • "이건 틀렸음" (대안 없는 비판)
  • "왜 이렇게 했어?" (공격적 톤)
  • "다시 작성해" (건설적이지 않음)
  • "LGTM" (아무 리뷰 없이 승인)
  • 💡 리뷰 코멘트 접두어: nit: (사소한 제안), suggestion: (개선안), question: (질문), blocker: (반드시 수정 필요)
    22
    🙌 피드백 받기
    피드백은 공격이 아닌 성장의 기회입니다
    💪 마인드셋
  • 피드백은 "코드"에 대한 것, "나"에 대한 것이 아님
  • 메인테이너는 프로젝트를 지키려는 것
  • 더 나은 코드를 만드는 협업 과정
  • 학습의 가장 좋은 기회!
  • 📝 대응 방법
  • 모든 코멘트에 답변 달기
  • 동의하면 수정 후 "Done" or "Fixed"
  • 동의하지 않으면 근거를 가지고 토론
  • 수정 후 "Ready for review" 재요청
  • 💬 응답 예시
  • "좋은 지적이네요! 수정했습니다."
  • "감사합니다. 이 부분은 X 때문에 이렇게 했는데, Y 방식으로 변경하겠습니다."
  • "이해했습니다. 한 가지 궁금한 점이 있는데..."
  • 23
    👥 팀 내 Peer Review 실습
    팀원과 함께 코드 리뷰를 연습합시다
    Step 1
    Draft PR 생성
    Step 2
    팀원에게 리뷰 요청
    Step 3
    코멘트 작성
    Step 4
    피드백 반영
    Step 5
    Approve!
    🎯 실습 규칙
  • 최소 2개 이상의 코멘트 남기기
  • 1개는 긍정적 피드백 (좋은 점)
  • 1개는 개선 제안 (nit: 또는 suggestion:)
  • 코멘트 후 "Changes requested" 또는 "Approved"
  • 💡 AI 활용 팁
  • Claude Code로 "이 PR의 코드를 리뷰해줘"
  • CodeRabbit 봇으로 자동 리뷰 (오픈소스 무료)
  • AI 리뷰를 참고하되, 최종 판단은 사람이
  • PR-Agent(Qodo)로 오픈소스 PR 리뷰 자동화
  • 24
    Track A Sprint 가이드
    AI로 기존 오픈소스에 기여하기 — 첫 PR 전략
    🐛 버그 수정 PR
  • Claude Code로 Good First Issue 분석
  • "이 이슈의 원인과 해결 방향을 분석해줘"
  • 관련 코드 탐색 → 수정안 작성
  • 테스트 추가 후 PR 생성
  • 📜 문서/번역 PR
  • README, CONTRIBUTING 한국어 번역
  • API 문서 개선, 예제 추가
  • Copilot으로 번역 초안 작성
  • 네이티브 체크 후 PR 제출
  • 🔬 테스트 추가 PR
  • AI로 테스트 코드 자동 생성
  • 테스트 커버리지 미비 영역 발견
  • Qodo Cover Agent 활용
  • 엣지 케이스 테스트 추가
  • 25
    Track A Claude CodePR 만들기
    5단계 워크플로우: 이슈 발견 → PR 제출
    # Step 1: 프로젝트 클론 & Claude Code 시작 git clone https://github.com/MY_USERNAME/langchain.git cd langchain && claude # Step 2: 코드베이스 이해 > "이 프로젝트의 전체 구조를 분석해줘. 코드 수정은 하지 마." > /init # CLAUDE.md 생성 # Step 3: 이슈 분석 > "GitHub 이슈 #12345를 분석해줘. 관련 코드를 찾아줘." # Step 4: 수정 & 테스트 > "이 버그를 수정하고 테스트를 추가해줘." > "기존 테스트가 모두 통과하는지 확인해줘." # Step 5: PR 생성 > "변경 사항을 커밋하고 PR을 생성해줘. 이슈 #12345를 참조해줘." # 또는: /create-pr
    26
    Track A AI로 테스트 생성
    테스트 커버리지 향상은 입문자에게 좋은 기여 유형!
    🔬 테스트 도구
  • Qodo Cover Agent — Meta TestGen-LLM 최초 오픈소스 구현
  • Claude Code — "이 함수의 테스트를 작성해줘"
  • Copilot — 테스트 자동 완성
  • ✅ 성과 사례
  • OpenObserve: AI로 700+ 테스트 작성
  • 플레이키 테스트 85% 감소
  • 분석 시간 6-10배 단축
  • # Claude Code로 테스트 커버리지 분석 > "이 프로젝트의 테스트 커버리지를 분석해줘. 테스트가 없는 함수를 찾아줘." > "src/tokenizer.py의 decode() 함수에 대한 pytest 테스트를 작성해줘."
    27
    Track A 문서 번역 PR 가이드
    한국어 번역은 진입 장벽이 낮은 기여의 시작
    프로젝트번역 기회난이도
    Hugging Face Transformers모델 카드, 튜토리얼, API 문서 한국어 번역⭐⭐
    LangChainGetting Started, 가이드, 예제 문서 한국어 번역⭐⭐
    DifyUI 문자열 한국어 번역, 사용 가이드
    Gradio컴포넌트 문서 한국어 번역⭐⭐
    MCP 공식 문서개발 가이드 한국어 번역⭐⭐⭐
    ⚠ AI 번역 도구(Tinbox, LLM)로 초안을 작성하되, 반드시 사람이 검수한 후 PR을 올리세요!
    28
    Track B Sprint 가이드
    기존 오픈소스에 AI 기능 추가하기 — 첫 통합 PR
    🔍 AI 검색/요약 추가
  • 기존 웹 프로젝트에 시맨틱 검색
  • 벡터 DB(pgvector/Chroma) 연동
  • 문서 사이트에 AI Q&A 위젯
  • Vercel AI SDK로 스트리밍 UI
  • 💬 자연어 인터페이스
  • CLI 도구에 자연어 명령 추가
  • DB 도구에 자연어→SQL 변환
  • LLM API 연동 (OpenAI/Claude)
  • API 키 관리 & 보안 고려
  • 🤖 AI 봇 통합
  • RAG 기반 Q&A 챗봇
  • LangChain + ChromaDB 파이프라인
  • GitHub Action + LLM 코드 리뷰 봇
  • Streamlit/Gradio 데모 UI
  • 29
    Track B AI SDK 통합 패턴
    기존 앱에 AI 기능을 추가할 때 사용하는 SDK들
    SDK언어특징적합한 프로젝트
    Vercel AI SDKTypeScript18+ 모델 프로바이더, SSE 스트리밍, AI GatewayNext.js, React 앱
    LangChainPython/JSLLM 앱 표준, LCEL 파이프라인, 도구 호출RAG, Agent 앱
    Spring AIJava1.0 GA, @Tool 어노테이션, MCP 지원Java/Spring Boot 앱
    OpenAI SDKPython/JS가장 범용적인 LLM API 클라이언트모든 유형
    💡 프로젝트의 기술 스택에 맞는 SDK를 선택하세요. Python이면 LangChain, JS/TS면 Vercel AI SDK!
    30
    Track B RAG Q&A 구축 예시
    문서 사이트에 AI Q&A 챗봇을 추가하는 실전 예시
    1. 문서 수집
    마크다운 파일 로드
    2. 임베딩
    텍스트 → 벡터 변환
    3. 저장
    벡터 DB에 저장
    4. 검색
    유사 문서 검색
    5. 생성
    LLM으로 답변 생성
    # Python + LangChain RAG 간략 예시 from langchain_community.vectorstores import Chroma from langchain_openai import OpenAIEmbeddings, ChatOpenAI from langchain.chains import RetrievalQA # 벡터 DB 준비 (문서 임베딩 후 저장) vectordb = Chroma.from_documents(docs, OpenAIEmbeddings()) # RAG 체인 구성 qa_chain = RetrievalQA.from_chain_type( llm=ChatOpenAI(model="gpt-4o-mini"), retriever=vectordb.as_retriever() ) # 질의 answer = qa_chain.invoke("How do I install this project?")
    31
    Track C Sprint 가이드
    AI 네이티브 프로젝트 개발 — MCP 서버, Agent, AI 앱
    🌐 MCP 서버 개발
  • 한국 서비스 API 래핑 MCP 서버
  • 공공데이터포털, 카카오, 네이버
  • Python FastMCP로 빠른 개발
  • KiMCP에 새 서비스 추가 PR
  • 🤖 AI Agent 개발
  • CrewAI로 멀티 에이전트 시스템
  • LangGraph로 상태 기반 워크플로우
  • 논문 리서치 자동화 에이전트
  • GitHub 이슈 분석 에이전트
  • 🎨 AI 데모 앱
  • Streamlit/Gradio 기반 데모
  • 한국어 모델 비교 벤치마크
  • PDF Q&A 챗봇 데모
  • Hugging Face Spaces 배포
  • 32
    Track C MCP 서버 개발 실습
    Python FastMCP로 30분 안에 MCP 서버 만들기
    # pip install fastmcp from fastmcp import FastMCP mcp = FastMCP("korean-weather") @mcp.tool() def get_weather(city: str) -> str: """한국 도시의 날씨 정보를 반환합니다""" # 실제로는 기상청 API 호출 weather_data = { "서울": "맑음, 12°C", "부산": "구름, 15°C", "대전": "맑음, 11°C" } return weather_data.get(city, f"{city}: 정보 없음") @mcp.resource("config://app") def get_config() -> str: return "Korean Weather MCP Server v1.0" # 실행: python server.py
    💡 학습 리소스: Microsoft mcp-for-beginners · MCP 공식 문서
    33
    Track C Streamlit 데모 앱
    AI 데모를 빠르게 만들어 오픈소스로 공개하기
    💻 Streamlit 장점
  • Python만으로 웹 앱 개발
  • 커스터마이징 유연성 높음
  • 데이터 대시보드, 분석 앱에 최적
  • Streamlit Cloud 무료 배포
  • 🎨 Gradio 장점
  • ML 모델 데모에 특화
  • 이미지, 음성 등 비텍스트 입력 지원
  • 챗봇 UI 내장 지원
  • Hugging Face Spaces 연동
  • # Streamlit PDF Q&A 챗봇 (간략) import streamlit as st from langchain_openai import ChatOpenAI st.title("📚 PDF Q&A 챗봇") uploaded = st.file_uploader("PDF 업로드", type="pdf") question = st.text_input("질문을 입력하세요") if st.button("답변 생성"): # RAG 파이프라인으로 답변 생성 st.write(answer)
    34
    Track C LangChainTool 추가
    LangChain에 새로운 Tool/Loader를 추가하는 PR 가이드
    1. Fork
    LangChain 저장소 Fork
    2. Tool 구현
    BaseTool 상속, _run() 구현
    3. 테스트
    단위 테스트 & 통합 테스트
    4. 문서
    독스트링 & 예제 코드
    5. PR
    기여 가이드 준수
    💡 PR 추천 유형
  • 한국 서비스 API Tool (네이버, 카카오)
  • 한국어 문서 로더 (HWP, PDF)
  • 한국어 텍스트 분할기 개선
  • 기존 Tool 버그 수정 / 성능 개선
  • 📚 참고 사항
  • LangChain은 커뮤니티 패키지 환영
  • langchain-community 패키지에 추가
  • CONTRIBUTING.md 반드시 숙지
  • 기존 Tool 코드 패턴 참고
  • 35
    🌐 오픈소스 커뮤니케이션 에티켓
    글로벌 개발자 커뮤니티에서의 소통 규칙
    ✅ DO
  • 이슈/PR 전에 기존 토론 검색
  • 명확하고 구체적으로 설명
  • 재현 가능한 정보 제공
  • 감사와 존중의 표현 사용
  • 피드백에 신속하게 응답
  • CONTRIBUTING.md 가이드 준수
  • ❌ DON'T
  • "아직 안 됐나요?"라고 재촉하기
  • 이슈에 "+1"만 코멘트하기
  • 여러 이슈를 하나에 섞기
  • 요청 없이 @멘션하기
  • 부정적/공격적 어조 사용
  • AI 생성 코드를 무검증 제출
  • 36
    🇬🇧 영어 커뮤니케이션
    영어가 부담스러워도 괜찮아요 — 패턴을 익히면 됩니다!
    상황영어 표현 예시
    이슈 보고"I found a bug in X. Steps to reproduce: 1... 2... 3... Expected: ... Actual: ..."
    PR 설명"This PR fixes #123 by adding a null check in decode(). I also added tests for this case."
    피드백 수용"Great point! I've updated the code accordingly. Please take another look."
    질문하기"I have a question about the expected behavior here. Should X return null or throw?"
    도움 요청"I'm working on #123 but I'm stuck on X. Could you point me in the right direction?"
    감사 표현"Thank you for the detailed review! I really appreciate your feedback."
    💡 Claude Code에 "이 PR 설명을 영어로 작성해줘"라고 요청하면 자연스러운 영어 PR을 생성해줍니다!
    37
    💬 이슈 코멘트 모범 사례
    작업 시작 전, 중, 후에 이슈에 업데이트하세요
    🏁 작업 시작 시
  • "I'd like to work on this issue. I'm planning to [접근 방식]. Could you assign it to me?"
  • 이미 누가 작업 중인지 확인!
  • 🔧 진행 중
  • "Update: I've identified the root cause. It's in [파일명]. Working on a fix."
  • 막힌 점이 있으면 공유
  • ✅ PR 생성 시
  • "I've opened a PR #456 to fix this. Please take a look when you have a chance."
  • 이슈와 PR을 연결
  • 38
    ⚠ 흔한 PR 실수
    첫 PR에서 피해야 할 실수들 — 미리 알아두세요!
    실수해결책
    main 브랜치에서 직접 작업기능 브랜치를 만들어서 작업하세요
    너무 큰 PR (파일 20개 이상 변경)작은 단위로 나눠서 여러 개의 PR을 만드세요
    관련 없는 변경 포함 (포맷팅 + 버그 수정)하나의 PR = 하나의 목적
    테스트 없이 코드 변경변경에 맞는 테스트를 반드시 추가하세요
    PR 설명이 비어 있거나 불충분What/Why/How 구조로 설명하세요
    CONTRIBUTING.md를 읽지 않음PR 전에 반드시 기여 가이드를 숙지하세요
    AI 생성 코드를 검증 없이 제출AI 코드를 이해하고 검증한 후 제출
    39
    📝 이번 주 목표 & 과제
    Week 3 필수 & 선택 과제
    🎯 필수 과제
  • 첫 번째 PR 생성 (Draft PR도 OK!)
  • 팀원 PR 1개 이상 코드 리뷰 참여
  • 이슈 코멘트에 진행 상황 업데이트
  • ⭐ 선택 과제
  • 두 번째 이슈 탐색 시작
  • 팀원 PR 추가 리뷰
  • AI 도구 활용 경험 Discord에 공유
  • 🏆 배지 획득 조건
  • 🎯 First PR — 첫 PR 제출
  • 🔎 Code Reviewer — 3개 이상 리뷰
  • 🎉 Merged! — PR merge 성공
  • 📅 제출 마감: 다음 멘토링 세션 전까지 · GitHub PR 링크를 Discord 팀 채널에 공유
    40
    Q&A & 참고 자료
    궁금한 점이 있으면 언제든 질문하세요!
    📖 학습 자료
  • Conventional Commits (conventionalcommits.org)
  • GitHub Flow Guide
  • First Contributions (firstcontributions.github.io)
  • 오픈소스 기여 가이드 (opensource.guide)
  • 🛠 AI 코드 리뷰 도구
  • CodeRabbit (오픈소스 무료)
  • PR-Agent by Qodo (오픈소스)
  • Claude Code PR 자동 생성
  • GitHub Copilot Agent Mode
  • 💬 소통 채널
  • Discord 팀 채널
  • 멘토 Office Hour
  • #code-review 채널
  • #ai-tools-tips 채널
  • 🚀 다음 주 예고: Week 4 — 기여 심화 Sprint · 피드백 반영과 심화 기여!