1️⃣ 프로젝트 개요 문서 (Overview)
목적
-
이 프로젝트가 무엇을 해결하는지
-
어디에 쓰이고
-
어떤 제약이 있는지
포함 내용
-
프로젝트 목적 / 비즈니스 배경
-
주요 기능 요약
-
현재 버전 및 릴리즈 이력
-
전체 아키텍처 다이어그램
-
외부 의존성 (라이브러리, SDK, OS 등)
-
지원 플랫폼 (Windows/Linux/macOS 등)
-
주요 제약 사항 (성능, ABI, 메모리, 실시간성 등)
이 문서는 “전체 그림을 이해”시키는 역할입니다.
2️⃣ 빌드 & 개발 환경 문서
목적
포함 내용
이 문서가 없으면 인수인계는 실패합니다.
3️⃣ 디렉터리 구조 설명서
목적
예:
/core → 핵심 엔진
/ui → UI 레이어
/platform → OS별 구현
/instrument → 내부 디버깅/로깅
/tests → 테스트 코드
각 디렉터리의 역할을 간결히 설명합니다.
4️⃣ 아키텍처 설계 문서 (중요)
포함 내용
-
전체 레이어 구조
-
주요 클래스 관계도 (UML 권장)
-
핵심 설계 패턴
-
Observer
-
Command
-
Factory
-
PImpl
-
객체 생명주기
-
메모리 소유권 구조
-
스레딩 모델
-
이벤트 흐름
특히 C++은 소유권과 lifetime 설명이 없으면 유지보수자가 고통받습니다.
5️⃣ 핵심 모듈 상세 설명
모든 파일 설명은 필요 없습니다.
대신 아래를 설명하세요:
-
시스템의 중심 클래스
-
변경 위험이 큰 부분
-
이해하기 어려운 알고리즘
-
역사적 이유로 남아있는 코드
예:
-
MatrixTransform.cpp의 역할
-
Editor Read-only 모드 구조
-
UTF 변환 처리 구조
-
플랫폼별 분기 로직
6️⃣ API / 인터페이스 문서
외부에서 사용하는 API가 있다면:
-
공개 헤더 설명
-
파라미터 의미
-
예외 처리 정책
-
Thread-safe 여부
-
ABI 주의사항
가능하면 Doxygen 스타일로 자동 생성 가능하게.
7️⃣ 테스트 전략 문서
-
유닛 테스트 범위
-
통합 테스트 방법
-
수동 테스트 시나리오
-
성능 테스트 방법
-
재현 방법이 필요한 주요 버그 목록
8️⃣ 운영/배포 문서
-
배포 프로세스
-
버전 관리 전략
-
브랜치 전략 (Git flow 등)
-
릴리즈 체크리스트
-
핫픽스 절차
9️⃣ 리스크 & 기술 부채 문서 (매우 중요)
이게 인수인계에서 가장 가치 있습니다.
-
리팩토링 필요 영역
-
위험한 코드
-
구조적 한계
-
언젠가 폭발할 수 있는 부분
-
제거 예정 레거시
이 문서가 없으면 다음 사람이 지뢰를 밟습니다.
🔟 FAQ / 트러블슈팅
-
빌드 실패 원인 Top 5
-
특정 환경에서만 깨지는 문제
-
플랫폼별 주의점
-
자주 하는 질문
🔥 최소 세트 (시간 없을 때)
시간이 부족하다면 반드시 작성해야 할 5개:
-
프로젝트 개요
-
빌드 가이드
-
아키텍처 설명
-
핵심 모듈 설명
-
기술 부채 목록
📌 잘 작성하는 팁
-
“왜 이렇게 설계했는가”를 반드시 적기
-
코드 복붙하지 말 것
-
다이어그램 적극 활용
-
새로운 사람이 3일 안에 이해 가능해야 함
-
PDF 한 파일보다 Wiki 구조가 좋음
}}}
----
CategoryDocument