Skip to content

기술 문서 작성

들어가며

당신이 쓴 문서를 누가 읽고 있나요? 많은 개발자가 "코드만 작동하면 되고, 문서는 나중에"라고 생각합니다. 결과적으로: 신규 입사자가 프로젝트를 이해하지 못하고, API 연동은 모두 구두로 진행되며, 반년 후에는 자신도 왜 그렇게 설계했는지 잊어버립니다.

이 장에서는 기술 문서 작성의 핵심 방법을 습득하여, 문서가 실제로 읽히고, 이해되고, 활용되도록 만듭니다.

이 글에서 무엇을 배울 수 있을까요?

내용핵심 개념
1장문서의 유형과 구조다양한 문서의 작성법
2장작성 원칙명확, 정확, 간결
3장실전 비교좋은 문서 vs 나쁜 문서
4장문서 유지보수문서를 최신 상태로 유지

이 장을 마치면 구조가 명확하고, 내용이 정확하며, 유지보수가 쉬운 기술 문서를 작성할 수 있게 됩니다.


0. 전경도: 왜 기술 문서가 중요한가요?

코드는 컴퓨터에게 "어떻게"를 알려주고, 문서는 인간에게 "왜"를 알려줍니다. 문서가 없는 프로젝트는 설명서가 없는 가전제품과 같습니다 — 사용할 수는 있지만, 사용법은 모두 추측해야 합니다.

좋은 문서의 가치

  • 소통 비용 절감: 신규 입사자가 스스로 학습 가능, 반복적인 질문 감소
  • 의사결정 맥락 보존: "왜"를 기록, "무엇"만이 아닌
  • 프로젝트 신뢰도 향상: 좋은 문서는 오픈소스 프로젝트의 얼굴
  • 협업 가속화: API 문서로 프론트엔드와 백엔드 병렬 개발 가능

1. 문서의 유형과 구조

아래의 인터랙티브 컴포넌트를 통해 다양한 유형의 문서 표준 구조를 이해해 보세요:

Documentation structure template - click to switch document types
1Project name + one-line description
2Quick start
3Features
4Usage examples
5Contributing + license

1.1 일반적인 문서 유형

문서 유형대상 독자핵심 내용
README모든 사람프로젝트 소개, 사용법, 기여 방법
API 문서인터페이스 호출자엔드포인트, 매개변수, 응답, 에러 코드
아키텍처 문서개발 팀시스템 설계, 기술 선택, 데이터 흐름
변경 이력사용자/개발자버전 변화, 추가/수정/파괴적 변경
기여 가이드기여자개발 환경, 코드 규칙, PR 프로세스

1.2 README의 황금 구조

좋은 README는 다음을 포함해야 합니다:

  1. 프로젝트 이름 + 한 줄 설명: 3초 안에 이것이 무엇인지 알 수 있게
  2. 빠른 시작: 최소 단계로 실행하는 방법
  3. 기능 특징: 핵심 강점
  4. 설치 방법: 상세한 환경 요구사항과 설치 단계
  5. 사용 예시: 복사해서 붙여넣을 수 있는 코드
  6. 기여 가이드: 참여 방법
  7. 라이선스: 법적 정보

2. 작성 원칙

2.1 명확성 우선

markdown
<!-- 나쁨: 모호함 -->
이 함수는 데이터를 처리합니다.

<!-- 좋음: 구체적이고 명확 -->
원시 주문 데이터를 청구서 형식으로 변환하며, 세금 계산과 통화 변환이 포함됩니다.

2.2 독자 중심

문서를 작성하기 전에 먼저 질문하세요: 누가 이 문서를 읽을 것인가? 그들에게 어떤 정보가 필요한가?

  • 초보자 대상: 용어를 설명하고, 완전한 예시 제공
  • 경험 있는 개발자 대상: 핵심으로 바로 들어가고, API 참조 제공
  • 비기술자 대상: 비유를 사용하고, 전문 용어 피하기

2.3 코드 예시가 최고의 문서

markdown
<!-- 나쁨: 텍스트 설명만 -->
createUser 함수를 호출하고 사용자 이름과 이메일 매개변수를 전달하세요.

<!-- 좋음: 실행 가능한 예시 제공 -->
const user = await createUser({
  name: '홍길동',
  email: 'hong@example.com'
})
// 반환: { id: 'u_123', name: '홍길동', createdAt: '2025-01-15' }

3. 실전 비교

아래의 인터랙티브 컴포넌트를 통해 좋은 기술 작성과 나쁜 기술 작성을 비교해 보세요:

