무료 템플릿

무료 코드 감사 체크리스트, 증거가 없으면 발견이 아니다

출시, 투자 유치, 인수인계 전에 코드베이스를 감사하기 위한 체크리스트입니다. 먼저 만든 것이 합의한 내용과 맞는지 확인하고, 접근 제어, 시크릿, 의존성, 입력 처리, 결제, 안정성으로 넘어갑니다. 모든 발견 사항에는 심각도, 위치, 증거가 붙습니다. Markdown으로 복사하거나 내려받으세요.

무료 · Markdown · 가입 불필요

언제 쓰나요

감사가 답하는 질문은 두 가지입니다. 합의한 것을 만들었는가, 그리고 고객 앞에 내놓아도 안전한가. 그 답이 가장 중요한 시점에 실시하세요.

  • 공개 출시나 스토어 제출 전에

  • 외주 개발자, 스튜디오, 코딩 에이전트가 작업을 넘겨줄 때

  • 실사 전에, 또는 다른 사람의 코드베이스를 넘겨받을 때

  • 인증, 결제, 데이터 접근에 큰 변경을 한 뒤에

템플릿

템플릿 전문

아래 내용은 복사하거나 내려받을 때 모두 포함됩니다. [대괄호] 빈칸을 바꾸고, 안내 문장은 쓰면서 지우세요.

코드 감사: [프로젝트명]

[대괄호] 안의 내용을 모두 바꾸세요. 증거를 직접 확인했을 때만 체크하세요. 통과하지 못한 항목은 마지막 기록에 번호가 붙은 발견 사항이 되고, 치명적·높음 등급의 미해결 발견 사항이 없고 제품이 실제로 운영 중일 때만 감사를 통과합니다.

01범위

무엇을 감사하는지 정확히 고정하세요. 특정 커밋 없이 '앱'을 감사하면 다시 재현할 수 없습니다.

  • 저장소: [URL]
  • 커밋 또는 태그: [SHA 또는 릴리스 태그]
  • 합의된 범위: [대조하는 PRD 버전 또는 기준선 번호]
  • 환경: [운영 URL, 스토어 빌드, 또는 스테이징]
  • 감사자와 날짜: [이름], [날짜]

02요구사항 커버리지

만든 것이 합의한 것과 맞나요? 고정된 범위에 비춰 요구사항을 하나씩 확인하세요.

  • 모든 Must 요구사항에 인수 기준이 있다
  • 모든 Must 요구사항에 그것을 가리키는 완료된 작업이 있다
  • 모든 인수 기준 확인이 운영 중인 제품에서 통과한다
  • 승인 후 바뀐 요구사항은 이전 문구와 새 문구와 함께 표시되어 있다
  • 승인 후 제외된 요구사항은 삭제가 아니라 결정으로 기록되어 있다
  • 커밋과 풀 리퀘스트가 요구사항 키를 참조한다

03접근 제어

작은 제품의 심각한 발견 사항은 대부분 여기서 나옵니다. 화면을 읽지 말고 ID를 바꾸고 세션을 지워 가며 시험하세요.

  • 비공개 데이터를 읽거나 쓰는 모든 경로가 세션을 확인한다
  • 관리 기능은 로그인 여부뿐 아니라 역할이나 권한을 확인한다
  • URL이나 요청의 ID를 바꿔도 다른 계정의 데이터에 닿지 않는다
  • API 토큰은 범위가 제한되고, 폐기하면 즉시 적용된다
  • 비밀번호 재설정, 초대, 로그인 링크는 만료되며 한 번만 쓸 수 있다

04시크릿과 설정

현재 상태뿐 아니라 이력도 확인하세요. 나중 커밋에서 지운 키도 이미 공개된 것입니다.

  • 저장소와 그 이력 어디에도 키, 토큰, 비밀번호가 없다
  • 환경 변수 파일은 버전 관리에서 제외되어 있다
  • 공개용 변수를 통해 서버 시크릿이 브라우저 번들에 노출되지 않는다
  • 운영과 개발이 서로 다른 자격 증명을 쓴다
  • 유출되었거나 공유된 자격 증명은 교체했다

05의존성

npm audit이나 OSV 같은 보안 권고 데이터베이스를 쓰고, 권고 ID를 기록하세요. 기억에 의존하지 마세요.

  • 알려진 보안 권고를 확인하고, 발견된 것은 ID를 기록했다
  • lockfile이 커밋되어 있고 빌드에서 사용된다
  • 관리되지 않거나 버려진 패키지를 기록했다
  • 새 의존성의 설치 스크립트를 검토했다

06입력 처리

사용자가 보낼 수 있는 모든 것은 신뢰할 수 없습니다. 헤더, 파일 이름, 웹훅 본문도 마찬가지입니다.

  • 데이터베이스 쿼리는 매개변수화되어 있고, 문자열로 조립하지 않는다
  • 사용자 입력에 대해 eval이나 동적 코드 실행을 하지 않는다
  • 사용자 콘텐츠는 렌더링 전에 이스케이프한다
  • 업로드는 형식과 크기를 검사하고 웹 루트 밖에 저장한다
  • 사용자가 준 URL로 가는 서버 측 요청은 제한되어 있다
  • 공개 양식에는 요청 제한이나 남용 방지가 있다

