✨
✨
✨
✨
➤
AI Open Source Impact
Week 2 : AI 프로젝트 구조 분석
" 거대 AI 코드베이스를 장악하라 "
✍ 트랙A: AI로 기여
⚙ 트랙B: AI 기능 추가
🚀 트랙C: AI 네이티브
02
✨
이번 주 학습 목표
Week 2에서 달성해야 할 3가지 핵심 목표
🔍 목표 1
AI 오픈소스 프로젝트의 아키텍처와 코드 구조를 이해한다
전통 OSS와 AI OSS의 구조적 차이점 파악
모델 메타데이터, 추론 파이프라인 이해
📝 목표 3
기여할 이슈를 선정하고 구체적인 기여 계획을 수립한다
Good First Issue 분석법 습득
PR 초안 및 기여 계획서 작성
03
멘토링 세션 일정
화상회의 1시간 · 3개 세션
①
AI 프로젝트 구조 해부
20분 · config.json, tokenizer.json, 추론 파이프라인, 모듈 의존성
③
이슈 선정 워크숍
20분 · Good First Issue 분석, 기여 계획서 작성
📚 자기주도 학습 (2h)
코드 추적 실습 (파이프라인 다이어그램) · 이슈 분석 (이슈 분석 보고서) · 기여 계획서 작성 (PR 초안)
04
✨
전통 OSS vs AI OSS 프로젝트 구조
근본적으로 다른 프로젝트 구조를 이해하자
| 구분 | 📖 전통 OSS | 🤖 AI OSS |
| 핵심 자산 | 소스 코드 | 코드 + 모델 웨이트 + 데이터셋 |
| 디렉터리 | src/, lib/, tests/, docs/ | models/, data/, configs/, scripts/, notebooks/ |
| 설정 파일 | package.json, Makefile | config.json, tokenizer.json, training_args.json |
| 빌드 | npm build, make | pip install + 모델 다운로드 (수 GB~수백 GB) |
| 테스트 | 단위/통합 테스트 | 벤치마크 + 인간 평가 + 정확도 측정 |
| 라이선스 | MIT, Apache 2.0 | 코드 라이선스 + 모델 라이선스 별도 |
05
AI 프로젝트 일반 구조
my-ai-project/
├── README.md # 프로젝트 소개 & 퀵스타트
├── CONTRIBUTING.md # 기여 가이드라인
├── setup.py / pyproject.toml # 패키지 설정
├── src/ 또는 패키지명/
│ ├── models/ # 모델 정의 (아키텍처)
│ ├── data/ # 데이터 로딩 & 전처리
│ ├── training/ # 학습 루프 & 최적화
│ ├── inference/ # 추론 파이프라인
│ ├── configs/ # 하이퍼파라미터 설정
│ └── utils/ # 유틸리티 함수
├── tests/ # 테스트 코드
├── scripts/ # 학습/평가 스크립트
├── notebooks/ # Jupyter 노트북 예제
├── docs/ # 문서
└── .github/workflows/ # CI/CD (GitHub Actions)
06
✨
핵심 파일 해부: config.json
모델의 DNA — 아키텍처와 하이퍼파라미터 정의
{
"model_type": "llama",
"hidden_size": 4096,
"intermediate_size": 11008,
"num_hidden_layers": 32,
"num_attention_heads": 32,
"vocab_size": 32000,
"max_position_embeddings": 4096,
"torch_dtype": "float16",
"architectures": ["LlamaForCausalLM"]
}
🔎 핵심 필드 설명
model_type: 모델 패밀리 (llama, gpt2, bert...)
hidden_size: 히든 레이어 차원 (모델 크기 결정)
num_hidden_layers: 트랜스포머 레이어 수
num_attention_heads: 어텐션 헤드 수
vocab_size: 토크나이저 어휘 크기
torch_dtype: 모델 정밀도 (fp16, bf16...)
07
핵심 파일 해부: tokenizer.json
텍스트를 토큰 ID로 변환하는 규칙의 집합
✏ 토크나이저 구성요소
vocabulary: 토큰-ID 매핑 사전
merges: BPE 병합 규칙
special_tokens: [BOS], [EOS], [PAD] 등
normalizer: 텍스트 정규화 규칙
pre_tokenizer: 사전 분할 규칙
📈 토큰화 알고리즘
BPE: GPT 계열 (바이트 페어 인코딩)
WordPiece: BERT 계열
SentencePiece: LLaMA, T5
Tiktoken: OpenAI GPT-4
💡 토큰화 예시
입력: "안녕하세요"
토큰: ["안", "녕", "하세요"]
ID: [15023, 8842, 31095]
한국어는 토큰 효율이 낮아 더 많은 토큰 소모
08
핵심 파일 해부: Model Weights
학습된 파라미터 — 모델의 지식 그 자체
💾 웨이트 파일 형식
PyTorch: pytorch_model.bin / model.safetensors
TensorFlow: tf_model.h5 / saved_model/
GGUF: llama.cpp용 양자화 포맷
ONNX: 크로스 프레임워크 호환
safetensors가 보안/속도 면에서 권장 (HuggingFace 표준)
📊 모델 크기와 양자화
7B 모델 (FP16): ~14 GB
7B 모델 (Q4_K_M): ~4.1 GB
70B 모델 (FP16): ~140 GB
70B 모델 (Q4_K_M): ~40 GB
양자화로 크기 3~4배 축소, 정확도 손실 최소
09
✨
Inference Pipeline 전체 흐름
입력부터 출력까지 — 데이터가 흐르는 경로를 추적하자
➤
② 토큰화
Tokenizer
[15023, 8842, ...]
➤
③ 임베딩
Token Embedding
+ Position Encoding
➤
④ 트랜스포머
Self-Attention
+ FFN × N layers
➤
⑤ 출력
Logits → Sampling
→ 텍스트 디코딩
💡 이 흐름을 코드에서 직접 추적하는 것이 이번 주 핵심 과제입니다
10
파이프라인 상세: 토큰화 & 임베딩
텍스트 → 숫자 → 벡터로의 변환
✏ 토큰화 과정
1. 텍스트 정규화 (소문자 변환, 특수문자 처리)
2. Pre-tokenization (공백/구두점 기준 분할)
3. BPE/WordPiece로 서브워드 분할
4. Special token 추가 ([BOS], [EOS])
5. Token → ID 매핑
6. Attention Mask 생성
📈 임베딩 레이어
Token Embedding: ID → 고차원 벡터
Positional Encoding: 위치 정보 추가
RoPE (Rotary Position Embedding): LLaMA 계열
ALiBi: 선형 바이어스 기반 위치 인코딩
결과: [batch, seq_len, hidden_size] 텐서
# HuggingFace Transformers 예시
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-3B")
inputs = tokenizer("안녕하세요", return_tensors="pt")
# inputs: {'input_ids': tensor([[1, 15023, 8842, ...]]), 'attention_mask': tensor([[1, 1, 1, ...]])}
11
파이프라인 상세: 트랜스포머 블록
Self-Attention + Feed-Forward Network의 반복
🔭 Self-Attention
Query, Key, Value 행렬 계산
Attention Score = Q × K^T / √d
Softmax → 가중치 적용
Multi-Head: 여러 관점에서 동시 어텐션
KV Cache: 추론 시 이전 결과 재사용
🔄 Feed-Forward
2개의 선형 변환 + 활성화 함수
SwiGLU 활성화 (LLaMA)
GELU 활성화 (GPT)
Intermediate Size ≈ 2.7× Hidden Size
대부분의 파라미터가 여기에 집중
🛠 정규화 & 연결
Layer Normalization (Pre-LN이 표준)
RMSNorm: LLaMA의 효율적 정규화
Residual Connection: 그래디언트 흐름 보장
Dropout: 학습 시 과적합 방지
12
파이프라인 상세: 출력 & 디코딩
Logits에서 텍스트로 — 샘플링 전략
🎲 샘플링 전략
Greedy: 항상 최고 확률 토큰 선택 (빠르지만 반복적)
Top-K: 상위 K개 토큰 중 랜덤 선택
Top-P (Nucleus): 누적 확률 P까지의 토큰 중 선택
Temperature: 확률 분포 조절 (높을수록 다양)
Beam Search: 여러 후보 경로를 동시 탐색
🔄 디코딩 흐름
1. 마지막 히든 스테이트 → LM Head (선형 변환)
2. Logits: [vocab_size] 크기 벡터
3. Temperature 적용: logits / T
4. Top-K/Top-P 필터링
5. Softmax → 확률 분포
6. 샘플링 → 토큰 ID → 텍스트
7. EOS 토큰까지 반복 (Autoregressive)
13
모듈 의존성 분석 방법
코드베이스의 연결 관계를 파악하는 기법
🔎 정적 분석
import 구문 추적
클래스 상속 관계 파악
함수 호출 그래프 생성
도구: pydeps, pyreverse, madge
🤖 AI 도구 활용
Claude Code: "이 모듈의 의존성을 분석해줘"
Cursor: @Codebase로 전체 구조 질문
"이 함수를 호출하는 곳을 모두 찾아줘"
AI가 의존성 다이어그램 생성
📈 핵심 지표
모듈 결합도 (Coupling)
응집도 (Cohesion)
순환 의존성 (Circular deps)
진입점 (Entry points) 파악
14
의존성 분석 실습
transformers/
├── models/ # 200+ 모델 아키텍처 (각각 독립적 모듈)
│ ├── llama/ # LLaMA 모델
│ │ ├── modeling_llama.py # 모델 구현
│ │ ├── configuration_llama.py # config 클래스
│ │ └── tokenization_llama.py # 토크나이저
│ ├── bert/ # BERT 모델
│ └── gpt2/ # GPT-2 모델
├── pipelines/ # 고수준 추론 API (pipeline("text-generation"))
├── generation/ # 텍스트 생성 로직 (sampling, beam search)
├── tokenization_utils.py # 토크나이저 기반 클래스
├── modeling_utils.py # 모델 기반 클래스 (PreTrainedModel)
└── configuration_utils.py # 설정 기반 클래스 (PretrainedConfig)
의존성 흐름: pipeline → model → config + tokenizer → generation
💡 각 모델은 독립적이지만, 공통 기반 클래스(PreTrainedModel)를 상속받아 일관된 API 제공
15
✨
프로젝트 셋업 & 전체 구조 파악
① 프로젝트 셋업
git clone <repo-url>
cd <repo>
claude (Claude Code 시작)
/init (CLAUDE.md 자동 생성)
프로젝트 개요, 기술 스택, 폴더 구조, 컨벤션이 기록됨
② 전체 구조 질문
"이 프로젝트의 전체 아키텍처를 설명해줘"
"주요 모듈과 의존성을 파악해줘"
"이 프로젝트의 진입점(entry point)은 어디야?"
"CONTRIBUTING.md를 읽고 기여 가이드라인을 요약해줘"
⚠ 아직 코드 수정은 하지 마세요! 먼저 프로젝트 구조를 완전히 이해한 후에 코드를 수정하세요.
16
이슈 관련 코드 탐색 & 함수 추적
🔎 코드 탐색 질문 예시
"이 함수의 역할은 무엇이야?"
"이 모듈의 데이터 흐름은 어떻게 돼?"
"이 클래스를 사용하는 곳을 모두 찾아줘"
"이 에러가 발생하는 원인을 분석해줘"
"이 테스트가 무엇을 검증하는지 설명해줘"
"이슈 #123과 관련된 코드를 찾아줘"
🛠 실용 팁
에이전틱 검색으로 관련 파일 자동 탐색
멀티파일 컨텍스트로 전체 흐름 파악
git log와 연동하여 변경 이력 추적
테스트 코드를 먼저 읽어 기대 동작 이해
CLAUDE.md에 발견한 내용을 계속 기록
17
End-to-End: 이슈 분석부터 수정 방향 도출까지
# Claude Code 실전 예시
> "GitHub 이슈 #456을 분석해줘. 관련 코드를 찾고 원인을 파악해줘."
Claude Code가 자동으로:
1. 이슈 내용 파악
2. 관련 파일 검색 (grep, file search)
3. 코드 흐름 추적
4. 원인 분석 결과 보고
5. 수정 방향 제안
18
✨
IDE 내에서의 AI 기반 코드 분석
Agent Mode: 자율적 코드 작성 & PR 생성
코드 설명: 함수 위에 커서 → "Explain this"
테스트 자동 생성: "/tests" 명령
MCP 지원으로 외부 도구 연동
VS Code 내 자연스러운 통합
@Codebase: 전체 레포 대상 질문
@Files, @Folders: 특정 파일/폴더 참조
멀티파일 편집: 여러 파일 동시 수정
GPT-4o, Claude Sonnet, Gemini 등 모델 선택
큰 컨텍스트 윈도우로 복잡한 분석에 유리
19
AI 코딩 도구 비교
상황에 맞는 도구를 선택하자
| 도구 | 타입 | 강점 | 코드 분석 활용 |
| Claude Code | 터미널 에이전트 | 전체 코드베이스 탐색, Git 통합 | 프로젝트 구조 파악, 이슈 분석 |
| Copilot | IDE 확장 | 실시간 자동완성, Agent Mode | 함수 설명, 테스트 생성 |
| Cursor | AI IDE | 멀티파일 편집, 큰 컨텍스트 | @Codebase 질문, 리팩토링 |
| Aider | CLI 도구 | Git-aware 편집, 오픈소스 | 대규모 리팩토링 |
💡 AI 도구는 "이해를 돕는 보조 수단" — AI 제안을 이해하고 검증한 후 활용!
20
✨
Good First Issue 찾기
첫 기여를 위한 이슈 탐색 전략
🌐 탐색 플랫폼
goodfirstissue.dev
forgoodfirstissue.github.com
firstcontributions.github.io
GitHub 라벨: "good first issue"
GitHub 라벨: "help wanted"
🔍 검색 방법
GitHub: label:"good first issue" is:open
프로젝트별 CONTRIBUTING.md 확인
Discord/Slack 채널에서 멘토에게 추천 요청
최근 닫힌 이슈를 참고하여 패턴 파악
⚠ 주의사항
이미 누군가 작업 중인지 확인
오래된 이슈는 여전히 유효한지 확인
작업 전 이슈에 코멘트 남기기
멘토와 상의 후 착수
21
Good First Issue 분석법
이슈를 읽고 기여 가능성을 판단하는 방법
📝 이슈 분석 체크리스트
☑ 이슈 설명이 명확한가?
☑ 재현 방법이 제공되는가?
☑ 관련 코드 영역이 명시되어 있는가?
☑ 기대 동작이 정의되어 있는가?
☑ 테스트 케이스가 제시되어 있는가?
☑ 해결 방향 힌트가 있는가?
☑ 최근 활동이 있는 이슈인가?
🤖 AI로 이슈 분석하기
Claude Code: "이 이슈의 원인과 해결 방향을 분석해줘"
관련 코드 영역 자동 탐색
유사한 해결 사례 참조
난이도 평가 및 작업량 추정
기여 계획 초안 자동 생성
22
AI로 이슈 분석 실습
실제 이슈를 Claude Code로 분석하는 과정
# Step 1: 이슈 내용 확인
> "GitHub 이슈 #789의 내용을 요약해줘"
# Step 2: 관련 코드 탐색
> "이 이슈와 관련된 코드를 찾아줘. 아직 수정은 하지 마"
# Step 3: 원인 분석
> "이 버그의 근본 원인이 무엇인지 분석해줘"
# Step 4: 해결 방향 도출
> "이 문제를 해결하기 위한 방법을 3가지 제안해줘"
# Step 5: 난이도 평가
> "이 이슈를 해결하는 데 예상되는 작업량과 난이도를 평가해줘"
💡 항상 AI의 분석 결과를 직접 코드를 읽어서 검증하세요
23
이슈 선정 기준
6주 프로그램에 적합한 이슈를 고르는 전략
✅ 좋은 이슈의 조건
범위가 명확하고 1~2주 내 해결 가능
관련 코드 영역이 명시되어 있음
테스트로 완료를 확인할 수 있음
프로젝트 메인테이너가 활발히 활동 중
비슷한 이슈가 이전에 해결된 사례가 있음
❌ 피해야 할 이슈
범위가 모호하거나 너무 넓음
6개월 이상 방치된 이슈
아키텍처 변경이 필요한 대규모 리팩토링
메인테이너 응답이 없는 프로젝트
이미 다른 사람이 작업 중인 이슈
24
이슈 선정 전략
트랙별 추천 이슈 유형
| 트랙 | 추천 이슈 유형 | 난이도 | 예상 기간 |
| 트랙 A | 버그 수정, 문서 번역, 테스트 추가, 타이핑 힌트 추가 | ★★☆ | 1~2주 |
| 트랙 B | AI 기능 추가 (검색, 요약, 챗봇), API 통합 | ★★★ | 2~3주 |
| 트랙 C | MCP 서버 개발, AI 데모 앱, 새로운 Tool 추가 | ★★☆ | 1~3주 |
💡 첫 기여는 작은 것부터! 문서 수정이나 타이핑 힌트 추가도 훌륭한 기여입니다.
25
✨
기여 계획서 작성법
PR을 제출하기 전에 계획을 세우자
📝 기여 계획서 구조
1. 이슈 요약: 무엇을 해결하는가?
2. 원인 분석: 왜 이 문제가 발생하는가?
3. 해결 방향: 어떻게 해결할 것인가?
4. 변경 파일: 어떤 파일을 수정하는가?
5. 테스트 계획: 어떻게 검증하는가?
6. 예상 일정: 언제까지 완료하는가?
✅ 좋은 계획서 예시
이슈: LangChain의 한국어 문서 번역 (#1234)
범위: docs/ko/ 디렉터리에 Getting Started 번역
방법: AI 번역 후 직접 검수, 용어집 준수
파일: docs/ko/getting_started.md (신규)
검증: 빌드 성공 + 멘토 리뷰
일정: 3일 내 초안 → 5일 내 최종
26
기여 계획서 템플릿
복사해서 바로 사용할 수 있는 템플릿
## 기여 계획서
### 대상 이슈
- 프로젝트: [프로젝트명]
- 이슈 번호: #[번호]
- 이슈 제목: [제목]
### 문제 분석
- 현재 상황: [현재 동작 설명]
- 기대 동작: [올바른 동작 설명]
- 원인: [AI 도구 + 직접 분석으로 파악한 원인]
### 해결 방안
- 접근 방식: [구체적인 해결 방법]
- 변경 예정 파일:
- [ ] file1.py - [변경 내용]
- [ ] file2.py - [변경 내용]
- [ ] test_file.py - [테스트 추가]
### 테스트 계획
- [ ] 기존 테스트 통과 확인
- [ ] 새로운 테스트 케이스 추가
- [ ] CI/CD 파이프라인 통과
### 일정
- 코드 작성: [날짜]
- 테스트 완료: [날짜]
- PR 제출: [날짜]
27
AI로 기여 계획서 작성
Claude Code를 활용한 계획서 초안 생성
# Claude Code로 기여 계획서 초안 작성
> "이슈 #789에 대한 기여 계획서를 작성해줘.
다음을 포함해줘:
1. 문제 분석 (원인과 영향)
2. 해결 방안 (구체적 코드 변경 계획)
3. 변경 예정 파일 목록
4. 테스트 계획
코드는 아직 수정하지 마."
⚠ AI 계획서의 주의점
AI가 생성한 계획서를 반드시 직접 검토
관련 코드를 직접 읽어서 AI 분석 검증
실현 가능성 판단은 사람의 몫
멘토와 함께 리뷰 후 최종 확정
💡 계획서 활용법
팀 위키에 공유하여 피드백 받기
멘토 리뷰 후 이슈에 코멘트로 공유
PR 설명문의 기초 자료로 활용
기여 과정 문서화의 시작점
28
트랙 A 분석 가이드
AI로 기존 오픈소스에 기여 — 코드 분석 중심
✍ 핵심 활동
Claude Code로 타겟 프로젝트 전체 구조 파악
"이 프로젝트의 아키텍처를 설명해줘"
Good First Issue를 AI로 분석
"이 이슈의 원인과 해결 방향을 분석해줘"
AI로 테스트 코드 커버리지 분석
29
트랙 A AI 기여 워크플로우
AI 도구 활용 기여의 5단계
① 구조 파악
Claude Code /init
아키텍처 이해
➤
➤
③ 코드 수정
Copilot/Cursor
코드 작성
➤
➤
⑤ PR 제출
Claude Code
/create-pr
🏆 성과 사례: Qonto는 aider로 엔지니어당 생산성 20배(2,000%) 향상
OpenObserve는 Claude Code 에이전트로 700+ 테스트, 플레이키 테스트 85% 감소
30
트랙 B 분석 가이드
기존 오픈소스에 AI 기능 추가 — 확장 포인트 분석
🔎 확장 포인트 분석
플러그인 시스템 파악
미들웨어 체인 구조 분석
API 엔드포인트 확장 방법
이벤트 훅/콜백 메커니즘
설정 파일 기반 확장
🤖 AI SDK 통합 설계
Vercel AI SDK: 스트리밍 UI
LangChain: RAG 파이프라인
OpenAI API: 범용 LLM 호출
API 키 관리 (.env 활용)
비용 관리 (rate limiting)
💾 벡터 DB 연동
pgvector: PostgreSQL 확장
Chroma: 개발자 친화적
시맨틱 검색 기능 추가
하이브리드 검색 (BM25 + 벡터)
임베딩 모델 선택
31
트랙 B 추천 프로젝트
AI 기능 추가 아이디어와 타겟 프로젝트
| 프로젝트 | AI 기능 아이디어 | 기술 스택 | 난이도 |
| Supabase | 벡터 검색(pgvector) 확장, AI 쿼리 빌더 | PostgreSQL, pgvector | ★★★ |
| Docusaurus | AI 문서 검색/Q&A 챗봇 | React, Vercel AI SDK | ★★☆ |
| Excalidraw | AI 다이어그램 자동 생성 | React, LLM API | ★★★ |
| Mermaid | 자연어 → 다이어그램 생성 | JavaScript, LLM API | ★★☆ |
32
트랙 C 분석 가이드
AI 네이티브 프로젝트 — MCP, Agent, RAG
🔗 MCP 서버 개발
MCP: LLM과 외부 도구 연결 표준
월간 SDK 다운로드 9,700만 회
Python FastMCP로 빠른 개발
한국 서비스 연동 기회
KiMCP: 네이버/카카오/TMAP
📈 난이도 가이드
간단 (1~2일): 단일 API 래핑 MCP
중간 (1~2주): 여러 API 통합
복잡 (2~4주): 인증 + 비동기 + 상태
초보자는 간단한 MCP부터 시작 추천
33
MCP 서버 개발 예시
Python FastMCP로 빠르게 시작하기
# FastMCP로 한국 서비스 MCP 서버 개발
from fastmcp import FastMCP
mcp = FastMCP("korean-service")
@mcp.tool()
def search_naver(query: str) -> str:
"""네이버 검색 API로 웹 검색을 수행합니다"""
import requests
headers = {
"X-Naver-Client-Id": os.environ["NAVER_CLIENT_ID"],
"X-Naver-Client-Secret": os.environ["NAVER_CLIENT_SECRET"]
}
resp = requests.get(
"https://openapi.naver.com/v1/search/webkr.json",
params={"query": query, "display": 5},
headers=headers
)
return resp.json()
@mcp.tool()
def get_weather(city: str) -> str:
"""도시의 날씨 정보를 반환합니다"""
# 기상청 API 연동
return f"{city}의 날씨: 맑음, 5°C"
34
AI 데모 앱 개발 프레임워크 비교
커스터마이징, 복잡한 UI/UX에 강점
데이터 대시보드, 분석 앱에 적합
풍부한 커뮤니티 컴포넌트
Streamlit Cloud로 무료 배포
프로젝트: 학칙 Q&A 챗봇
ML 모델 공유, 비텍스트 입력에 강점
Hugging Face Spaces 호스팅
챗봇 UI 내장 지원
이미지/음성/비디오 입출력
프로젝트: 한국어 모델 벤치마크 데모
35
✨
📁 프로젝트 구조
200+ 모델 아키텍처
각 모델: modeling, config, tokenization 3파일
공통 기반: PreTrainedModel
pipeline()으로 고수준 API
generation/으로 텍스트 생성
✅ 기여 기회
한국어 문서 번역
예제 노트북 최신화
테스트 커버리지 향상
모델 카드 작성
Good First Issue 활발
🛠 분석 포인트
AutoModel 자동 로딩 메커니즘
pipeline() 실행 흐름 추적
generate() 디코딩 전략
PEFT/LoRA 통합 방식
36
GitHub Stars 100K+ · LLM 앱 개발 표준 프레임워크
📁 프로젝트 구조
langchain-core: 핵심 추상화
langchain-community: 통합 모듈
langchain: 체인/에이전트 조합
LangGraph: 상태 기반 워크플로우
LCEL: 선언적 체인 구성
✅ 기여 기회
새로운 Tool/Loader 추가
한국어 문서 번역
예제 코드 작성
버그 수정/테스트 추가
통합 모듈 품질 개선
🛠 분석 포인트
Runnable 인터페이스 이해
LCEL 파이프라인 실행 흐름
Tool calling 메커니즘
Agent 실행 루프 추적
37
GitHub Stars 119K+ · 비주얼 LLM 앱 빌더
📁 프로젝트 구조
TypeScript + Python 하이브리드
프론트엔드: Next.js 기반 비주얼 에디터
백엔드: Flask API + Celery 워커
RAG 파이프라인 내장
플러그인 시스템으로 확장 가능
✅ 기여 기회
한국어 번역 (i18n 파일 수정)
새로운 플러그인 개발
문서 개선 및 튜토리얼 작성
UI/UX 버그 수정
Good First Issue 라벨 활발
38
10,000+ 활성 서버 · 월간 SDK 다운로드 9,700만 회
| MCP 서버 | 기능 | 기여 기회 |
| KiMCP | 네이버/카카오/TMAP 통합 | 새로운 한국 서비스 추가 |
| GitHub MCP | 리포, 이슈, PR 관리 | 기능 확장, 버그 수정 |
| PostgreSQL MCP | 자연어 DB 쿼리 | 한국어 쿼리 지원 |
| 신규 개발 | 공공데이터, 한국은행 API | 새 MCP 서버 제작 |
💡 MCP 서버 개발은 초보자도 1~2일이면 시작할 수 있어 첫 기여에 최적!
39
✨
이번 주 과제 안내
Week 2 필수 과제 3가지
📝 과제 1
이슈 1개 선정 및 기여 계획서 제출
AI 도구로 이슈 분석
기여 계획서 템플릿 작성
멘토 리뷰 후 확정
📚 과제 2
프로젝트 아키텍처 분석 문서 작성
팀 위키에 공유
주요 모듈, 의존성, 진입점 정리
디렉터리 구조 다이어그램 포함
🤖 과제 3
타겟 이슈 관련 코드 영역을 AI 도구로 분석한 결과 공유
Claude Code 분석 로그 스크린샷
AI 분석 결과 + 직접 검증 비교
📅 제출 마감: 다음 멘토링 세션 전까지 · Discord 팀 채널에 공유
40
✨
✨
➤
Q&A & 참고 자료
궁금한 점이 있으면 언제든 질문하세요!
📖 학습 자료
goodfirstissue.dev
GitHub Skills (skills.github.com)
Hugging Face Course
MCP 공식 문서
Microsoft mcp-for-beginners
💬 소통 채널
Discord 팀 채널
멘토 Office Hour
#ai-tools-tips 채널
#code-review 채널
🚀 다음 주 예고: Week 3 — 첫 번째 기여 Sprint · 첫 PR의 감동!