Skip to content

기술 심사

기술 심사는 TQS 인증 절차의 3단계로, TQS 위원회가 제출된 산출물과 프로젝트 소스코드를 기반으로 TQS 규격 충족 여부를 검증하는 핵심 과정입니다. 본 장은 심사 방법, 항목별 검증 방법, 판정 기준, 보완 요청 절차, 결과 통보에 대해 정의합니다.


31.4.1. 심사 방법

TQS 기술 심사는 자동 검증과 수동 리뷰를 병행하여 수행합니다. 두 방법을 결합함으로써 도구로 정량화 가능한 항목과 인간의 판단이 필요한 항목을 모두 검증할 수 있습니다.

31.4.1.1. 자동 검증

자동 검증은 CI/CD 파이프라인 실행 결과와 자동화 도구의 검증 결과를 확인하는 방식입니다. 자동 검증은 전체 심사의 60% 비중을 차지합니다.

자동 검증의 대상과 도구는 다음과 같습니다.

검증 항목도구기준검증 방법
백엔드 코드 포매팅Spotless (Google Java Format)위반 0건mvn spotless:check 실행 결과 확인
프론트엔드 린트ESLint (Flat Config)에러 0건npx eslint . 실행 결과 확인
프론트엔드 포매팅Prettier위반 0건npx prettier --check . 실행 결과 확인
백엔드 테스트 커버리지JaCoCo라인 80%, 브랜치 70%JaCoCo HTML 리포트 수치 확인
프론트엔드 테스트 커버리지Vitest coverage라인 80%, 브랜치 70%커버리지 리포트 수치 확인
프론트엔드 성능Lighthouse성능 90점 이상Lighthouse 리포트 점수 확인
의존성 보안 취약점OWASP Dependency-CheckCVSS 7 이상 0건스캔 리포트 결과 확인
CI/CD 파이프라인CircleCI최근 5회 성공빌드 이력 확인

자동 검증은 TQS 위원회가 직접 도구를 실행하거나, 프로젝트 팀이 제출한 결과물을 검토하는 방식으로 수행합니다. CI/CD 파이프라인이 정상 구동되는 프로젝트의 경우, TQS 위원회가 파이프라인을 직접 트리거하여 결과를 확인할 수 있습니다.

31.4.1.2. 수동 리뷰

수동 리뷰는 TQS 위원회의 심사위원이 소스코드와 프로젝트 구조를 직접 확인하는 방식입니다. 수동 리뷰는 전체 심사의 40% 비중을 차지합니다.

수동 리뷰의 대상은 다음과 같습니다.

  • 코드 컨벤션: 네이밍 규칙 준수 여부, 코드 가독성, 주석 적정성
  • 아키텍처 패턴: 기능별 패키지 구조 적용, 계층 분리, 의존성 방향
  • 보안 구현: Spring Security 설정, 인증/인가 로직, SQL 파라미터 바인딩, 입력 검증
  • 테스트 품질: Given-When-Then 패턴 적용, 테스트 케이스의 의미성, 경계값 테스트 포함 여부
  • 프로젝트 구조: 디렉토리 구조의 표준 준수, 설정 파일 관리, 환경별 프로파일 분리
  • 프론트엔드 설계: 컴포넌트 설계 원칙, Composition API 활용, 상태 관리 패턴

수동 리뷰는 최소 2인의 심사위원이 독립적으로 수행합니다. 각 심사위원은 담당 영역에 대해 리뷰 결과를 작성하며, 최종 판정은 심사위원 간의 합의를 통해 결정합니다.

31.4.1.3. 심사 비율

자동 검증과 수동 리뷰의 비율은 심사 유형에 따라 다릅니다.

심사 유형자동 검증수동 리뷰비고
최초 심사60%40%전체 항목 대상
갱신 심사70%30%변경 사항 + 핵심 항목
변경 심사변동변동변경 범위에 따라 결정

자동 검증의 비율이 높은 이유는 TQS 규격의 상당 부분이 도구를 통해 정량적으로 검증 가능하기 때문입니다. 다만, 수동 리뷰를 통해 도구로 포착할 수 없는 설계 품질, 코드의 의도, 보안 로직의 적정성을 함께 검증합니다.


31.4.2. 심사 항목별 검증 방법

TQS 기술 심사의 세부 영역별 자동 검증 도구와 수동 리뷰 항목을 정의합니다.

31.4.2.1. 검증 매트릭스

심사 영역자동 검증 도구수동 리뷰 항목
코드 컨벤션Spotless, ESLint, Prettier네이밍 규칙 준수, 코드 가독성, 주석 적정성
테스트JaCoCo, Vitest coverage테스트 품질, Given-When-Then 패턴, 경계값 테스트
보안OWASP Dependency-CheckSpring Security 설정, SQL 파라미터 바인딩, 입력 검증, 시크릿 관리
성능Lighthouse번들 크기 최적화, 이미지 최적화, 코드 스플리팅
프로젝트 구조패키지 구조, 디렉토리 구조, 설정 파일 관리
CI/CDCircleCI 빌드 로그파이프라인 단계 구성, 환경 분리, 빌드 안정성
형상관리브랜치 전략, 커밋 메시지 형식, PR 프로세스
API 설계SpringDoc (Swagger UI)RESTful 규칙, 에러 응답 형식, 날짜 형식

