alpaka206

프론트엔드 개발자와 문서화: 왜 해야 할까?

date
Aug 3, 2025
slug
frontend-documentation-playbook
author
status
Public
tags
펑타이그레이터차이나
summary
프론트엔드 문서화의 필요성부터 설계/ADR, API·컴포넌트 문서, 시각 회귀, a11y, CVE 보안 트래킹
type
Post
thumbnail
category
✍️ Study
updatedAt
Aug 17, 2025 09:56 AM
“코드가 곧 문서”라는 말이 있지만, 코드만으로는 드러나지 않는 맥락이 존재합니다. 특히 프론트엔드는 디자인, 상태 관리, API 계약, 컴포넌트 구조, 접근성, 시각적 일관성 등 여러 축이 맞물립니다. 문서화가 없다면 협업과 유지보수는 비효율적이게 됩니다.
저 역시 문서 부재로 인한 혼선을 여러 번 겪으며, 문서화는 선택이 아니라 필수라는 결론에 도달했습니다.

왜 문서화가 중요한가?

1. 협업 효율

  • 디자이너, 백엔드, QA와의 불필요한 질의/응답 감소
  • 예: API 응답 구조, 페이지 라우팅 규칙, 컴포넌트 Props 명세

2. 온보딩 속도

  • 신규 팀원이 프로젝트 구조와 규칙을 빠르게 이해하고 기여

3. 유지보수 용이성

  • 시간이 지나면 본인 코드의 의도도 흐려집니다. 당시의 설계 이유와 제약이 남아 있으면 문제 원인 파악이 빨라집니다.

4. 품질 보증

  • Storybook, 시각 회귀, a11y 체크리스트 등 UI 문서화 도구로 디자인/구현 괴리를 손쉽게 검증할 수 있습니다.

프론트엔드 문서화 유형

유형
설명
예시
설계 문서
전체 구조, 라우팅, 상태 관리, 디렉토리 구조
README
ADR
아키텍처 의사결정의 맥락/대안/근거 기록
API 명세서
엔드포인트, 스키마, 응답 정의
Swagger, Postman Docs
UI 컴포넌트 문서
Props, Story, 상태별 샘플
Storybook
시각 회귀 기준
베이스라인/허용 오차/무시 영역 정책
puppeteer + screenshots
a11y 가이드/감사 기록
목표 기준, 자동·수동 점검, 이슈 로그
WCAG 2.1 AA
변경 로그
기능 추가/변경/중요 이슈
CHANGELOG.md
개발 환경 문서
로컬 설정, 빌드/배포/릴리즈
deploy.md
보안/CVE 조사 기록
취약 패키지 영향, 완화, 일정
엑셀 시트

1. 라이브러리 CVE 조사 문서화

보안 이슈는 “지금 안전한가?”와 “언제/어떻게 고칠 건가?”가 핵심입니다. 팀이 공유 가능한 단일 출처가 필요합니다.
문서에 남길 것
  • CVE ID / 영향 받는 버전 범위 / 현재 사용 버전
  • 영향 범위: 런타임/빌드타임, 특정 페이지/국가/브라우저
  • 업그레이드 전략: 대체 패키지 여부, 브레이킹 체인지 영향도
  • 일정과 담당자: 릴리즈 플랜과 연결
  • 관련 ADR 링크: “왜 지금/이 방법으로 처리하는가”의 근거 보존
npm audit fix만으로는 해결되지 않는 경우가 많습니다. 정기적으로 점검하고, 주요 패키지는 별도 트래킹을 권장합니다.

2. ADR(Architecture Decision Record)

선택의 순간은 반복됩니다. 대안 비교와 트레이드오프를 기록해야 같은 논쟁을 반복하지 않습니다.
작성 시점
  • 상태 관리 전환
  • 번들러/빌드 체인 변경
  • 디자인 시스템/토큰 전략 도입
  • 성능/보안/UX에 직결되는 핵심 선택
형식
  1. 문제 정의
  1. 대안 나열(장단점)
  1. 결정 및 근거
  1. 파급효과/리스크
  1. 후속 작업/롤백 플랜
  1. 참조(이슈/PR/릴리즈 링크)
PR/릴리즈에 ADR을 링크해 추적 가능성을 확보

3. 시각 회귀

CSS 한 줄이 예기치 않은 오류를 유발할 수 있습니다. 스냅샷 베이스라인은 사실상 디자인 계약의 역할을 합니다.
문서에 남길 것
  • 대상 목록: 기준 페이지/컴포넌트, 뷰포트, 테마, 실제 폰트 사용 여부
  • 허용 오차: 픽셀/퍼센트 기준
  • 무시 영역: 동적 광고/날씨/애니메이션 등
  • 베이스라인 승격 정책: 누가/언제/어떤 리뷰로 승격하는가

4. 접근성(a11y)

접근성은 기능이자 품질입니다. 처음부터 기준을 문서화하고 체크리스트를 루틴화하면 비용을 감소할 수 있습니다.
문서에 남길 것
  • 목표 기준: WCAG 2.1 AA
  • 자동 점검: eslint-plugin-jsx-a11y, Lighthouse 통과 기준
  • 수동 점검: 키보드 순회, 포커스 링 가시성, 스크린리더 레이블, 색 대비
  • 토큰 가이드: 대비/폰트/포커스 스타일을 디자인 토큰으로 관리
  • DoD에 a11y 체크 포함

문서화 베스트 프랙티스

  • Docs-as-code: 문서를 코드와 같은 저장소/브랜치/리뷰 흐름에 포함
  • 짧고 명확하게: 1 파일 1 주제
  • 자동화 우선: Storybook/OpenAPI/puppeteer
  • 변경 동기화: PR 템플릿에 “문서 영향” 체크박스 포함
  • 단일 출처 원칙: 산재한 노션/위키는 리드미에서 링크로 수렴
  • 소유자 명시: 각 문서/규칙의 Owner갱신 주기 표기

마무리

프론트엔드는 “보이는 것”을 만들지만, 보이지 않는 규칙과 근거가 제품의 수명과 팀의 속도를 좌우합니다. 문서화는 귀찮은 부가작업이 아니라, 버그를 줄이고 의사결정을 재사용 가능하게 만드는 투자입니다. 오늘 작은 템플릿 하나라도 도입해보시길 바랍니다.