Skip to content

자체 점검 도구

TQS 인증 심사를 요청하기 전에 프로젝트 팀이 자체적으로 규격 부합 여부를 검증할 수 있는 도구와 활용 방법을 정의합니다. 본 장은 자동화 검증 도구 총괄, 도구별 설정 가이드, CI 연동 점검, 종합 리포트 생성 방법을 포함합니다.


33.2.1. 자동화 검증 도구 총괄

TQS 인증에서 요구하는 주요 검증 항목은 자동화 도구를 통해 정량적으로 측정할 수 있습니다. 다음 표는 TQS 자체 점검에 사용하는 핵심 도구와 통과 기준을 정리한 것입니다.

도구검증 영역실행 명령어통과 기준
SpotlessJava 코드 포맷mvn spotless:check포맷 위반 0건
ESLintJS/TS 코드 품질yarn lint에러 0건
Prettier코드 포맷yarn format:check포맷 위반 0건
JaCoCo백엔드 테스트 커버리지mvn test jacoco:report라인 80%, 브랜치 70%
Vitest프론트엔드 테스트yarn test:coverage라인 80%, 브랜치 70%
Lighthouse웹 성능/접근성npx lighthouse <URL>성능 90점, 접근성 90점
OWASP Dependency-Check의존성 보안mvn dependency-check:checkCVSS 7.0 이상 취약점 0건

모든 도구는 CLI 환경에서 실행할 수 있어야 하며, CI/CD 파이프라인에서 자동으로 실행되도록 구성해야 합니다.


33.2.2. 도구별 설정 가이드

각 도구의 설치 및 기본 설정 방법을 설명합니다.

33.2.2.1. Spotless (백엔드 코드 포맷)

Spotless는 spotless-maven-plugin을 통해 Maven 프로젝트에 통합합니다. pom.xml<build> > <plugins> 섹션에 플러그인을 추가해야 합니다.

주요 설정 항목은 다음과 같습니다.

설정 항목설명
포맷터Google Java FormatTQS 필수 포맷터
적용 대상src/**/*.java전체 Java 소스
제외 대상자동 생성 코드jOOQ 생성 코드 등
  • 포맷 검사: mvn spotless:check (위반 시 빌드 실패)
  • 포맷 적용: mvn spotless:apply (자동 수정)

33.2.2.2. ESLint (프론트엔드 코드 품질)

ESLint는 Flat Config 형식으로 설정해야 합니다. 프로젝트 루트에 eslint.config.js 파일을 생성합니다.

주요 설정 항목은 다음과 같습니다.

설정 항목설명
설정 형식Flat ConfigTQS 필수 형식
파서@typescript-eslint/parserTypeScript 지원
Vue 플러그인eslint-plugin-vueVue 3 SFC 린트
TypeScript 플러그인@typescript-eslint/eslint-plugin타입 안전성 규칙
  • any 타입 사용 금지 규칙(@typescript-eslint/no-explicit-any)을 error로 설정해야 합니다.
  • Vue Composition API 강제 규칙을 활성화하는 것을 권장합니다.

33.2.2.3. Prettier (코드 포맷)

Prettier는 프로젝트 루트의 .prettierrc 파일로 설정합니다.

TQS에서 권장하는 기본 설정 값은 다음과 같습니다.

설정 항목권장 값설명
printWidth100한 줄 최대 길이
tabWidth2들여쓰기 크기
useTabsfalse공백 사용
semitrue세미콜론 사용
singleQuotetrue작은따옴표 사용
trailingCommaall후행 쉼표 사용
  • 포맷 검사: yarn format:check 또는 npx prettier --check .
  • 포맷 적용: yarn format 또는 npx prettier --write .

33.2.2.4. JaCoCo (백엔드 테스트 커버리지)

JaCoCo는 jacoco-maven-plugin을 통해 Maven 프로젝트에 통합합니다. pom.xml에 플러그인을 추가하고 커버리지 임계값을 설정해야 합니다.

TQS 필수 커버리지 기준은 다음과 같습니다.

커버리지 유형최소 기준비고
라인 커버리지80%필수
브랜치 커버리지70%필수

커버리지 측정에서 제외할 수 있는 대상은 다음과 같습니다.

  • jOOQ 자동 생성 코드
  • 설정 클래스 (@Configuration)
  • DTO 및 Record 클래스
  • main 메서드가 포함된 애플리케이션 진입점

33.2.2.5. Vitest (프론트엔드 테스트)

Vitest는 vite.config.ts에서 테스트 설정을 관리합니다. 별도의 vitest.config.ts 파일을 사용할 수도 있습니다.

주요 설정 항목은 다음과 같습니다.