31.4.2.2. 영역별 세부 검증 기준

코드 컨벤션 영역

코드 컨벤션 영역은 소스코드의 일관성과 가독성을 검증합니다. 자동 검증으로 포매팅 규칙 준수를 확인하고, 수동 리뷰로 네이밍 규칙과 코드 품질을 확인합니다.

검증 항목검증 방법합격 기준
Google Java Format 적용mvn spotless:check위반 0건
ESLint 규칙 적용npx eslint .에러 0건, 경고 최소화
Prettier 적용npx prettier --check .위반 0건
Java 네이밍 규칙수동 리뷰클래스(PascalCase), 메서드(camelCase), 상수(UPPER_SNAKE_CASE)
Vue 컴포넌트 네이밍수동 리뷰PascalCase 파일명, 다중 단어 컴포넌트명
TypeScript strict 모드tsconfig.json 확인strict: true 설정

테스트 영역

테스트 영역은 테스트의 충분성과 품질을 검증합니다. 커버리지 수치와 함께 테스트 코드의 작성 패턴과 의미성을 함께 평가합니다.

검증 항목검증 방법합격 기준
백엔드 라인 커버리지JaCoCo 리포트80% 이상
백엔드 브랜치 커버리지JaCoCo 리포트70% 이상
프론트엔드 라인 커버리지Vitest coverage80% 이상
프론트엔드 브랜치 커버리지Vitest coverage70% 이상
Given-When-Then 패턴수동 리뷰JUnit 5 테스트 전체 적용
컴포넌트 테스트수동 리뷰주요 컴포넌트 테스트 작성
컴포저블 테스트수동 리뷰비즈니스 로직 포함 컴포저블 테스트 작성

보안 영역

보안 영역은 프로젝트의 보안 구현 수준을 검증합니다. 보안 항목은 다른 영역보다 엄격한 기준을 적용하며, Critical 항목의 미충족은 즉시 불합격 사유에 해당합니다.

검증 항목검증 방법합격 기준중요도
TLS 1.2 이상 적용설정 파일 확인적용 완료Critical
비밀번호 BCrypt 해시수동 리뷰적용 완료Critical
Spring Security 적용수동 리뷰인증/인가 설정 완료Critical
SQL 파라미터 바인딩수동 리뷰jOOQ 바인딩 사용, 문자열 연결 미사용Critical
소스코드 내 시크릿수동 리뷰하드코딩 0건Critical
Bean Validation 적용수동 리뷰요청 DTO에 검증 어노테이션 적용High
v-html 미사용수동 리뷰미사용 또는 DOMPurify 적용High
OWASP 스캔리포트 확인CVSS 7 이상 0건High

31.4.3. 심사 판정 기준

기술 심사의 판정은 통과, 조건부 통과, 불합격의 3가지로 구분됩니다. 판정 기준은 필수 항목의 충족률과 보안 Critical 항목의 충족 여부에 따라 결정됩니다.

31.4.3.1. 판정 기준표

판정필수 항목 충족률보안 Critical조건
통과100%전체 충족필수 항목을 모두 충족한 경우
조건부 통과90% 이상 100% 미만전체 충족미충족 항목 2주 내 보완 조건
불합격90% 미만필수 항목 충족률 90% 미만
불합격1건 이상 미충족보안 Critical 항목 미충족

31.4.3.2. 통과

통과는 모든 필수 항목을 충족한 경우에 부여되는 판정입니다. 통과 판정을 받은 프로젝트는 즉시 인증 발급 단계(4단계)로 진행합니다.

통과 판정 시 인증 등급이 함께 결정됩니다. 등급은 권장 항목의 충족률에 따라 기본, 우수, 최우수로 구분됩니다.

등급필수 항목권장 항목 충족률
기본100% 충족80% 미만
우수100% 충족80% 이상 100% 미만
최우수100% 충족100%

31.4.3.3. 조건부 통과

조건부 통과는 필수 항목 충족률이 90% 이상이지만 100%에 미달하는 경우에 부여되는 판정입니다. 보안 Critical 항목은 반드시 전체 충족 상태여야 합니다.

조건부 통과 판정 시 다음 조건이 부여됩니다.

  • 미충족 항목에 대한 보완 요청서가 발급됩니다.
  • 보완 기한은 판정일로부터 2주(10영업일) 입니다.
  • 보완 기한 내에 미충족 항목을 모두 해소해야 합니다.
  • 보완 완료 후 재확인 심사를 받아야 합니다.

