✨✨✨➤
AI Open Source Impact
Week 4 : 기여 심화 Sprint
" 피드백을 반영하고, 더 깊이 파고들자 "
✍ 트랙A: AI 도구 고급⚙ 트랙B: AI SDK 심화🚀 트랙C: MCP/Agent 고급
02
이번 주 학습 목표
PR 피드백 반영 + 기술 심화 + 협업 체화
🎯 목표 1
메인테이너의 피드백을 분석하고 PR을 개선한다리뷰 코멘트에 적절히 대응하는 법을 익힌다🛠 목표 2
더 심화된 기여(기능 개선, 성능 최적화)에 도전한다트랙별 고급 기술을 학습한다🤝 목표 3
오픈소스 커뮤니티에서의 협업 패턴을 체화한다Peer Review를 통해 팀 역량을 높인다
03
멘토링 세션 구성
화상회의 1시간 집중 세션
| 시간 | 내용 | 세부사항 |
|---|
| 20분 | PR 리뷰 & 피드백 | 메인테이너 피드백 분석, 수정 전략, Force Push vs 추가 커밋 |
| 20분 | 기술 심화 | 트랙별 심화 주제 (A/B/C) |
| 20분 | 병목 해결 | 팀별 이슈 트러블슈팅, Q&A |
04
메인테이너 피드백 분석법
PR 리뷰를 받았을 때 어떻게 대응할 것인가?
🔎 피드백 유형 분류
Must Fix : 버그, 보안 이슈, 로직 오류 - 반드시 수정Should Fix : 코드 스타일, 네이밍, 컨벤션 - 프로젝트 규칙 따르기Nice to Have : 성능 개선, 리팩토링 제안 - 논의 후 결정Question : 설계 의도 질문 - 정중하게 설명💡 대응 원칙
모든 코멘트에 반드시 답변하기동의하면 수정, 다른 의견이 있으면 근거와 함께 논의"Thank you for the review" 등 감사 표현 잊지 않기수정 후 "Done" 또는 "Fixed in [commit hash]"로 표시
05
피드백 대응 실전 예시
실제 PR 리뷰 대화에서 배우기
✅ Good Response
Reviewer: "이 함수에 에러 핸들링이 필요합니다."
You: "좋은 지적 감사합니다! try-catch를 추가하고
커스텀 에러 클래스도 만들었습니다.
Fixed in abc1234. PTAL (Please Take Another Look)"
❌ Bad Response
Reviewer: "이 함수에 에러 핸들링이 필요합니다."
You: "그건 이 PR 범위 밖입니다."
(근거 없이 거부하면 신뢰를 잃음)
Better: "현재 PR 범위를 넘어서는 것 같아
별도 이슈로 분리하겠습니다. #456 생성했습니다."
06
AI로 피드백 분석하기
🤖 Claude Code 활용법
# PR 리뷰 피드백 분석 요청
> "이 PR의 리뷰 코멘트를 분석하고
수정 전략을 제안해줘"
# 특정 피드백에 대한 수정안
> "이 리뷰어의 제안대로 코드를
수정해줘: [리뷰 내용 붙여넣기]"
# 수정 후 응답 메시지 작성
> "이 변경사항을 설명하는
리뷰 응답을 영어로 작성해줘"
💡 핵심 포인트
AI가 제안한 수정을 반드시 이해한 후 적용리뷰어의 의도를 AI에게 설명하면 더 정확한 수정안AI로 영어 응답 작성 시 자연스러운 톤 유지CI/CD 실패 시 AI로 로그 분석 가능
07
Force Push vs 추가 커밋
PR 수정 시 어떤 전략을 선택할 것인가?
| 구분 | Force Push (rebase + push -f) | 추가 커밋 (fixup commit) |
|---|
| 방식 | 기존 커밋을 수정/합치고 강제 푸시 | 새 커밋으로 수정사항 추가 |
| 장점 | 깔끔한 커밋 히스토리, 하나의 논리적 커밋 | 리뷰 히스토리 보존, 변경 추적 용이 |
| 단점 | 리뷰 히스토리 손실, 다른 사람 작업 덮어쓸 위험 | 커밋 히스토리가 지저분해질 수 있음 |
| 사용 시점 | 리뷰 전 정리, 소규모 PR, 요청 시 | 리뷰 중 수정, 대규모 변경, 협업 브랜치 |
⚠ 프로젝트마다 선호 방식이 다름 - CONTRIBUTING.md 확인 필수!
08
Force Push 실습
Interactive Rebase로 커밋 정리하기
# 1. 최근 N개 커밋을 interactive rebase
git rebase -i HEAD~3
# 2. 에디터에서 pick/squash/fixup 선택
pick abc1234 feat: add search API
squash def5678 fix: typo in search
fixup ghi9012 style: formatting
# 3. 커밋 메시지 수정 후 저장
# 4. Force push (--force-with-lease 권장!)
git push --force-with-lease origin my-feature
# --force-with-lease: 원격에 다른 사람이 push한 게 있으면 거부 (안전)
# --force: 무조건 덮어쓰기 (위험!)
TIP: 항상 --force-with-lease를 사용하여 다른 사람의 작업을 덮어쓰지 않도록!
09
Git Rebase vs Merge
브랜치 통합 전략의 이해
🔀 Merge
두 브랜치의 히스토리를 보존Merge commit이 생성됨팀 협업 시 안전한 선택감사 추적이 필요한 프로젝트에 적합git merge main🔁 Rebase
커밋을 다른 베이스 위에 재적용선형적이고 깔끔한 히스토리개인 브랜치에서만 사용 권장공유 브랜치에서 사용 금지!git rebase main
Golden Rule: 공개(public) 브랜치는 절대 rebase 하지 않는다!
10
Rebase 워크플로우
PR 제출 전 브랜치를 최신 상태로 유지하기
# 1. main 브랜치 최신화
git checkout main && git pull origin main
# 2. feature 브랜치로 이동 후 rebase
git checkout my-feature
git rebase main
# 3. 충돌 발생 시: 파일 수정 후
git add [충돌 해결 파일]
git rebase --continue
# 4. 되돌리기: git rebase --abort
# 5. rebase 완료 후 force push
git push --force-with-lease origin my-feature
💡 대부분의 오픈소스 프로젝트는 PR 제출 전 rebase를 권장합니다
11
Squash and Merge 전략
GitHub PR 머지 옵션의 이해
| 머지 방식 | 특징 | 사용 시점 |
|---|
| Create a merge commit | 모든 커밋 히스토리 유지 + merge commit | 대규모 기능, 히스토리 보존 |
| Squash and merge | 모든 커밋을 하나로 압축 후 merge | 소규모 PR, 깔끔한 main |
| Rebase and merge | 커밋을 main 위에 선형으로 재적용 | 선형 히스토리, 의미 있는 커밋 |
💡 실전 팁
대부분의 오픈소스는 Squash and merge를 기본 사용Squash 시 최종 커밋 메시지를 잘 작성하는 것이 중요프로젝트 CONTRIBUTING.md에서 선호 전략 확인
12
트랙 A 심화: AI 도구 고급
✍ Claude Code 고급
멀티파일 편집CLAUDE.md 활용/create-pr 자동화Claude Cowork 에이전트🤖 Copilot Agent 모드
이슈 자동 할당자율적 PR 생성MCP 프로토콜 지원코드 리뷰 피드백 응답@Files, @Code 심볼멀티파일 리팩토링전체 레포 컨텍스트다양한 AI 모델 선택
13
여러 파일에 걸친 변경을 한 번에 처리
📄 활용 시나리오
API 엔드포인트 추가: 라우트 + 컨트롤러 + 테스트 + 타입리팩토링: 함수 추출 후 여러 파일에서 import 수정버그 수정: 원인 파일 + 테스트 파일 동시 수정문서 업데이트: 코드 변경과 함께 README 자동 수정💻 실습 명령어
# 멀티파일 편집 요청
> "이 함수를 별도 모듈로 추출하고
기존 import를 모두 업데이트해줘"
# CLAUDE.md에 프로젝트 컨벤션 기록
> /init
# 변경 사항 확인 후 커밋
> "변경 사항을 리뷰하고 커밋해줘"
14
AI 기반 대규모 코드 리팩토링
실제 기업 사례에서 배우는 AI 리팩토링 전략
🏢 Qonto 사례
aider(오픈소스 CLI)로 대규모 마이그레이션엔지니어당 생산성 20배(2,000%) 향상~50 LoC/일 ➤ 1,000+ LoC/일💚 OpenObserve 사례
8개 Claude Code 에이전트 활용700+ 테스트 커버리지플레이키 테스트 85% 감소🛠 주요 도구
Codemod 2.0 - AI + 결정론적 엔진OpenRewrite - 자동 레시피 기반Moderne - 대규모 현대화
15
AI 리팩토링 실전 가이드
단계별 접근법으로 안전하게 리팩토링
⚠ 주의사항
AI 리팩토링 결과를 반드시 검증 - 테스트 통과 확인한 번에 너무 큰 범위를 변경하지 않기 - 작은 PR로 분리리팩토링과 기능 변경을 별도 커밋으로 분리
16
트랙 B 심화: AI SDK & 통합 패턴
⚙ Vercel AI SDK
스트리밍 구현AI GatewayAgent 추상화💬 프롬프트
시스템 프롬프트Few-shot 학습구조화된 출력
17
AI SDK 6 - 실시간 텍스트 스트리밍의 핵심
⚙ 서버 사이드
// app/api/chat/route.ts
import { openai } from '@ai-sdk/openai';
import { streamText } from 'ai';
export async function POST(req: Request) {
const { messages } = await req.json();
const result = streamText({
model: openai('gpt-4o'),
messages,
});
return result.toDataStreamResponse();
}
🎨 클라이언트 사이드
// components/Chat.tsx
'use client';
import { useChat } from '@ai-sdk/react';
export default function Chat() {
const { messages, input,
handleInputChange, handleSubmit
} = useChat();
return (
<form onSubmit={handleSubmit}>
{messages.map(m =>
<p key={m.id}>{m.content}</p>
)}
<input value={input}
onChange={handleInputChange} />
</form>
);
}
18
AI SDK 6 신기능
Agent 추상화, 도구 실행, AI Gateway
🤖 Agent 추상화
프롬프트와 API를 자동 연결하는 Agent 객체도구 호출 + 사용자 승인 (needsApproval)Memory Tool로 대화 간 정보 유지🔍 Provider Tools
웹 검색 도구코드 실행 (샌드박스)Tool Search (Regex/BM25)메모리 관리 도구🌐 AI Gateway
18+ 모델 프로바이더 지원중앙화된 모델 접근예산 통제 및 모니터링React/Vue/Svelte/Angular
19
LangChain Expression Language로 체인 구성하기
🔗 LCEL 기본 구조
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
prompt = ChatPromptTemplate.from_template(
"다음 주제를 요약해줘: {topic}"
)
model = ChatOpenAI(model="gpt-4o")
parser = StrOutputParser()
# LCEL 체인: prompt | model | parser
chain = prompt | model | parser
result = chain.invoke({"topic": "MCP 프로토콜"})
# 스트리밍
for chunk in chain.stream({"topic": "RAG"}):
print(chunk, end="")
💡 LCEL 핵심 특징
| 연산자로 직관적 체인 구성모든 컴포넌트가 Runnable 인터페이스자동 스트리밍, 배치, 비동기 지원LangSmith 트레이싱 자동 통합
20
그래프 기반 상태 관리 에이전트 워크플로우
📈 핵심 개념
StateGraph - 상태를 가진 그래프 정의Node - 각 단계의 로직 (함수)Edge - 노드 간 전이 규칙Conditional Edge - 조건부 분기Durable State - 실행 상태 자동 영속화Human-in-the-Loop - 사람 승인 후 재개🛠 실전 활용 패턴
ReAct Agent - 추론 + 행동 반복Plan & Execute - 계획 후 단계별 실행Multi-Agent - 여러 에이전트 협업Checkpointing - 중단점 복구LangSmith 비용 추적 (2025.12 추가)
21
벡터 DB 통합 패턴
| 데이터베이스 | Stars | 특징 | 적합한 용도 |
|---|
| pgvector | 15K+ | PostgreSQL 확장, SQL과 통합 | 기존 PostgreSQL 사용 프로젝트 |
| Chroma | 6K+ | 개발자 친화적, 빠른 시작 | 프로토타이핑, 소규모 앱 |
| Milvus | 35K+ | 대규모 분산 처리, 고성능 | 산업용, 10억 규모 벡터 |
| Qdrant | 9K+ | Rust 기반, 고성능 필터링 | 성능 중심 프로덕션 |
2026년 베스트 프랙티스: 하이브리드 검색 (BM25 키워드 + 벡터 유사도)
22
PostgreSQL에서 벡터 검색 구현하기
-- 1. pgvector 확장 활성화
CREATE EXTENSION vector;
-- 2. 임베딩 컬럼 테이블 생성
CREATE TABLE documents (
id SERIAL PRIMARY KEY,
content TEXT,
embedding VECTOR(1536) -- OpenAI 임베딩 차원
);
-- 3. 유사도 검색 (코사인 거리)
SELECT content, 1 - (embedding <=> '[0.1, 0.2, ...]') AS similarity
FROM documents ORDER BY embedding <=> '[0.1, 0.2, ...]' LIMIT 5;
-- 4. HNSW 인덱스 생성
CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);
-- 5. 하이브리드 검색 (키워드 + 벡터)
SELECT content FROM documents
WHERE content ILIKE '%검색어%'
ORDER BY embedding <=> '[...]' LIMIT 10;
23
Python에서 가장 빠르게 시작하는 벡터 DB
💻 기본 사용법
import chromadb
client = chromadb.Client()
collection = client.create_collection("docs")
# 문서 추가 (임베딩 자동 생성)
collection.add(
documents=["MCP는 LLM 통합 프로토콜",
"RAG는 검색 증강 생성"],
ids=["doc1", "doc2"]
)
# 시맨틱 검색
results = collection.query(
query_texts=["AI 프로토콜"], n_results=2
)
from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings
vectorstore = Chroma.from_documents(
documents=docs,
embedding=OpenAIEmbeddings()
)
retriever = vectorstore.as_retriever(
search_kwargs={"k": 3}
)
# RAG 체인에 연결
chain = retriever | prompt | llm
24
프롬프트 엔지니어링 기법
AI 기능의 품질을 결정하는 핵심 스킬
🎯 기본 기법
시스템 프롬프트: 역할과 제약 설정Few-shot: 예시로 패턴 학습Chain of Thought: 단계별 추론 유도🛠 고급 기법
구조화된 출력: JSON 스키마 강제도구 호출: 함수 실행 지시프롬프트 캐싱: 비용 90% 절감⚠ 최적화 팁
정적 콘텐츠는 프롬프트 앞부분에 배치간단한 작업은 저가 모델max_tokens로 응답 길이 제한
25
프롬프트 실전 예시
오픈소스 AI 기능에 사용하는 프롬프트 패턴
# 시스템 프롬프트 예시: 코드 리뷰 봇
system_prompt = """
당신은 시니어 코드 리뷰어입니다.
1. 보안 취약점을 최우선으로 체크
2. 성능 이슈를 지적
3. 코드 스타일 가이드 준수 여부 확인
4. 건설적이고 구체적인 피드백 제공
5. 응답은 JSON: {"issues": [...], "score": 0-10}
"""
# Few-shot 예시: 커밋 메시지 생성
few_shot = """
예시 1: diff: + def validate_email(email): ...
커밋: feat(auth): add email validation utility
예시 2: diff: - timeout = 30 / + timeout = 60
커밋: fix(api): increase request timeout to 60s
이제 다음 diff에 대한 커밋 메시지를 작성하세요:
{diff}
"""
26
MCP 고급 활용, Agentic RAG, 멀티 에이전트
🔗 MCP 고급
Streamable HTTP 전송Tasks 프리미티브 (비동기)OAuth 2.1 인증Tool Composition📚 Agentic RAG
GraphRAG (지식 그래프)적응형 검색 전략불확실성 정량화자동 검증/합성
27
2025.11 스펙 업데이트 핵심 기능
🔃 Streamable HTTP
기존 SSE 방식을 대체하는 새로운 전송양방향 통신 지원Chunked Transfer Encoding단일 HTTP 연결로 메시지 전달대규모 배포에 적합한 확장성📋 Tasks 프리미티브
비동기 장시간 작업 지원서버가 Task를 생성하고 핸들 반환진행 상황 업데이트 발행결과 전달 및 상태 추적
MCP SDK 다운로드 9,700만 회/월 | 활성 서버 10,000+ | AAIF 이관 완료
28
MCP 인증 & Tool Composition
보안과 도구 조합의 고급 패턴
🔒 OAuth 2.1 인증
MCP 서버를 OAuth Resource Server로 분류Protected Resource Metadata 디스커버리OpenID Connect 인가 서버 해석Resource Indicators로 악의적 서버 방지🔧 Tool Composition
여러 MCP 서버의 도구를 조합서버 간 파이프라인 구성Structured Tool Output (2025.06)MCP Registry(2,000+ 항목)에서 도구 탐색
29
FastMCP로 고급 기능 구현하기
from fastmcp import FastMCP
import httpx
mcp = FastMCP("advanced-server")
@mcp.resource("config://settings")
def get_settings() -> str:
return '{"theme": "dark", "language": "ko"}'
@mcp.tool()
async def search_api(query: str, limit: int = 5) -> str:
"""API에서 검색 결과를 반환합니다"""
async with httpx.AsyncClient() as client:
resp = await client.get(
f"https://api.example.com/search?q={query}&limit={limit}"
)
return resp.text
@mcp.prompt()
def analyze_data(data_type: str) -> str:
return f"{data_type} 데이터를 분석하고 인사이트를 제공해주세요"
# 주의: STDIO 서버에서 console.log() 대신 console.error() 사용!
30
Agentic RAG & GraphRAG
차세대 검색 증강 생성의 핵심 패턴
📚 GraphRAG
지식 그래프 + 벡터 검색 결합검색 정밀도 99% 달성주요 구현: Microsoft GraphRAG, LightRAG🤖 Agentic RAG
자율 에이전트가 동적 검색 전략 선택검색 ➤ 검증 ➤ 합성 루프 반복불확실성 정량화로 답변 품질 보장
31
GraphRAG 구현 패턴
지식 그래프 기반 RAG 파이프라인
📈 구현 단계
1단계: 문서에서 엔티티 & 관계 추출 (LLM 활용)2단계: 지식 그래프 구성 (Neo4j, NetworkX)3단계: 커뮤니티 탐지 & 요약 생성4단계: 쿼리 시 그래프 + 벡터 검색 결합5단계: 컨텍스트 조합 후 LLM 응답 생성🛠 주요 프레임워크
| 프레임워크 | 특징 |
|---|
| Microsoft GraphRAG | 공식 구현, 대규모 |
| LightRAG | 경량, 빠른 시작 |
| Nano-GraphRAG | 미니멀, 학습용 |
| RAGFlow | RAG+Agent 통합 |
32
역할 기반 AI 에이전트 협업 프레임워크
🤖 CrewAI 핵심
Agent - 역할, 목표, 배경을 가진 자율 에이전트Task - 에이전트에게 할당된 구체적 작업Crew - 에이전트 팀 + 작업 순서 정의Flow - 이벤트 드리븐 프로덕션 워크플로우v1.9+ | 43,700+ Stars | 100K+ 인증 개발자
💻 코드 예시
from crewai import Agent, Task, Crew
researcher = Agent(
role="리서처",
goal="주제에 대한 정보 수집",
backstory="숙련된 연구 전문가"
)
writer = Agent(
role="작성자",
goal="리서치 결과를 보고서로 작성",
backstory="기술 문서 전문가"
)
crew = Crew(
agents=[researcher, writer],
tasks=[Task(description="MCP 조사",
agent=researcher),
Task(description="보고서 작성",
agent=writer)]
)
result = crew.kickoff()
33
그래프 기반 에이전트 오케스트레이션
📈 LangGraph vs CrewAI
| 구분 | LangGraph | CrewAI |
|---|
| 접근 | 그래프 기반 상태 관리 | 역할 기반 협업 |
| 유연성 | 매우 높음 (저수준) | 높음 (고수준) |
| 학습곡선 | 가파름 | 완만함 |
| 적합 | 복잡한 워크플로우 | 팀 협업 시뮬레이션 |
💡 선택 가이드
LangGraph: 세밀한 제어, 복잡한 분기, 프로덕션CrewAI: 빠른 프로토타이핑, 역할 기반, 직관적 APIAutoGen: 연구 목적, 비동기 이벤트 드리븐2025 트렌드: 프레임워크 기반 엔지니어링으로 전환
34
Peer Review 효과적으로 하기
코드 리뷰의 기술 - 주는 것과 받는 것
✅ 리뷰어로서
먼저 PR 설명과 관련 이슈를 읽기큰 그림 파악 후 세부 리뷰"왜?"를 질문하되 비난이 아닌 호기심으로구체적인 대안을 코드와 함께 제시잘한 부분도 언급: "Nice approach!"💬 리뷰 받는 입장
모든 피드백을 감사히 받아들이기방어적으로 반응하지 않기동의하면 수정, 다르면 근거와 함께 토론수정 완료 후 "Resolved" 표시하기큰 변경은 별도 이슈/PR로 분리 제안
35
코드 리뷰 체크리스트
팀 내 코드 리뷰 시 확인 항목
🔎 기능 & 로직
- 요구사항을 올바르게 구현?
- 엣지 케이스를 처리?
- 에러 핸들링이 적절?
- 비즈니스 로직이 맞는가?
🔐 보안 & 성능
- 입력 검증이 되어 있는가?
- API 키가 노출되지 않는가?
- 불필요한 API 호출은 없는가?
- N+1 쿼리 문제는 없는가?
📝 코드 품질
- 네이밍이 명확한가?
- 테스트가 포함되어 있는가?
- 프로젝트 컨벤션을 따르는가?
- 불필요한 코드는 없는가?
36
AI 코드 리뷰 도구 활용
AI로 코드 리뷰 품질 높이기
| 도구 | 유형 | 특징 | 비용 |
|---|
| CodeRabbit | 상용/OSS 무료 | 즉각 피드백, 오픈소스 무료 | OSS 무료 |
| PR-Agent | 오픈소스 | Original OSS PR Reviewer | 무료 |
| Kodus | 오픈소스 | 시니어 리뷰어처럼 작동 | 무료 |
| Graphite | 상용 | 실시간 피드백, 96% 긍정 | 유료 |
💡 활용 팁
AI 리뷰는 보조 수단 - 사람의 리뷰를 대체하지 않음AI가 잘하는 것: 보안 취약점, 코드 스타일, 성능 패턴, 일관성 체크
37
Sprint 활동 안내
자기주도 학습 2시간 - 심화 기여에 집중
✍ 트랙 A
기존 PR 피드백 반영Claude Code 멀티파일 편집 실습AI 기반 테스트 코드 자동 생성두 번째 기여 이슈 선정 ⚙ 트랙 B
AI SDK 스트리밍 기능 구현벡터 DB 통합 PR 작성프롬프트 최적화 실험LCEL 파이프라인 구축
38
오픈소스 협업 패턴 체화
커뮤니티에서 신뢰를 쌓는 법
🤝 협업 Best Practices
이슈에 "I'd like to work on this" 먼저 코멘트작업 중 진행 상황을 주기적으로 업데이트Draft PR로 일찍 피드백 받기다른 사람의 PR에 리뷰 참여하기영어 커뮤니케이션 - 정중하고 간결하게📈 기여자 성장 로드맵
First Timer ➤ 문서, 오타, 작은 버그 수정Contributor ➤ 기능 추가, 테스트 보강Regular ➤ PR 리뷰, 이슈 트리아지Committer ➤ 직접 머지 권한Maintainer ➤ 프로젝트 거버넌스 참여
39
이번 주 목표 & 과제
Week 4 마무리 체크리스트
🎯 주간 목표
- 첫 번째 PR 피드백 반영 완료 (Merge 목표)
- 두 번째 기여 이슈 선정 및 작업 시작
- 팀원과 최소 2회 이상 코드 리뷰 교환
- 트랙별 심화 기술 1가지 이상 실습
📝 과제 안내
필수: 첫 번째 PR 피드백 반영 및 업데이트필수: 두 번째 기여 이슈 선정 및 분석필수: 팀원 PR 코드 리뷰 2회 이상선택: 트랙별 심화 내용 실습 후 팀 공유
다음 주 (W5): 최종 Sprint & 데모 준비 - PR 마무리 + 발표 자료 준비
40
Week 4 핵심 요약
오늘 배운 것을 정리합니다
💬 PR 피드백
피드백 분류 & 대응Force Push vs 추가 커밋Rebase vs Merge🚀 트랙 C
MCP Streaming/TasksAgentic RAG멀티 에이전트
Remember: "피드백은 선물이다" - 메인테이너의 리뷰는 성장의 기회!
41
✨✨
Q&A / 참고 자료
질문과 유용한 리소스
🛠 AI 코딩 도구
Claude Code: docs.anthropic.comGitHub Copilot: github.com/features/copilotCursor: cursor.comAider: aider.chatCodeRabbit: coderabbit.ai (OSS 무료)PR-Agent: github.com/qodo-ai/pr-agent
🚀 "피드백을 반영하고, 더 깊이 파고들자!" 🚀