설정 항목설명
테스트 환경jsdom 또는 happy-domDOM 시뮬레이션
커버리지 프로바이더v8 또는 istanbul커버리지 측정 엔진
커버리지 리포터text, html, lcov리포트 출력 형식
  • 테스트 실행: yarn test
  • 커버리지 측정: yarn test:coverage
  • 커버리지 기준은 백엔드와 동일하게 라인 80%, 브랜치 70%를 충족해야 합니다.

33.2.2.6. Lighthouse (웹 성능/접근성)

Lighthouse는 Chrome DevTools 또는 CLI를 통해 실행할 수 있습니다. CI 환경에서는 CLI 방식을 사용합니다.

TQS 필수 점수 기준은 다음과 같습니다.

카테고리최소 점수비고
성능 (Performance)90점필수
접근성 (Accessibility)90점필수
권장사항 (Best Practices)80점권장
SEO80점권장
  • CLI 설치: npm install -g lighthouse
  • 실행: npx lighthouse <URL> --output=json --output-path=./lighthouse-report.json

33.2.2.7. OWASP Dependency-Check (의존성 보안)

OWASP Dependency-Check는 dependency-check-maven 플러그인을 통해 Maven 프로젝트에 통합합니다.

주요 설정 항목은 다음과 같습니다.

설정 항목설명
실패 임계값CVSS 7.0이 점수 이상의 취약점 발견 시 빌드 실패
리포트 형식HTML, JSON결과 리포트 출력 형식
자동 업데이트활성화NVD 데이터베이스 자동 갱신
  • 스캔 실행: mvn dependency-check:check
  • CVSS 7.0 이상의 취약점이 1건이라도 발견되면 빌드가 실패합니다.
  • 프론트엔드 의존성은 yarn audit 또는 npm audit으로 별도 점검합니다.

33.2.3. CI 연동 점검

모든 자동화 검증 도구는 CircleCI 파이프라인에 통합하여 매 커밋마다 자동으로 실행되도록 구성해야 합니다.

33.2.3.1. 파이프라인 구성 순서

CI 파이프라인은 다음 순서로 검증 단계를 실행해야 합니다.

순서단계실행 도구실패 시 동작
1코드 포맷 검사Spotless, Prettier파이프라인 중단
2린트 검사ESLint파이프라인 중단
3단위 테스트JUnit 5, Vitest파이프라인 중단
4커버리지 검증JaCoCo, Vitest Coverage파이프라인 중단
5빌드Maven, Vite파이프라인 중단
6보안 스캔OWASP Dependency-Check파이프라인 중단

각 단계는 이전 단계가 성공한 경우에만 실행됩니다. 단계 실패 시 후속 단계를 실행하지 않고 즉시 파이프라인을 중단합니다.

33.2.3.2. CI 점검 체크리스트

CI 연동이 올바르게 구성되었는지 다음 항목을 확인해야 합니다.

  • 모든 검증 도구가 CI 환경에서 정상적으로 실행되는지 확인합니다.
  • 검증 실패 시 파이프라인이 중단되는지 확인합니다.
  • 커버리지 리포트가 CI 아티팩트로 저장되는지 확인합니다.
  • 보안 스캔 결과가 리포트로 출력되는지 확인합니다.
  • 빌드 성공/실패 알림이 팀에 전달되는지 확인합니다.

33.2.4. 종합 리포트 생성

각 도구의 실행 결과를 종합하여 TQS 자체 점검 리포트를 작성해야 합니다. 이 리포트는 심사 요청 시 참고 자료로 활용됩니다.

33.2.4.1. 리포트 포함 항목

종합 리포트에는 다음 항목을 포함해야 합니다.

항목내용출처
프로젝트 정보프로젝트명, 버전, 기술 스택수동 작성
코드 포맷 결과Spotless, Prettier 실행 결과도구 실행 로그
린트 결과ESLint 실행 결과, 경고/에러 건수ESLint 리포트
백엔드 커버리지라인/브랜치 커버리지 수치JaCoCo 리포트
프론트엔드 커버리지라인/브랜치 커버리지 수치Vitest 리포트
성능/접근성 점수Lighthouse 각 카테고리 점수Lighthouse 리포트
보안 스캔 결과취약점 건수, 최고 CVSS 점수OWASP 리포트
CI 파이프라인 상태최근 빌드 성공률, 연속 성공 횟수CircleCI 대시보드

33.2.4.2. 리포트 작성 기준

  • 모든 수치는 도구의 실행 결과에서 직접 추출해야 합니다. 수동으로 수치를 조정해서는 안 됩니다.
  • 리포트 작성 시점의 날짜와 실행 환경(OS, 도구 버전)을 명시해야 합니다.
  • 미충족 항목이 있는 경우, 해당 항목에 대한 보완 계획과 예상 완료일을 기재해야 합니다.
  • 리포트는 심사 요청서와 함께 제출합니다. 리포트 없이 심사를 요청하는 것은 가능하지만, 리포트를 첨부하면 심사 기간을 단축할 수 있습니다.

TIENIPIA QUALIFIED STANDARD