보완 기한 내에 보완을 완료하지 못한 경우, 조건부 통과는 불합격으로 전환됩니다. 보완 기한은 연장할 수 없습니다.

31.4.3.4. 불합격

불합격은 필수 항목 충족률이 90% 미만이거나 보안 Critical 항목이 미충족인 경우에 부여되는 판정입니다.

불합격 판정을 받은 프로젝트는 다음 절차를 따릅니다.

  • 심사 리포트를 통해 미충족 항목의 상세 내역을 확인합니다.
  • 미충족 항목에 대한 보완 작업을 수행합니다.
  • 보완 작업 완료 후 1단계(사전 검토)부터 다시 진행합니다.
  • 재심사 요청 시 이전 심사에서 지적된 항목의 보완 내역을 명시해야 합니다.

불합격 후 재심사까지의 최소 대기 기간은 없습니다. 프로젝트 팀은 보완 작업 완료 즉시 재심사를 요청할 수 있습니다.


31.4.4. 보완 요청 절차

조건부 통과 판정 시 보완 요청 절차가 시작됩니다. 보완 요청은 미충족 항목을 명확히 전달하고, 보완 완료 여부를 확인하는 체계적인 프로세스입니다.

31.4.4.1. 보완 절차 흐름

각 단계의 상세 내용은 다음과 같습니다.

단계수행 주체활동소요 기간
보완 요청서 발급TQS 위원회미충족 항목, 보완 기준, 기한 명시판정 후 즉시
보완 작업 수행프로젝트 팀미충족 항목 해소, 코드 수정, 설정 변경최대 2주
보완 완료 보고프로젝트 팀보완 내역 및 근거 자료 제출
재확인 심사TQS 위원회보완 항목에 한정하여 재검증3영업일
최종 판정TQS 위원회통과 또는 불합격 판정즉시

31.4.4.2. 보완 요청서 내용

보완 요청서에는 다음 정보가 포함됩니다.

항목내용
심사 번호해당 심사의 고유 식별 번호
프로젝트명 및 버전심사 대상 프로젝트 정보
판정 결과조건부 통과
미충족 항목 목록항목 번호, 항목명, 미충족 사유, 보완 기준
보완 기한판정일로부터 2주(10영업일)
보완 완료 보고 방법제출 양식 및 제출 경로
담당 심사위원재확인 심사를 수행할 위원

31.4.4.3. 재확인 심사

재확인 심사는 보완 요청된 항목에 한정하여 수행됩니다. 기존 심사에서 충족으로 판정된 항목은 재확인 대상에 포함되지 않습니다.

재확인 심사 결과는 통과 또는 불합격만 존재합니다. 재확인 심사에서 조건부 통과는 부여되지 않습니다. 보완 항목을 모두 충족하면 통과, 하나라도 미충족이면 불합격으로 판정됩니다.


31.4.5. 심사 결과 통보

심사 완료 후 TQS 위원회는 프로젝트 팀에 심사 결과를 공식적으로 통보합니다.

31.4.5.1. 통보 기한

심사 완료일로부터 3영업일 이내에 결과를 통보해야 합니다. 통보는 프로젝트 리드에게 공식 문서(심사 리포트)와 함께 전달됩니다.

31.4.5.2. 심사 리포트

심사 리포트는 심사 과정과 결과를 종합적으로 기록한 공식 문서입니다. 심사 리포트에는 다음 정보가 포함됩니다.

리포트 항목내용
심사 기본 정보심사 번호, 프로젝트명, 버전, 심사 유형, 심사 기간
심사위원 정보심사에 참여한 위원 목록
영역별 심사 결과코드 컨벤션, 테스트, 보안, 성능, 구조, CI/CD 영역별 결과
항목별 충족 현황전체 항목의 충족/미충족 상세 현황
자동 검증 결과 요약각 도구별 실행 결과 요약
수동 리뷰 소견심사위원의 코드 리뷰 의견 및 개선 권고 사항
최종 판정통과/조건부 통과/불합격 및 사유
인증 등급 (통과 시)기본/우수/최우수 및 산정 근거

31.4.5.3. 심사 결과에 대한 이의 제기

프로젝트 팀은 심사 결과에 대해 이의를 제기할 수 있습니다. 이의 제기는 결과 통보일로부터 5영업일 이내에 서면으로 제출해야 합니다.

이의 제기 시 다음 사항을 명시해야 합니다.

  • 이의 대상 항목 (심사 리포트의 항목 번호)
  • 이의 사유 (구체적인 근거 포함)
  • 프로젝트 팀의 주장을 뒷받침하는 증거 자료

TQS 위원회는 이의 제기를 접수한 후 5영업일 이내에 검토 결과를 통보합니다. 이의가 수용될 경우 심사 결과가 변경되며, 기각될 경우 기존 판정이 유지됩니다. 이의 제기는 1회에 한하여 가능합니다.

TIENIPIA QUALIFIED STANDARD