Skip to content

인증의 목적

29.1.1. 품질 보증

TQS 인증의 첫 번째 목적은 티에니피아 생태계 내에서 개발, 운영되는 기술 자산의 품질을 공식적으로 검증하고 보증하는 것입니다. 품질 보증은 코드, 아키텍처, 테스트, 보안의 4가지 축을 중심으로 수행됩니다.

29.1.1.1. 코드 품질 검증

TQS 인증은 소스코드 수준에서의 품질을 직접 검증합니다. 이는 기존의 프로세스 중심 인증 체계와 TQS를 구분짓는 핵심 차별점입니다.

  • 포매터 적용 검증: Google Java Format, Prettier 등 규격에서 지정한 포매터가 실제로 적용되어 있는지 확인합니다. 포매터 미적용 코드는 CI 파이프라인에서 빌드 실패로 처리되어야 합니다.
  • 네이밍 규칙 준수: 클래스, 메서드, 변수, 패키지의 네이밍이 TQS 규격의 명명 규칙을 따르는지 검증합니다.
  • 코드 구조 표준화: 패키지 구조, 디렉토리 구조, 컴포넌트 설계가 규격에 부합하는지 확인합니다.

코드 품질 검증을 통해 "누가 작성하더라도 일관된 품질의 코드"를 보장합니다. 이는 코드 리뷰 효율성을 높이고, 인수인계 비용을 절감하며, 장기적인 유지보수성을 확보하는 기반이 됩니다.

29.1.1.2. 아키텍처 검증

프로젝트의 기술 아키텍처가 확장성, 유지보수성, 보안성 측면에서 적절한지 검증합니다.

  • 계층 구조(Controller - Service - Repository)가 올바르게 분리되어 있는지 확인합니다.
  • 의존성 방향이 단방향으로 유지되는지 검증합니다.
  • 설정 관리가 환경별로 분리되어 있는지 확인합니다.
  • 공통 관심사(로깅, 예외 처리, 인증)가 적절히 모듈화되어 있는지 검증합니다.

29.1.1.3. 테스트 검증

자동화된 테스트의 존재 여부와 품질을 검증합니다. 테스트가 없는 코드는 품질을 보증할 수 없으므로, TQS 인증에서 테스트는 필수 항목입니다.

  • 라인 커버리지 80% 이상, 브랜치 커버리지 70% 이상을 충족해야 합니다.
  • 테스트가 Given-When-Then 패턴에 따라 구조적으로 작성되어 있는지 확인합니다.
  • CI 파이프라인에서 테스트가 자동으로 실행되는지 검증합니다.

29.1.1.4. 보안 검증

보안은 품질의 핵심 구성 요소입니다. TQS 인증은 보안 요구사항의 실제 구현 여부를 코드 수준에서 검증합니다.

  • 데이터 암호화(At-Rest, In-Transit)가 적용되어 있는지 확인합니다.
  • 입력 검증(Bean Validation, XSS 방어, SQL Injection 방어)이 구현되어 있는지 검증합니다.
  • 인증 및 권한 제어(RBAC)가 올바르게 적용되어 있는지 확인합니다.
  • 의존성 보안 스캔(OWASP Dependency-Check)이 CI에 통합되어 있는지 검증합니다.

29.1.2. 표준화

TQS 인증의 두 번째 목적은 팀 간 일관된 기술 스택과 코딩 컨벤션을 확립하는 것입니다. 표준화는 개발 생산성을 높이고, 팀 간 협업을 원활하게 하며, 기술 부채 발생을 사전에 방지합니다.

29.1.2.1. 기술 스택 표준화

TQS 규격은 백엔드, 프론트엔드, 인프라 각 영역에서 사용해야 하는 기술 스택을 명확하게 정의합니다.

영역표준 기술목적
백엔드 런타임Java 21최신 LTS 버전으로 통일
백엔드 프레임워크Spring Boot 3.x엔터프라이즈급 표준 프레임워크
데이터 접근jOOQ타입 안전 SQL 빌더로 통일
프론트엔드 프레임워크Vue 3 (Composition API)반응형 UI 프레임워크 통일
상태 관리PiniaVue 생태계 표준 상태 관리
빌드 도구Maven (백엔드), Vite (프론트엔드)빌드 환경 통일

기술 스택이 표준화되면 개발자가 다른 프로젝트로 이동하더라도 동일한 기술 환경에서 작업할 수 있습니다. 이는 학습 비용을 절감하고, 프로젝트 간 코드 재사용성을 높이며, 사내 기술 지원 체계를 효율화합니다.

29.1.2.2. 코딩 컨벤션 표준화

코딩 컨벤션의 표준화는 개인의 선호나 습관에 의존하지 않는, 일관된 코드 스타일을 보장합니다.

  • 포매터 설정을 프로젝트에 포함하여 자동으로 적용되도록 합니다.
  • 린터(ESLint) 설정을 통해 코드 품질 규칙을 강제합니다.
  • 커밋 메시지 형식(Conventional Commits)을 통일합니다.
  • PR 템플릿을 표준화하여 코드 리뷰의 일관성을 확보합니다.

코딩 컨벤션이 표준화되면 코드 리뷰에서 스타일에 관한 논쟁이 사라지고, 리뷰어는 로직과 설계에 집중할 수 있습니다. 이는 코드 리뷰의 질을 높이고, 리뷰 소요 시간을 단축시킵니다.


29.1.3. 상호 운용성