07돈의 흐름

여기 있는 것은 무엇보다 먼저 봅니다. 두 번 결제하거나 두 번 적립하는 버그는 운영되는 매시간 돈을 잃게 합니다.

  • 결제와 주문 처리는 멱등적이다. 재시도해도 두 번 결제되지 않는다
  • 웹훅 서명을 검증한 뒤에야 내용을 신뢰한다
  • 가격과 금액은 서버에서 계산하고, 클라이언트 값을 쓰지 않는다
  • 환불, 크레딧, 쿠폰은 동시 요청에서도 두 번 쓸 수 없다

08안정성과 운영

나쁜 날에 무슨 일이 생기는지, 그리고 누군가 알아챌 수 있는지.

  • 오류가 누군가 실제로 보는 모니터링 도구로 보고된다
  • 백업이 있고, 실제로 복구를 시도해 본 적이 있다
  • 마이그레이션은 그에 의존하는 코드가 배포되기 전에 적용한다
  • 예약 작업은 두 번 실행되어도 문제가 없다

09실제로 운영 중

팀 밖의 누구도 쓸 수 없는 것에 대한 감사는 끝난 것이 아닙니다.

  • 배포되어 있고, 여기서 일하지 않는 사람도 접근할 수 있다
  • 운영 URL이나 스토어 페이지를 기록했다
  • 가입과 핵심 흐름이 로컬뿐 아니라 운영에서도 동작한다

10발견 사항 기록

통과하지 못한 확인 하나당 한 행. 돈이나 데이터에 영향을 주는 것부터 순서대로. 증거 없는 발견은 의견일 뿐입니다. 빼거나 증거를 확보하세요.

심각도: 치명적, 높음, 보통, 낮음, 정보

ID심각도위치증거재현수정 제안상태
F-001[치명적][path/file.ts:42][문제를 보여 주는 것][절차][할 변경]미해결
F-002[높음][경로 또는 파일][문제를 보여 주는 것][절차][할 변경]미해결

11판정

통과, 또는 한 번 더 반복. 부분 통과는 없습니다.

  • 결과: [통과 / 재작업]
  • 미해결 발견 사항: [심각도별 개수]
  • 후속 작업: [수정 사항을 추적하는 곳]
  • 다음 감사: [날짜 또는 계기]

Atrix AI

Atrix AI로 하면

Atrix AI는 코드를 스캔하지 않습니다. 이 체크리스트의 첫 섹션, 팀들이 흔히 건너뛰는 질문에 답합니다. 만든 것이 합의한 것인가. 나머지 감사는 직접 수행하고, 그 발견 사항은 추적되는 작업이 됩니다.

  • 합의한 것을 고정

    요구사항을 승인하고 번호가 붙은 기준선으로 고정하세요. 기준선은 정확한 문구와 당시의 문서를 그대로 보관하므로, 나중의 수정이 승인된 내용을 조용히 바꿔 쓸 수 없습니다.

  • 커버리지 확인

    기준선의 각 요구사항마다 작업이 있는지, 진행 중인지, 완료되었는지 보여 주고, 고정 이후 바뀌거나 제외되거나 삭제된 요구사항을 표시합니다. 모든 상태는 모델의 의견이 아니라 기록에서 계산됩니다.

  • 발견 사항을 작업으로 추적

    이 체크리스트의 발견 사항은 우선순위가 붙은 이슈로 프로젝트 보드에 기록하고, 작업이 없는 요구사항도 이슈로 나눌 수 있습니다. 코딩 에이전트는 인계 번들에서 요구사항 키를 받아 커밋을 나중에 추적할 수 있게 합니다.

FAQ

자주 묻는 질문

코드 감사는 무엇을 확인하나요?

두 가지입니다. 첫째, 만든 것이 합의한 요구사항과 맞는지. 둘째, 안전하게 운영할 수 있는지. 접근 제어, 시크릿, 알려진 보안 권고가 있는 의존성, 입력 처리, 결제 흐름, 그리고 모니터링과 백업 같은 운영 기본기입니다.

코드 리뷰와는 어떻게 다른가요?

코드 리뷰는 병합 전의 변경 하나를 봅니다. 감사는 특정 커밋 시점의 전체 시스템을 정해진 범위에 비춰 보고, 증거가 붙은 발견 사항과 통과 여부 판정을 냅니다.

코드 감사는 언제 필요한가요?

출시나 스토어 제출 전, 외부 개발자나 코딩 에이전트가 작업을 넘겨줄 때, 실사 전, 그리고 인증·결제·데이터 접근에 큰 변경을 한 뒤입니다.

쓸모 있는 발견 사항의 조건은?

심각도, 정확한 위치, 문제를 보여 주는 증거, 재현 절차, 수정 제안입니다. 증거가 없으면 의견일 뿐이고 기록에 들어가면 안 됩니다.

체크리스트는 무료인가요?

네. 가입 없이 Markdown으로 복사하거나 내려받을 수 있습니다.

회사 전체를 한곳에서 운영하세요.

무료 플랜으로 시작하세요. 준비가 되면 팀, 캘린더, 코드를 연결하면 됩니다.