project_portfolio_guide.md•17.4 kB
# SSAFY 프로젝트 포트폴리오 정보 수집 가이드라인
## MCP 에이전트 초기화 프로세스
### 1. 데이터 폴더 확인
```bash
if [ ! -d "project_data" ]; then
echo "프로젝트 데이터를 저장할 폴더가 없습니다."
echo "프로젝트 데이터 폴더를 생성하시겠습니까? (y/n)"
# 사용자 입력 대기
fi
```
### 2. 프로젝트 데이터 확인
```bash
if [ -d "project_data" ]; then
# 프로젝트 데이터 존재 여부 확인
if [ -z "$(ls -A project_data)" ]; then
echo "저장된 프로젝트가 없습니다."
echo "새 프로젝트를 추가하시겠습니까? (y/n)"
else
echo "저장된 프로젝트가 있습니다."
fi
fi
```
### 3. 기능 선택
프로젝트 데이터가 있는 경우에만 다음 기능들이 활성화됩니다:
1. 프로젝트 추가
- 새 프로젝트 정보 수집
- 기존 프로젝트 수정
- 프로젝트 삭제
2. 자기소개서 작성 (프로젝트 데이터 필요)
- 프로젝트 기반 자기소개서 작성
- 자기소개서 수정
- 자기소개서 삭제
3. 면접 준비 (프로젝트 데이터 필요)
- 프로젝트 기반 면접 질문 생성
- 면접 답변 연습
- 면접 피드백
4. 포트폴리오 작성 (프로젝트 데이터 필요)
- 프로젝트 기반 포트폴리오 작성
- 포트폴리오 수정
- 포트폴리오 삭제
## 프로젝트 정보 수집 프로세스
## 질문 방식 안내
본 가이드라인은 다음과 같은 원칙으로 진행됩니다:
1. 순차적 질문
- 한 번에 하나의 질문만 진행
- 사용자의 답변을 받은 후에만 다음 질문 진행
- 복수 선택이 가능한 경우에도 한 번에 하나의 선택만 요청
2. 구체적 답변 유도
- 각 질문에 대해 구체적인 예시나 설명을 포함
- "어떻게", "왜" 등의 질문을 통해 상세한 답변 유도
3. 역할 기반 분기
- 선택한 역할에 따라 관련된 질문으로 자연스럽게 전환
- 각 역할별 핵심 역량을 파악할 수 있는 질문 구성
4. 피드백 기반 진행
- 사용자의 답변을 바탕으로 추가 질문 구성
- 답변의 맥락을 고려한 자연스러운 대화 흐름 유지
## 프로젝트 정보 저장 프로시저
### 1. 저장 방식 선택
1. 단일 파일 방식
- 모든 정보를 하나의 MD 파일에 순차적으로 기록
- 장점: 전체 맥락 파악이 용이, 관리가 간단
- 단점: 파일이 길어질 수 있음
2. 분리 파일 통합 방식
- 인터뷰 중에는 각 섹션별로 분리된 파일에 기록
- 인터뷰 완료 후 하나의 통합 파일로 병합
- 장점: 섹션별 관리가 용이, 병렬 작업 가능
- 단점: 통합 과정에서 추가 작업 필요
### 2. 디렉토리 및 파일 초기화
1. 프로젝트 디렉토리 생성
```bash
mkdir -p project_portfolio/projects/{project_name}
```
2. 포트폴리오 파일 생성
```bash
touch project_portfolio/projects/{project_name}/portfolio.md
```
3. 초기 파일 내용 작성
```markdown
# {프로젝트명} 포트폴리오 정보
## 1. 기본 정보
- 프로젝트 유형: (선택된 유형)
- 세부 트랙: (선택된 트랙)
- 프로젝트 기간: (추후 입력)
- 팀 구성: (추후 입력)
## 2. 역할별 정보
(각 역할별 섹션 준비)
## 3. 기술적 상세 정보
(추후 입력)
## 4. KPT 회고
(추후 입력)
```
4. 진행 상태 파일 생성 (선택사항)
```bash
touch project_portfolio/projects/{project_name}/progress.md
```
```markdown
# 진행 상태
## 완료된 섹션
- [ ] 기본 정보
- [ ] 역할별 정보
- [ ] 기술적 상세 정보
- [ ] KPT 회고
## 다음 진행할 질문
(현재 진행 중인 질문)
```
### 3. 단일 파일 저장 형식
```markdown
# {프로젝트명} 포트폴리오 정보
## 1. 기본 정보
- 프로젝트 유형: {공통/특화/자율}
- 세부 트랙: {선택한 트랙}
- 프로젝트 기간: {시작일} ~ {종료일}
- 팀 구성: {팀원 수}명
## 2. 역할별 정보
### 2.1 {역할명}
#### Q1. {질문}
{답변}
#### Q2. {질문}
{답변}
### 2.2 {역할명}
...
## 3. 기술적 상세 정보
...
## 4. KPT 회고
...
```
### 4. 분리 파일 저장 형식
각 섹션별 파일은 다음 형식을 따릅니다:
```markdown
# {섹션 제목}
## 질문
{질문 내용}
## 답변
{사용자 답변}
## 추가 정보
- 수집 일시: {timestamp}
- 질문 컨텍스트: {이전 질문/답변 맥락}
```
### 5. 통합 프로세스
1. 인터뷰 완료 후 통합 작업
- 모든 분리 파일의 내용을 하나의 MD 파일로 병합
- 섹션 간 연결성 확보
- 중복 내용 제거
- 일관된 포맷팅 적용
2. 최종 검토
- 전체 내용의 일관성 확인
- 섹션 간 연결성 확인
- 포맷팅 통일성 확인
## 1. 자동 수집 정보 (GitHub 저장소)
### A. 기본 저장소 정보
- 저장소 URL
- 브랜치 구조
- 기여도 통계
- 사용된 프로그래밍 언어
### B. README.md 파일 분석
1. 서비스 개요
- 서비스 소개
- 기획 배경/문제 정의
- 서비스 목표/기대 효과
2. 프로젝트 상세
- 주요 기능 목록
- 기술 스택
- 시스템 아키텍처
3. 팀 정보
- 팀원 및 역할 분담
- 프로젝트 기간
4. 프로젝트 성과
- 수상 실적
- 주요 달성 목표
- 프로젝트 결과물
## 2. 사용자 입력 정보
### 1단계: 프로젝트 유형 선택
Q1. 프로젝트 유형을 선택해주세요:
1. 공통 프로젝트
2. 특화 프로젝트
3. 자율 프로젝트
[공통 프로젝트 선택 시]
Q2. 공통 프로젝트 트랙을 선택해주세요:
1. WebRTC
2. 웹디자인(SNS)
3. AIoT
4. 모바일
[특화 프로젝트 선택 시]
Q2. 특화 프로젝트 트랙을 선택해주세요:
1. 인공지능(영상)
2. 인공지능(음성)
3. 빅데이터(추천)
4. 빅데이터(분산)
5. 블록체인(P2P)
6. 블록체인(디지털 화폐)
7. 모빌리티(스마트홈)
8. 모빌리티(자율주행)
9. 메타버스(게임)
10. 핀테크
[자율 프로젝트 선택 시]
Q2. 자율 프로젝트 유형을 선택해주세요:
1. 자유주제
2. 오픈소스
3. 기업연계
### 1.5단계: GitHub 저장소 정보
Q3. 프로젝트의 GitHub 저장소 URL을 입력해주세요:
(예: https://github.com/username/repository)
GitHub 홈페이지: [GitHub.com](https://github.com)
Q4. GitHub 토큰 확인:
1. 기존 토큰 확인
- 프로젝트 루트 디렉토리에 '.env' 파일이 있는지 확인
- 파일이 있다면 토큰 유효성 검사 진행
- 파일이 없다면 새 토큰 생성 안내
2. 토큰 생성 방법 (필요한 경우):
- [GitHub.com](https://github.com) → Settings → Developer settings → Personal access tokens → Tokens (classic)
- 'Generate new token' 클릭
- Note: 'MCP Portfolio Access' 입력
- Expiration: 'No expiration' 선택
- Select scopes: 'repo' 체크
- 'Generate token' 클릭
- 생성된 토큰을 복사
3. 토큰 저장:
- 프로젝트 루트 디렉토리에 '.env' 파일 생성
- 아래 템플릿을 복사하여 사용하세요:
```
GITHUB_TOKEN=your_github_token_here
```
- 'your_github_token_here' 부분을 복사한 토큰으로 교체
- 파일 권한 설정: chmod 600 .env
기존 토큰이 있으신가요? (y/n)
### 1.6단계: 저장소 분석
토큰 설정이 완료되면, 저장소 분석을 시작합니다. 잠시만 기다려주세요.
분석 중인 정보:
- 저장소 기본 정보 (URL, 브랜치 구조, 기여도)
- 기술 스택 (언어, 프레임워크, 도구)
- 프로젝트 기능 및 도전 과제
- 팀 정보 및 프로젝트 기간
- 프로젝트 성과 및 결과물
분석이 완료되면 다음 단계로 진행하겠습니다.
### 2단계: 역할 및 담당 영역
[팀장/프로젝트 관리자 선택 시]
Q1. 프로젝트 관리 방법론을 선택해주세요:
1. 애자일/스크럼
2. 워터폴
3. 하이브리드
4. 기타 (직접 입력)
Q2. 선택하신 방법론을 바탕으로 프로젝트를 어떻게 진행하셨는지 설명해주세요.
예시:
- 스프린트/스크럼 회의 진행 방식
- 일정 관리 방법
- 팀원들과의 커뮤니케이션 방식
- 이해관계자와의 소통 방식
- 리스크 관리 방법
[프론트엔드 개발자 선택 시]
Q3. 프로젝트에서 본인의 역할을 선택해주세요 (복수 선택 가능):
1. 팀장/프로젝트 관리
2. 프론트엔드 개발
3. 백엔드 개발
4. 모바일 개발
5. AI/ML 엔지니어
6. 데이터 엔지니어
7. 임베디드 개발
8. UI/UX 디자인
9. DevOps/인프라 관리
10. 기타 (직접 입력)
[모바일 개발자 선택 시]
Q4-2. 구현한 주요 기능을 구체적으로 설명해주세요:
1. 사용자 인터페이스
- 어떤 컴포넌트를 어떻게 구현했는지
- 재사용 가능한 컴포넌트 설계 방법
- 반응형/적응형 구현 방식
- 애니메이션/인터랙션 구현 방법
2. 상태 관리
- 어떤 상태 관리 도구를 사용했는지
- 상태 구조 설계 방법
- 비동기 데이터 처리 방식
- 전역 상태와 지역 상태 구분 방법
3. API 연동
- API 호출 구조 설계
- 에러 처리 방식
- 로딩 상태 관리
- 캐싱 전략
[모바일 개발자 선택 시]
Q4-1. 담당한 주요 화면을 선택해주세요 (복수 선택 가능):
1. 메인 화면
2. 사용자 인증 화면
3. 데이터 목록/상세 화면
4. 설정 화면
5. 기타 (직접 입력)
Q4-2. 구현한 주요 기능을 구체적으로 설명해주세요:
1. UI/UX 구현
- 네이티브/크로스 플랫폼 선택 이유
- 화면 전환 및 애니메이션
- 사용자 제스처 처리
- 오프라인 지원
2. 상태 관리
- 상태 관리 도구 선택
- 로컬 데이터 저장
- 백그라운드 처리
- 메모리 관리
3. 네트워크 통신
- API 통신 구조
- 실시간 데이터 처리
- 푸시 알림
- 보안 처리
[AI/ML 엔지니어 선택 시]
Q4-1. 담당한 AI 모델 영역을 선택해주세요 (복수 선택 가능):
1. 이미지 처리/분류
2. 자연어 처리
3. 음성 처리
4. 추천 시스템
5. 예측 모델
6. 기타 (직접 입력)
Q4-2. 구현한 주요 기능을 구체적으로 설명해주세요:
1. 모델 개발
- 모델 아키텍처 선택 이유
- 하이퍼파라미터 튜닝 방법
- 학습 데이터 구성
- 평가 지표 선택
2. 데이터 처리
- 데이터 전처리 방법
- 데이터 증강 기법
- 특성 엔지니어링
- 데이터 품질 관리
3. 모델 최적화
- 모델 경량화 방법
- 추론 속도 개선
- 메모리 사용량 최적화
- 배포 환경 최적화
[데이터 엔지니어 선택 시]
Q4-1. 담당한 데이터 영역을 선택해주세요 (복수 선택 가능):
1. 데이터 수집/저장
2. 데이터 처리/분석
3. 데이터 시각화
4. 추천 시스템
5. 분산 처리
6. 기타 (직접 입력)
Q4-2. 구현한 주요 기능을 구체적으로 설명해주세요:
1. 데이터 파이프라인
- 데이터 수집 방법
- ETL 프로세스
- 데이터 저장 구조
- 실시간/배치 처리
2. 데이터 분석
- 분석 방법론
- 시각화 도구
- 인사이트 도출
- 성능 최적화
3. 시스템 구축
- 분산 시스템 설계
- 확장성 확보
- 모니터링
- 장애 대응
[임베디드 개발자 선택 시]
Q4-1. 담당한 하드웨어 영역을 선택해주세요 (복수 선택 가능):
1. 센서 제어
2. 모터 제어
3. 통신 모듈
4. 디스플레이
5. 기타 (직접 입력)
Q4-2. 구현한 주요 기능을 구체적으로 설명해주세요:
1. 하드웨어 제어
- 하드웨어 선택 이유
- 제어 방식
- 인터페이스 설계
- 성능 최적화
2. 펌웨어 개발
- RTOS 사용 여부
- 태스크 설계
- 메모리 관리
- 전력 관리
3. 통신 구현
- 통신 프로토콜
- 데이터 처리
- 에러 처리
- 보안 구현
### 3단계: QA 및 마무리
[프론트엔드 개발자 선택 시]
Q5. 테스트 및 품질 관리에서 수행한 작업을 선택해주세요 (복수 선택 가능):
1. 단위 테스트 작성
2. E2E 테스트 구현
3. 크로스 브라우저 테스트
4. 성능 프로파일링
5. 접근성(a11y) 테스트
6. 사용자 테스트 진행
7. 기타 (직접 입력)
Q6. 프로젝트 완료 후 개선한 부분을 선택해주세요 (복수 선택 가능):
1. 코드 리팩토링
2. 성능 최적화
3. 사용자 경험 개선
4. 문서화
5. 배포 프로세스 개선
6. 기타 (직접 입력)
[백엔드 개발자 선택 시]
Q5. 테스트 및 품질 관리에서 수행한 작업을 선택해주세요 (복수 선택 가능):
1. 단위 테스트 작성
2. 통합 테스트 구현
3. 부하 테스트
4. 보안 테스트
5. API 문서화
6. 모니터링 시스템 구축
7. 기타 (직접 입력)
Q6. 프로젝트 완료 후 개선한 부분을 선택해주세요 (복수 선택 가능):
1. 코드 리팩토링
2. 성능 최적화
3. 보안 강화
4. 확장성 개선
5. 문서화
6. 기타 (직접 입력)
[AI/ML 엔지니어 선택 시]
Q5. 테스트 및 품질 관리에서 수행한 작업을 선택해주세요 (복수 선택 가능):
1. 모델 검증
2. 데이터 품질 검증
3. 추론 성능 테스트
4. 엣지 케이스 테스트
5. 모델 설명 가능성 검증
6. 사용자 피드백 수집
7. 기타 (직접 입력)
Q6. 프로젝트 완료 후 개선한 부분을 선택해주세요 (복수 선택 가능):
1. 모델 최적화
2. 데이터 품질 개선
3. 추론 속도 개선
4. 모델 경량화
5. 문서화
6. 기타 (직접 입력)
### 4단계: 프로젝트 성장과 성과
[모든 역할 공통]
Q7. 프로젝트를 통해 가장 크게 성장한 부분을 선택해주세요 (복수 선택 가능):
1. 기술적 역량
- 새로운 프로그래밍 언어/프레임워크 습득
- 아키텍처 설계 능력 향상
- 문제 해결 능력 향상
- 코드 품질 개선 능력
2. 프로젝트 관리 역량
- 일정 관리 능력
- 리스크 관리 능력
- 팀 협업 능력
- 커뮤니케이션 능력
3. 도메인 지식
- 비즈니스 이해도 향상
- 사용자 요구사항 분석 능력
- 시장 트렌드 이해
Q8. 프로젝트의 주요 성과를 선택해주세요 (복수 선택 가능):
1. 기술적 성과
- 성능 개선 달성
- 기술적 문제 해결
- 혁신적인 기능 구현
- 코드 품질 향상
2. 비즈니스 성과
- 사용자 만족도 향상
- 서비스 안정성 확보
- 운영 효율성 개선
- 비용 절감
3. 팀 성과
- 프로젝트 완수
- 팀 협업 강화
- 지식 공유 문화 확립
- 멘토링/코칭
Q9. 프로젝트에서 가장 큰 도전과 극복 과정을 선택해주세요:
1. 기술적 도전
- 성능 이슈 해결
- 기술 스택 통합
- 보안 문제 해결
- 확장성 확보
2. 프로젝트 관리 도전
- 일정 관리
- 팀 커뮤니케이션
- 리스크 관리
- 리소스 관리
3. 비즈니스 도전
- 요구사항 변경 대응
- 사용자 피드백 반영
- 시장 변화 대응
- ROI 달성
### 5단계: KPT 회고
[모든 역할 공통]
Q10. 프로젝트에서 유지하고 싶은 부분(Keep)을 선택해주세요 (복수 선택 가능):
1. 기술적 측면
- 사용한 기술 스택
- 아키텍처 설계
- 개발 프로세스
- 코드 품질 관리 방법
2. 프로젝트 관리 측면
- 팀 협업 방식
- 커뮤니케이션 방법
- 일정 관리 방식
- 회의 진행 방식
3. 개인 성장 측면
- 학습한 기술/지식
- 습득한 경험
- 발전한 역량
- 네트워킹
Q11. 프로젝트에서 개선이 필요한 부분(Problem)을 선택해주세요 (복수 선택 가능):
1. 기술적 측면
- 아키텍처 설계
- 기술 스택 선택
- 코드 품질
- 성능 이슈
2. 프로젝트 관리 측면
- 일정 관리
- 팀 협업
- 커뮤니케이션
- 리스크 관리
3. 개인 성장 측면
- 기술 역량
- 소프트 스킬
- 시간 관리
- 스트레스 관리
Q12. 다음 프로젝트에서 시도하고 싶은 부분(Try)을 선택해주세요 (복수 선택 가능):
1. 기술적 측면
- 새로운 기술 스택
- 아키텍처 개선
- 개발 프로세스
- 테스트 방법론
2. 프로젝트 관리 측면
- 협업 도구
- 커뮤니케이션 방식
- 일정 관리 방법
- 문서화 방식
3. 개인 성장 측면
- 새로운 역할
- 리더십
- 멘토링
- 기술 학습
## 3. 추가 설명
각 질문에 대해 선택한 항목에 대한 구체적인 설명을 입력해주세요.
예시:
- 어떤 방식으로 구현했는지
- 어떤 문제를 어떻게 해결했는지
- 어떤 결과를 얻었는지
- 어떤 교훈을 얻었는지
이러한 상세 설명은 자기소개서, 면접 준비, 포트폴리오 작성 시 매우 유용하게 활용될 수 있습니다.