저는 CS 학생입니다. GitHub App을 만들고 5개의 인기 있는 repo를 감사했습니다. 여기 제가 발견한 내용입니다.

발행: (2026년 5월 10일 AM 09:30 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

Introduction

2025년 8월에 Zaxion을 만들기 시작했습니다.
공동 설립자도, 팀도, 자금도 없고—그냥 저, CS 전공 학생이었습니다.
아이디어는 간단했습니다: GitHub App이 팀의 코딩 표준을 자동으로 강제한다면 어떨까요?

8개월 후에 이를 출시했습니다.

How Zaxion Works

Zaxion은 맞춤형 코드 품질 정책을 강제하는 GitHub App입니다.
Babel AST를 사용해 JavaScript/TypeScript 코드를 이해하고, 다음과 같은 패턴을 감지합니다:

  • 처리되지 않은 async 호출
  • console.log 문이 프로덕션 코드에 포함된 경우
  • 사용자가 정의한 기타 정책 위반

Pull request가 열리면 Zaxion이 변경 사항을 분석하고, 설정된 정책에 따라 승인하거나 체크 실패를 발생시킵니다.

어떤 GitHub 저장소에도 Zaxion을 설치할 수 있습니다. 31개의 내장 정책이 제공되며, 직접 정책을 정의할 수도 있습니다.

Audited Repositories

실제 코드베이스에서 Zaxion이 어떻게 작동하는지 확인하기 위해 다섯 개의 인기 오픈소스 저장소에 적용해 보았습니다.

cal.com

  • Finding: markdownToSafeHTMLClient.ts (15번째 줄)에서 console.log 문이 발견되었습니다.
  • Occurrences: 2
  • Context: 테스트 파일이 아닌 프로덕션 코드.
  • Impact: 프로덕션에서 콘솔 로그는 내부 상태를 노출하고 로그를 어수선하게 만들 수 있습니다.

tRPC

  • Finding: packages/react-query/src/utils/createUtilityFunctions.ts 파일에서 처리되지 않은 async 호출이 5개 발견되었습니다.
  • Occurrences: 5
  • Context: 프로덕션 유틸리티 코드. 처리되지 않은 프로미스는 조용한 실패를 일으킬 수 있습니다.
  • Result: 모든 발견 항목이 인간 검토를 통과했습니다.

Astro

  • Finding: packages/astro/src/runtime/server/jsx.ts 파일에서 처리되지 않은 async 호출이 5개 발견되었습니다.
  • Occurrences: 5
  • Context: 이 파일은 모든 서버 렌더링 시 실행되므로, 처리되지 않은 프로미스가 모든 요청에 영향을 줄 수 있습니다.

(Other two repos)

남은 두 저장소에서도 동일한 패턴의 처리되지 않은 async 호출과 console.log 문이 관찰되어, 이러한 문제가 다양한 팀과 코드베이스 전반에 걸쳐 흔히 발생한다는 것을 확인했습니다.

Why These Findings Matter

이러한 문제들은 엔지니어가 얼마나 부지런하든 수동 코드 리뷰를 통해 놓치기 쉽습니다. Zaxion은 피곤함도 없고 “컨디션이 안 좋은 날”도 없는 일관된 자동 검사를 제공함으로써 그 간극을 메워줍니다.

Using Zaxion

  1. GitHub 저장소에 Zaxion을 설치합니다.
  2. 31개의 내장 정책 중 선택하거나 직접 커스텀 정책을 만듭니다.
  3. PR이 열리면 Zaxion이 선택된 검사를 실행하고 결과를 PR에 바로 보고합니다.

정책이 너무 과격하거나 잘못 작동한다면 피드백을 제공하여 규칙을 개선할 수 있습니다.

Availability

Zaxion은 오픈소스 프로젝트에 완전히 무료로 제공됩니다.

Quick Question

여러분이 직접 관리하는 저장소에서 가장 흔히 보이는 문제는 무엇인가요?

0 조회
Back to Blog

관련 글

더 보기 »