Technical writing comparison - click to switch cases
❌ Poor writing
// Process data
function process(d) {
  // ...
}
✅ Better writing
/**
 * Convert raw order data into invoice format.
 * @param {Order} order - Raw order object
 * @returns {Invoice} Formatted invoice
 * @throws {ValidationError} When order data is incomplete
 */
function toInvoice(order) {
  // ...
}
Improvement points:Explain why, not just whatDocument parameter and return typesDescribe exceptional cases

3.1 커밋 메시지 규칙

# 나쁨
fix bug
update code

# 좋음 (Conventional Commits)
fix: 로그인 페이지가 Safari에서 하얀 화면으로 표시되는 문제 수정
feat: PDF 형식 보고서 일괄 내보내기 지원
docs: API 인증 장절의 예시 코드 업데이트

3.2 주석의 예술

javascript
// 나쁨: "무엇인지" 설명 (코드가 이미 말해줌)
// 배열 순회
for (const item of items) { ... }

// 좋음: "왜" 설명
// 역순으로 순회 — 요소 삭제 시 정방향이면 다음 요소를 건너뛰기 때문
for (let i = items.length - 1; i >= 0; i--) { ... }

4. 문서 유지보수

4.1 문서도 코드처럼

문서와 코드를 같은 저장소에 두고, 같은 워크플로우로 관리하세요:

  • 문서 변경은 코드와 함께 PR로 제출
  • CI에서 문서 형식과 링크 유효성 검사
  • 버전 출시 시 문서 동기 업데이트

4.2 문서 부패 방지

문제해결책
문서가 구식임코드 변경 시 문서 업데이트 강제 (PR 검사)
관리자가 없음문서 담당자 지정
내용 중복단일 정보 출처, 다른 곳은 링크로 참조

5. AI 활용: 대형 언어 모델로 문서 품질 향상

대형 언어 모델은 기술 작성 분야에서 거의 "타고난 재능"입니다 — 문서 생성, 표현 개선, 콘텐츠 번역 모두 강점입니다.

5.1 API 문서 생성

프롬프트:

다음 Express 라우트 코드를 바탕으로 완전한 API 문서를 생성해 주세요:
- 엔드포인트 경로와 메서드
- 요청 매개변수 (경로 매개변수, 쿼리 매개변수, 요청 본문) 및 유형
- 성공 및 오류 응답 예시
- curl을 사용한 호출 예시

[라우트 코드를 붙여넣으세요]

5.2 기술 작성 개선

프롬프트:

다음 기술 문서의 표현을 개선해 주세요:
1. 언어를 간결하고 명확하게, 불필요한 표현 제거
2. 수동태를 능동태로 변경
3. 전문 용어의 정확성 유지
4. 필요한 코드 예시 추가
원래 의미를 유지하면서 표현 품질만 개선해 주세요.

[문서 내용을 붙여넣으세요]

5.3 README 생성

프롬프트:

다음 프로젝트 정보를 바탕으로 고품질의 README.md를 생성해 주세요:
- 프로젝트 이름: [이름]
- 한 줄 설명: [설명]
- 기술 스택: [나열]
- 핵심 기능: [나열]

다음을 포함해 주세요: 프로젝트 소개, 빠른 시작, 기능 특징,
설치 단계 (코드 포함), 사용 예시, 기여 가이드, 라이선스.

AI 사용 제안

AI가 생성한 문서는 기술적 세부사항이 정확한지 확인해야 합니다 — 존재하지 않는 API 매개변수나 잘못된 반환값을 만들어낼 수 있습니다. 항상 실제 코드와 대조하여 검증하세요.


6. 요약

  1. 유형 매칭: 다양한 문서는 각각 다른 구조와 작성법이 있음
  2. 명확성 우선: 구체적, 정확, 독자 중심
  3. 예시 중심: 좋은 코드 예시는 천 마디 말보다 나음
  4. 지속적 유지보수: 문서도 코드처럼, 프로젝트와 함께 발전

핵심 성찰

문서 작성은 시간 낭비가 아니라 미래의 시간을 절약하는 것입니다. 오늘 30분 동안 작성한 문서가 10명에게 각각 1시간씩을 절약해 줄 수 있습니다. 좋은 문서는 팀에 대한 최고의 투자입니다.


추가 읽기

  • 작성 가이드: Google의 기술 작성 강좌(Technical Writing)는 무료이면서 실용적입니다.
  • 문서 도구: VitePress, Docusaurus, GitBook 등의 현대적인 문서 프레임워크.
  • API 문서: OpenAPI/Swagger 규격은 API 문서의 업계 표준입니다.
  • 실천 제안: 자신의 프로젝트에 좋은 README를 작성하는 것부터 시작해 보세요.