TQS 인증의 세 번째 목적은 사내 솔루션 간 기술적 호환성을 보장하는 것입니다. 티에니피아의 서비스들은 독립적으로 개발되더라도, 상호 연동이 원활해야 합니다.

29.1.3.1. API 호환성

TQS 규격은 API 설계 표준을 정의하여, 서비스 간 통신의 일관성을 보장합니다.

  • 모든 API는 RESTful 규칙을 따릅니다. URL 네이밍, HTTP 메서드 사용, 상태 코드 반환 규칙이 통일됩니다.
  • 에러 응답 형식이 표준화되어, 클라이언트는 어떤 서비스의 에러든 동일한 방식으로 처리할 수 있습니다.
  • 날짜/시간 형식은 ISO 8601을 사용하여 시간대 관련 오류를 방지합니다.

29.1.3.2. 데이터 호환성

서비스 간 데이터 교환 시 형식과 규칙이 통일되어야 합니다.

  • 데이터베이스 설계 규칙(테이블 네이밍, 컬럼 타입)이 표준화됩니다.
  • 마이그레이션 도구(Flyway)를 통일하여 스키마 관리 방식을 일원화합니다.
  • 직렬화 형식(JSON)과 날짜/숫자 포맷을 규격으로 정의합니다.

29.1.3.3. 인프라 호환성

TQS-Infra 규격은 인프라 환경의 호환성을 보장합니다.

  • 배포 환경(local, dev, staging, prod)의 구성이 표준화됩니다.
  • 로깅 형식과 모니터링 지표가 통일되어, 운영 도구를 공유할 수 있습니다.
  • 네트워크 통신 규격(TLS 버전, 프로토콜)이 통일됩니다.

상호 운용성이 확보되면 새로운 서비스를 기존 인프라에 통합하는 비용이 감소하고, 서비스 간 장애 전파를 예측하고 방지할 수 있습니다.


29.1.4. 기술 부채 관리

TQS 인증의 네 번째 목적은 체계적인 기준을 통해 기술 부채의 축적을 방지하는 것입니다. 기술 부채는 시간이 지남에 따라 복리로 증가하며, 방치하면 시스템의 안정성과 개발 생산성을 심각하게 저해합니다.

29.1.4.1. 기술 부채 발생 방지

TQS 규격은 기술 부채가 발생하기 전에 이를 차단하는 방어선 역할을 합니다.

  • 코드 품질 기준: 포매터, 린터, 네이밍 규칙을 강제하여 저품질 코드의 유입을 방지합니다.
  • 테스트 커버리지 기준: 최소 커버리지 기준을 설정하여 테스트 없는 코드의 배포를 차단합니다.
  • 의존성 관리: 보안 취약점이 있는 의존성의 사용을 금지하고, 정기적인 업데이트를 의무화합니다.
  • CI/CD 자동화: 수동 빌드/배포에 의한 인적 오류를 방지합니다.

29.1.4.2. 기존 기술 부채 해소

TQS 인증을 준비하는 과정 자체가 기존 기술 부채를 해소하는 기회가 됩니다.

  • 자체 점검 체크리스트를 통해 기술 부채 항목을 체계적으로 식별합니다.
  • 인증 기준에 맞추기 위해 포매터 적용, 테스트 작성, 보안 설정 보완 등의 작업을 수행합니다.
  • 인증 갱신 주기마다 기술 부채의 재축적 여부를 점검합니다.

29.1.5. 비즈니스 가치

TQS 인증의 다섯 번째 목적은 기술 품질 향상을 통해 실질적인 비즈니스 가치를 창출하는 것입니다. 기술 품질은 비용 절감, 고객 신뢰도, 조직 효율성에 직접적인 영향을 미칩니다.

29.1.5.1. 고객 신뢰도 향상

TQS 마크가 부여된 제품은 기술 품질이 공식적으로 검증되었음을 의미합니다. 이는 고객에게 다음과 같은 신뢰를 제공합니다.

  • 코드 수준에서 보안이 검증된 제품임을 보증합니다.
  • 일정 수준 이상의 테스트 커버리지와 안정성을 갖추고 있음을 보증합니다.
  • 체계적인 품질 관리 프로세스 하에서 운영되고 있음을 보증합니다.

29.1.5.2. 유지보수 비용 절감

표준화된 코드와 아키텍처는 유지보수 비용을 직접적으로 절감합니다.

  • 일관된 코드 스타일은 코드 이해에 소요되는 시간을 단축합니다.
  • 높은 테스트 커버리지는 변경 시 부작용(Side Effect)을 빠르게 발견하게 합니다.
  • 표준화된 기술 스택은 버그 수정과 기능 추가에 필요한 학습 비용을 줄입니다.

29.1.5.3. 인수인계 효율화

TQS 인증을 획득한 프로젝트는 인수인계가 용이합니다.

  • 표준화된 프로젝트 구조 덕분에 새로운 담당자가 코드를 빠르게 파악할 수 있습니다.
  • API 문서(SpringDoc/Swagger UI)가 필수로 포함되어 있어 서비스 이해도를 높입니다.
  • 형상관리 규칙(Conventional Commits, PR 템플릿)이 적용되어 변경 이력을 추적하기 용이합니다.
  • 동일한 기술 스택을 사용하므로 기술 적응 기간 없이 업무에 투입될 수 있습니다.

인수인계 비용의 절감은 조직의 인력 운용 유연성을 높이고, 프로젝트 지속성을 보장합니다.

TIENIPIA QUALIFIED STANDARD