docs: Git 브랜치 및 커밋 메시지 작성 가이드 추가

This commit is contained in:
2025-07-14 17:09:01 +09:00
parent 79fe2476a2
commit 041771c6d6
15 changed files with 1124 additions and 0 deletions

65
guide-readme/test-poc.md Normal file
View File

@ -0,0 +1,65 @@
# `tst-*`, `poc-*` (테스트/PoC) Repository README 작성 가이드
`tst-*` (test) 또는 `poc-*` (Proof of Concept) 접두사를 사용하는 저장소는 특정 기술, 아키텍처, 또는 가설의 실현 가능성을 검증하기 위한 공간입니다. README의 핵심 목표는 테스트의 목적, 방법, 그리고 결과를 명확하게 문서화하여 다른 팀원이나 이해관계자가 결론을 빠르게 이해하고 의사결정에 활용할 수 있도록 돕는 것입니다.
---
### 1. PoC 개요 (Proof of Concept Overview)
- **검증 목표 (Objective)**: 이 PoC를 통해 무엇을 검증하고 확인하려 하는지 한두 문장으로 명확히 기술합니다.
- 예시: "기존 REST API를 gRPC로 전환했을 때, 응답 시간(latency)이 50% 이상 개선되는지 검증한다."
- **가설 (Hypothesis)**: PoC를 통해 증명하고자 하는 가설을 구체적으로 서술합니다.
- 예시: "동일한 데이터 조회 요청에 대해 gRPC는 JSON 기반 REST API보다 적은 페이로드 크기 덕분에 더 빠를 것이다."
- **결론 요약 (Executive Summary)**: 테스트 결과 도출된 최종 결론을 서두에 요약하여 바쁜 동료들이 핵심만 빠르게 파악할 수 있도록 합니다.
- 예시: "결론: gRPC 도입 시 평균 응답 시간이 62% 개선되었으며, CPU 사용량은 유사한 수준을 유지했다. 프로덕션 도입을 긍정적으로 검토할 것을 제안한다."
### 2. 테스트 환경 (Test Environment)
- **목적**: 테스트가 수행된 환경을 정확히 명시하여 결과의 신뢰성을 확보하고, 다른 사람이 동일한 조건에서 재현할 수 있도록 합니다.
- **포함 내용**:
- **하드웨어 스펙**: CPU, 메모리, 네트워크 등 테스트에 사용된 인프라 사양
- **소프트웨어 버전**: 사용된 언어, 라이브러리, 프레임워크, 데이터베이스 등의 정확한 버전
- **부하 테스트 도구**: `k6`, `JMeter`, `Artillery` 등 사용한 도구와 설정값
- **예시 (표 활용)**:
| 항목 | 사양 / 버전 |
|---------------|-----------------------------------|
| **서버** | AWS EC2 `t3.micro` |
| **언어** | `Node.js` v18.12.1 |
| **프레임워크**| `Express` v4.18.2, `grpc-js` v1.8.0 |
| **부하 도구** | `k6` v0.42.0 |
### 3. 테스트 시나리오 및 실행 방법 (Test Scenarios & How to Run)
- **목적**: 어떤 항목들을 테스트했는지 목록화하고, 각 테스트를 실행하는 방법을 안내합니다.
- **테스트 항목 목록 (Test Cases)**:
- 1. 사용자 1,000명 정보 조회 (REST vs gRPC)
- 2. 단일 사용자 정보 생성 (REST vs gRPC)
- 3. 동시 사용자 100명 부하 테스트
- **실행 명령어**:
```bash
# 1. 서버 실행 (두 개의 터미널에서 각각 실행)
npm run start:rest_api
npm run start:grpc_server
# 2. 부하 테스트 실행
# k6 스크립트를 사용하여 각 엔드포인트를 테스트합니다.
k6 run tests/performance/get_users.js
```
### 4. 벤치마크 결과 (Benchmark Results)
- **목적**: 테스트 결과를 정량적으로 제시하여 가설 검증의 근거를 명확히 합니다.
- **결과 제시 방법**:
- **표(Table)**: 비교 항목(예: REST, gRPC)과 측정 지표(예: TPS, 평균 응답 시간, P99 응답 시간)를 표로 정리하여 가독성을 높입니다.
- **그래프/차트**: 시간 경과에 따른 성능 변화, 부하량에 따른 응답 시간 분포 등 시각화 자료를 첨부하여 결과를 직관적으로 보여줍니다.
- **예시**:
**사용자 1,000명 조회 API 성능 비교**
| API 유형 | 평균 응답 시간 (ms) | P99 응답 시간 (ms) | 초당 요청 수 (RPS) |
|----------|-----------------------|----------------------|--------------------|
| **REST** | 128 | 210 | 78 |
| **gRPC** | 49 | 85 | 204 |
![Response Time Comparison Chart](results/images/latency_comparison.png)
### 5. 분석 및 결론 (Analysis and Conclusion)
- **결과 분석**: 벤치마크 결과를 바탕으로 가설이 맞았는지, 예상치 못한 결과가 있었는지 등을 분석하고 해석합니다.
- **최종 결론**: PoC를 통해 얻은 결론과 후속 조치(예: 기술 도입, 추가 테스트 필요, 기각)를 명확히 제안합니다.